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
# -------------------------------------------------------------------------
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.