commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r9876 - trunk/gnue-forms/src/GFObjects


From: reinhard
Subject: [gnue] r9876 - trunk/gnue-forms/src/GFObjects
Date: Mon, 9 Jun 2008 06:07:28 -0500 (CDT)

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
     # -------------------------------------------------------------------------
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]