def setModel(self, model): # @todo: change this (it assumes tango naming!) TaurusLabel.setModel(self, '%s/value' % model) try: ior_dev = taurus.Device(model) except: return labels = ior_dev.getAttribute('Labels').read().value labels_list = labels.split(' ') # Update the mapping self.readEventValueMap = EventValueMap() for label_and_value in labels_list: label, value = label_and_value.split(':') self.readEventValueMap[int(value)] = label
class PoolIORegisterReadWidget(TaurusLabel): ''' This class is intended to be used as a read widget of a TaurusValue with IORegister devices. After setting the model, it gets the Labels and creates a filter to show them instead of the values. ''' def __init__(self, parent=None, designMode=False): TaurusLabel.__init__(self, parent, designMode) def setModel(self, model): TaurusLabel.setModel( self, '%s/value' % model) #@todo: change this (it assumes tango naming!) try: ior_dev = taurus.Device(model) except: return labels = ior_dev.getAttribute('Labels').read().value labels_list = labels.split(' ') # Update the mapping self.readEventValueMap = EventValueMap() for label_and_value in labels_list: label, value = label_and_value.split(':') self.readEventValueMap[int(value)] = label # @TODO: Some day filters will work again... # until then, it is better to NOT have the filter # so at least we see a value and not '------' #self.setEventFilters([self.readEventValueMap]) ########################################################## # FILTERS ARE NOT WORKING AS OF SVN:17541 # SO I RE-IMPLEMENT getFormatedToolTip for this purpose ########################################################## def getFormatedToolTip(self, cache=True): taurus_label_tooltip = TaurusLabel.getFormatedToolTip(self, cache) try: display_value = int(self.getDisplayValue()) extended_tooltip = '' value_keys = self.readEventValueMap.keys() value_keys.sort() for value in value_keys: label = self.readEventValueMap[value] value_label_info = '%d: %s' % (value, label) if value == display_value: value_label_info = '<B>* ' + value_label_info + ' *</B>' extended_tooltip += value_label_info + '<BR>' return taurus_label_tooltip + '<HR>' + extended_tooltip except: pass return taurus_label_tooltip ########################################################## @classmethod def getQtDesignerPluginInfo(cls): return None
class PoolIORegisterReadWidget(TaurusLabel): ''' This class is intended to be used as a read widget of a TaurusValue with IORegister devices. After setting the model, it gets the Labels and creates a filter to show them instead of the values. ''' def __init__(self, parent=None, designMode=False): TaurusLabel.__init__(self, parent, designMode) def setModel(self, model): # @todo: change this (it assumes tango naming!) TaurusLabel.setModel(self, '%s/value' % model) try: ior_dev = taurus.Device(model) except: return labels = ior_dev.getAttribute('Labels').read().value labels_list = labels.split(' ') # Update the mapping self.readEventValueMap = EventValueMap() for label_and_value in labels_list: label, value = label_and_value.split(':') self.readEventValueMap[int(value)] = label # @TODO: Some day filters will work again... # until then, it is better to NOT have the filter # so at least we see a value and not '------' # self.setEventFilters([self.readEventValueMap]) ########################################################## # FILTERS ARE NOT WORKING AS OF SVN:17541 # SO I RE-IMPLEMENT getFormatedToolTip for this purpose ########################################################## def getFormatedToolTip(self, cache=True): taurus_label_tooltip = TaurusLabel.getFormatedToolTip(self, cache) try: display_value = int(self.getDisplayValue()) extended_tooltip = '' value_keys = sorted(self.readEventValueMap.keys()) for value in value_keys: label = self.readEventValueMap[value] value_label_info = '%d: %s' % (value, label) if value == display_value: value_label_info = '<B>* ' + value_label_info + ' *</B>' extended_tooltip += value_label_info + '<BR>' return taurus_label_tooltip + '<HR>' + extended_tooltip except: pass return taurus_label_tooltip ########################################################## @classmethod def getQtDesignerPluginInfo(cls): return None
def setModel(self, model): TaurusLabel.setModel(self, '%s/value' % model) #@todo: change this (it assumes tango naming!) try: ior_dev = taurus.Device(model) except: return labels = ior_dev.getAttribute('Labels').read().value labels_list = labels.split(' ') # Update the mapping self.readEventValueMap = EventValueMap() for label_and_value in labels_list: label, value = label_and_value.split(':') self.readEventValueMap[int(value)] = label