Exemplo n.º 1
0
    def _set_input_fields(self, input_parameter_filed, row, col):
        item = QtWidgets.QTableWidgetItem(
            str(input_parameter_filed.get_value()))
        if col == 0:
            item.setTextAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
        else:
            item.setTextAlignment(QtCore.Qt.AlignHCenter
                                  | QtCore.Qt.AlignVCenter)

        flag = input_parameter_filed.get_editable_flag_value()
        if flag == ParameterEditability.NotEditable():
            item.setFlags(QtCore.Qt.NoItemFlags)
        elif flag == ParameterEditability.Selectable():
            item.setFlags(QtCore.Qt.ItemIsEnabled)
        else:
            item.setFlags(item.flags() | QtCore.Qt.ItemIsSelectable
                          | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled)

        try:
            color = {
                ParameterState.Invalid(): RED,
                ParameterState.Changed(): RED,
                ParameterState.Removed(): RED,
                ParameterState.PartValid(): ORANGE,
                ParameterState.New(): GREEN
            }[input_parameter_filed.get_state()]
            _set_widget_color(item, color)
        except KeyError:
            pass

        self.table.setItem(row, col, item)
Exemplo n.º 2
0
 def __init__(self, name, parameter):
     self.name = ParameterField(name)
     self.lsl = ParameterField(parameter['LSL'])
     self.ltl = ParameterField(parameter['LTL'],
                               editable=ParameterEditability.Editable())
     self.utl = ParameterField(parameter['UTL'],
                               editable=ParameterEditability.Editable())
     self.usl = ParameterField(parameter['USL'])
     self.exponent = ParameterField(parameter['10рхА'])
     self.unit = ParameterField(parameter['Unit'])
     self.format = ParameterField(parameter['fmt'])
     self.bin_parameter = None
     self._update_binning_parameters(parameter)
     self.valid = True
Exemplo n.º 3
0
 def __init__(
     self,
     value,
     editable: ParameterEditability = ParameterEditability.NotEditable(),
     state: ParameterState = ParameterState.Valid()):
     self._value = value
     self._editable = editable
     self._state = state
Exemplo n.º 4
0
 def _select_editability_for_resolvertype(self, editable):
     if editable is not ParameterEditability.NotEditable():
         if self.type == ResolverTypes.Static():
             self.set_value_editability(ParameterEditability.Editable)
         elif self.type == ResolverTypes.Local():
             self.set_value_editability(ParameterEditability.Selectable)
         else:
             self.set_value_editability(ParameterEditability.Editable)
Exemplo n.º 5
0
    def edit(self, value_index: int, complete_cb: Callable):
        if self.get_editable_flag_value(
                value_index) != ParameterEditability.Editable():
            return

        validator = None
        if self._get_validator_type() != ValidatorTypes.NoValidation:
            from ATE.spyder.widgets.validation import valid_float_regex
            validator = QtGui.QRegExpValidator(
                QtCore.QRegExp(valid_float_regex), None)

        item = self.table.item(self.table_row, value_index)
        self.create_checkable_cell(
            item, validator,
            lambda txt, value: self.on_edit_done(txt, value, complete_cb))
Exemplo n.º 6
0
    def __init__(self, name, input_params):
        editable = ParameterEditability.Editable()

        if name == 'Temperature':
            editable = ParameterEditability.NotEditable()

        self.name = ParameterField(name)
        self.min = ParameterField(input_params['Min'])
        self.max = ParameterField(input_params['Max'])
        self.format = ParameterField(input_params['fmt'])
        self.unit = ParameterField(input_params['Unit'])
        self.exponent = ParameterField(input_params['10рхА'])
        self.type = self.InputParameterFieldType(
            ResolverTypes.Static()
            if input_params.get('type') is None else input_params['type'],
            editable=editable)
        self.default = ParameterField(self.format_value(
            input_params['Default']),
                                      editable=editable)
        self.value = copy.deepcopy(self.default) if input_params.get(
            'value') is None else ParameterField(self._get_value(input_params))
        self.valid = True

        self._select_editability_for_resolvertype(editable)
Exemplo n.º 7
0
 def get_editable_flag_value(self, value_index: int):
     # overridden by InputParameter!
     return ParameterEditability.Editable()
Exemplo n.º 8
0
 def is_editable(self):
     return self._editable == ParameterEditability.Editable()
Exemplo n.º 9
0
 def set_validity(self, validity: ParameterState):
     if validity == ParameterState.Removed():
         self.set_editable(ParameterEditability.NotEditable())
     self._state = validity
Exemplo n.º 10
0
 def __init__(self, value, editable):
     editable = ParameterEditability.Selectable(
     ) if editable == ParameterEditability.Editable() else editable
     super().__init__(value, editable)