commit-gnue
[Top][All Lists]
Advanced

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

r6698 - trunk/gnue-forms/src/GFObjects


From: reinhard
Subject: r6698 - trunk/gnue-forms/src/GFObjects
Date: Thu, 18 Nov 2004 05:05:59 -0600 (CST)

Author: reinhard
Date: 2004-11-18 05:05:58 -0600 (Thu, 18 Nov 2004)
New Revision: 6698

Modified:
   trunk/gnue-forms/src/GFObjects/GFBlock.py
   trunk/gnue-forms/src/GFObjects/GFField.py
Log:
Fixes for selecting the empty item in dropdowns.


Modified: trunk/gnue-forms/src/GFObjects/GFBlock.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFBlock.py   2004-11-18 11:03:51 UTC (rev 
6697)
+++ trunk/gnue-forms/src/GFObjects/GFBlock.py   2004-11-18 11:05:58 UTC (rev 
6698)
@@ -359,6 +359,7 @@
     """
     self._currentRecord = self._resultSet.getRecordNumber()
     for field in self._fieldList:
+      field.gotNewCurrentRecord()
       for entry in field._entryList:
         # This loop is probably better somewhere else
         entry.recalculateVisible( adjustment, self._currentRecord, 
self._recordCount)

Modified: trunk/gnue-forms/src/GFObjects/GFField.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFField.py   2004-11-18 11:03:51 UTC (rev 
6697)
+++ trunk/gnue-forms/src/GFObjects/GFField.py   2004-11-18 11:05:58 UTC (rev 
6698)
@@ -341,7 +341,7 @@
     self._block._form.updateUIEntry(self)
 
     # If the field is a foreign key, move the result set to the selected value
-    if hasattr(self,'_fk_datasource'):
+    if hasattr(self,'_GFField__fk_resultSet'):
       self.__fk_resultSet.findRecord({self.fk_key: value})
 
   #
@@ -396,12 +396,26 @@
       self.__loadAllowedValues(resultSet)
     pass
 
-  # This gets called by the resultSet whenever the current record changes.
+
+  # This gets called by the (FK) resultSet whenever the current record changes.
   # We want the field to follow the selection then.
   def currentRecordMoved (self):
     if self._block._resultSet:  # make sure we don't call setValue too early
-      self.setValue (self.__fk_resultSet.current [self.fk_key])
+      if self.__fk_resultSet.current:
+        self.setValue (self.__fk_resultSet.current [self.fk_key])
+      else:
+        # Empty item selected
+        self.setValue (None)
 
+
+  # This gets called by the block whenever the current record of our own
+  # resultset changes. We want the fk resultset to follow.
+  def gotNewCurrentRecord (self):
+    # If the field is a foreign key, move the result set to the selected value
+    if hasattr(self,'_GFField__fk_resultSet'):
+      self.__fk_resultSet.findRecord({self.fk_key: self.getValue()})
+
+
   def isEditable(self, mode):
     if mode == 'query':
       return self.queryable and self._block.queryable





reply via email to

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