commit-gnue
[Top][All Lists]
Advanced

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

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


From: reinhard
Subject: [gnue] r8718 - trunk/gnue-forms/src/GFObjects
Date: Mon, 9 Oct 2006 10:03:53 -0500 (CDT)

Author: reinhard
Date: 2006-10-09 10:03:53 -0500 (Mon, 09 Oct 2006)
New Revision: 8718

Modified:
   trunk/gnue-forms/src/GFObjects/GFBlock.py
   trunk/gnue-forms/src/GFObjects/GFObj.py
Log:
Made GF objects a little more self contained regarding scrolling.


Modified: trunk/gnue-forms/src/GFObjects/GFBlock.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFBlock.py   2006-10-09 09:22:45 UTC (rev 
8717)
+++ trunk/gnue-forms/src/GFObjects/GFBlock.py   2006-10-09 15:03:53 UTC (rev 
8718)
@@ -1176,24 +1176,13 @@
     self._currentRecord = newRecord
     self._recordCount   = newRecordCount
 
-    for field in self._fieldList:
-      field._event_new_current_record ()
-
-      for entry in field._entryList:
-        # This loop is probably better somewhere else
+    for entry in self._entryList:
         entry.recalculate_visible (adjustment, self._currentRecord,
                 self._recordCount)
 
-      self._form.updateUIEntry (field)
+    for field in self._fieldList:
+      field._event_new_current_record ()
 
-    # Ok, don't forgett the buttons here.  Since they might be used within a
-    # block as well but don't have a corresponding field we need a seperate
-    # iteration.
-    for entry in self._entryList:
-        if entry._type == 'GFButton':
-            entry.recalculate_visible (adjustment, self._currentRecord,
-                self._recordCount)
-
     self._form.refreshUIEvents ()
 
     self.__adjust_scrollbars()

Modified: trunk/gnue-forms/src/GFObjects/GFObj.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFObj.py     2006-10-09 09:22:45 UTC (rev 
8717)
+++ trunk/gnue-forms/src/GFObjects/GFObj.py     2006-10-09 15:03:53 UTC (rev 
8718)
@@ -89,7 +89,12 @@
         # uidrivers._base.UIdriver._buildUI () function.
         self.uiWidget = None
 
+        # FIXME: does not make sense for all descendants, create a separate
+        # abstract base class?
+        self.__first_visible_record = 0
+        self.__last_enabled_row = 0
 
+
     # -------------------------------------------------------------------------
     # Check wether an object is navigable or not
     # -------------------------------------------------------------------------
@@ -175,7 +180,33 @@
 
             self._visibleIndex = index
 
+            if self.uiWidget is not None:
+                last_enabled_row = self._visibleIndex + \
+                        (rec_count - cur_record) - 1
+                last_enabled_row = min(last_enabled_row, self._rows - 1)
 
+                # Disable rows if necessary
+                for i in range(last_enabled_row+1, self.__last_enabled_row+1):
+                    print self, "disable", i
+                    self.uiWidget._ui_disable_(i)
+
+                # Enable rows if necessary
+                for i in range(self.__last_enabled_row+1, last_enabled_row+1):
+                    print self, "enable", i
+                    self.uiWidget._ui_enable_(i)
+
+                self.__last_enabled_row = last_enabled_row
+
+                # If we have scrolled, redisplay all records
+                first_visible_record = cur_record - self._visibleIndex
+                # FIXME
+                # if first_visible_record != self.__first_visible_record:
+                if True:
+                    self._form.dispatchEvent('updateENTRY', self,
+                            _form=self._form)
+                    self.__first_visible_record = first_visible_record
+
+
     # 
--------------------------------------------------------------------------
     # Get a block from the block map
     # -------------------------------------------------------------------------





reply via email to

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