Exemple #1
0
    def __init__(self, parent):
        TaurusMenu.__init__(self, parent)
        self.build(self.menuData)

        # TODO: AttrConfigMenu is tangocentric avoid to use with other schemes
        if parent and getSchemeFromName(parent.getModelName()) != "tango":
            self.setEnabled(False)
Exemple #2
0
    def __init__(self, parent):
        TaurusMenu.__init__(self, parent)
        self.build(self.menuData)

        # TODO: AttrConfigMenu is tangocentric avoid to use with other schemes
        if parent and getSchemeFromName(parent.getModelName()) != "tango":
            self.setEnabled(False)
Exemple #3
0
    def _getValueValidator(self, name):
        """Return the name validator for the mapped model name scheme

        :param name: (str) resource name
        :return: A specific TaurusValidator
        """
        scheme = getSchemeFromName(name)
        f = Factory(scheme)
        if self._elementType == TaurusElementType.Attribute:
            return f.getAttributeNameValidator()
        elif self._elementType == TaurusElementType.Device:
            return f.getDeviceNameValidator()
        elif self._elementType == TaurusElementType.Authority:
            return f.getAuthorityNameValidator()
        else:
            msg = '_elementType must be one of (Authority, Device, Attribute)'
            raise Exception(msg)
Exemple #4
0
    def setSrc(self, src):
        '''processes the src and sets the values of _src, display, icon and ok attributes'''
        if src is None:
            self._src, self.display, self.icon, self.ok = '', '(Empty)', Qt.QIcon(
            ), True
            return
        src = str(src).strip()
        if src == self._src:
            return
        self._src = src
        # empty
        if src == '':
            self.display, self.icon, self.ok = '(Empty)', Qt.QIcon(), True
            return
        # TODO tango-centric. For tango devices
        try:
            dev = taurus.Device(src)
            if dev.getDeviceProxy() is not None:
                self.display, self.icon, self.ok = dev.getSimpleName(
                ), getElementTypeIcon(TaurusElementType.Device), True
                return
            else:
                self.display, self.icon, self.ok = src, Qt.QIcon.fromTheme(
                    'network-error'), False
                return
        except:
            # for tango attributes
            try:
                attr = taurus.Attribute(src)
                dev = attr.getParentObj()
            except TaurusException:
                self.display, self.icon, self.ok = src, Qt.QIcon.fromTheme(
                    'dialog-warning'), False
                return
            except Exception:  # @todo: this catchall except is here as an emergency bugfix, but should probably be narrowed to PyTango DevFailed.
                self.display, self.icon, self.ok = src, Qt.QIcon.fromTheme(
                    'network-error'), False
                return
            if getSchemeFromName(attr.getFullName()) == "tango" and \
                            dev.getDeviceProxy() is None:
                    self.display, self.icon, self.ok = src, Qt.QIcon.fromTheme(
                        'network-error'), False
                    return

            self.display, self.icon, self.ok = attr.getSimpleName(
            ), getElementTypeIcon(TaurusElementType.Attribute), True
Exemple #5
0
    def setSrc(self, src):
        '''processes the src and sets the values of _src, display, icon and ok attributes'''
        if src is None:
            self._src, self.display, self.icon, self.ok = '', '(Empty)', Qt.QIcon(
            ), True
            return
        src = str(src).strip()
        if src == self._src:
            return
        self._src = src
        # empty
        if src == '':
            self.display, self.icon, self.ok = '(Empty)', Qt.QIcon(), True
            return
        # TODO tango-centric. For tango devices
        try:
            dev = taurus.Device(src)
            if dev.getDeviceProxy() is not None:
                self.display, self.icon, self.ok = dev.getSimpleName(
                ), getElementTypeIcon(TaurusElementType.Device), True
                return
            else:
                self.display, self.icon, self.ok = src, Qt.QIcon.fromTheme(
                    'network-error'), False
                return
        except:
            # for tango attributes
            try:
                attr = taurus.Attribute(src)
                dev = attr.getParentObj()
            except TaurusException:
                self.display, self.icon, self.ok = src, Qt.QIcon.fromTheme(
                    'dialog-warning'), False
                return
            except Exception:  # @todo: this catchall except is here as an emergency bugfix, but should probably be narrowed to PyTango DevFailed.
                self.display, self.icon, self.ok = src, Qt.QIcon.fromTheme(
                    'network-error'), False
                return
            if getSchemeFromName(attr.getFullName()) == "tango" and \
                            dev.getDeviceProxy() is None:
                    self.display, self.icon, self.ok = src, Qt.QIcon.fromTheme(
                        'network-error'), False
                    return

            self.display, self.icon, self.ok = attr.getSimpleName(
            ), getElementTypeIcon(TaurusElementType.Attribute), True
Exemple #6
0
    def _getValueValidator(self, name):
        """Return the name validator for the mapped model name scheme

        :param name: (str) resource name
        :return: A specific TaurusValidator
        """
        scheme = getSchemeFromName(name)
        f = Factory(scheme)
        if self._elementType == TaurusElementType.Attribute:
            return f.getAttributeNameValidator()
        elif self._elementType == TaurusElementType.Device:
            return f.getDeviceNameValidator()
        elif self._elementType == TaurusElementType.Authority:
            return f.getAuthorityNameValidator()
        else:
            msg = '_elementType must be one of (Authority, Device, Attribute)'
            raise Exception(msg)