Author: reinhard Date: 2008-06-09 06:07:23 -0500 (Mon, 09 Jun 2008) New Revision: 9876
Modified: trunk/gnue-forms/src/GFObjects/GFField.py trunk/gnue-forms/src/GFObjects/GFTabStop.py Log: Made "editable" property of fields available in trigger namespace. Modified: trunk/gnue-forms/src/GFObjects/GFField.py =================================================================== --- trunk/gnue-forms/src/GFObjects/GFField.py 2008-05-08 07:50:04 UTC (rev 9875) +++ trunk/gnue-forms/src/GFObjects/GFField.py 2008-06-09 11:07:23 UTC (rev 9876) @@ -134,8 +134,12 @@ 'setFKDescription' : {'function': self.set_value}} self._triggerProperties = { - 'value': {'get': self.get_value, - 'set': self.set_value}} + 'value': { + 'get': self.get_value, + 'set': self.set_value}, + 'editable': { + 'get': self.__get_editable, + 'set': self.__set_editable}} self._triggerGet = self.__get_value self._triggerSet = self.__set_value @@ -335,6 +339,25 @@ # ------------------------------------------------------------------------- + # Get/Set editable property + # ------------------------------------------------------------------------- + + def __get_editable(self): + + return self.editable + + # ------------------------------------------------------------------------- + + def __set_editable(self, value): + + if value in ['Y', 'N', 'null', 'new', 'update']: + self.editable = value + for entry in self._entryList: + entry.update_editable() + else: + raise InvalidPropertyValueError('editable', value) + + # ------------------------------------------------------------------------- # Reading and writing the user value of the field # ------------------------------------------------------------------------- @@ -839,3 +862,16 @@ ) % { 'value': value, 'name': field.name}, field._url, field._lineNumber) + +# ============================================================================= + +class InvalidPropertyValueError(errors.ApplicationError): + """ + An invalid value is assigned to a property. + """ + def __init__(self, property, value): + errors.ApplicationError.__init__(self, u_( + "Invalid value '%(value)s' for property '%(property)s'" + ) % { + 'value': value, + 'property': property}) Modified: trunk/gnue-forms/src/GFObjects/GFTabStop.py =================================================================== --- trunk/gnue-forms/src/GFObjects/GFTabStop.py 2008-05-08 07:50:04 UTC (rev 9875) +++ trunk/gnue-forms/src/GFObjects/GFTabStop.py 2008-06-09 11:07:23 UTC (rev 9876) @@ -259,10 +259,7 @@ self.refresh_ui(refresh_start, self._rows - 1) # Set widgets to editable or non-editable - for index in range(refresh_start, last_enabled_row + 1): - offset = index - self._visibleIndex - self.uiWidget._ui_set_editable_(index, - self._field.is_editable(offset)) + self.__update_editable(refresh_start) finally: # If this was the currently focused widget, move the focus along @@ -275,6 +272,28 @@ # ------------------------------------------------------------------------- + # Set the widgets to editable or non-editable + # ------------------------------------------------------------------------- + + def update_editable(self): + """ + Update the editable state of this entry. + + This function is called by the field if the editable state of the field + is changed by a trigger. + """ + self.__update_editable(0) + + # ------------------------------------------------------------------------- + + def __update_editable(self, refresh_start): + + for index in range(refresh_start, self.__last_enabled_row + 1): + offset = index - self._visibleIndex + self.uiWidget._ui_set_editable_(index, + self._field.is_editable(offset)) + + # ------------------------------------------------------------------------- # Change the focus to this object # ------------------------------------------------------------------------- _______________________________________________ commit-gnue mailing list commit-gnue@gnu.org http://lists.gnu.org/mailman/listinfo/commit-gnue