commit-gnue
[Top][All Lists]
Advanced

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

r6028 - trunk/gnue-forms/src


From: reinhard
Subject: r6028 - trunk/gnue-forms/src
Date: Thu, 22 Jul 2004 10:17:30 -0500 (CDT)

Author: reinhard
Date: 2004-07-22 10:17:29 -0500 (Thu, 22 Jul 2004)
New Revision: 6028

Modified:
   trunk/gnue-forms/src/GFDisplayHandler.py
Log:
Checkbox now can handle requestKEYPRESS events properly.


Modified: trunk/gnue-forms/src/GFDisplayHandler.py
===================================================================
--- trunk/gnue-forms/src/GFDisplayHandler.py    2004-07-22 15:02:28 UTC (rev 
6027)
+++ trunk/gnue-forms/src/GFDisplayHandler.py    2004-07-22 15:17:29 UTC (rev 
6028)
@@ -959,7 +959,7 @@
 
     # My events...
     self.subevents.registerEventListeners( {
-           'requestTOGGLECHKBOX' : self.toggle  } )
+           'requestTOGGLECHKBOX' : self.handleToggleChkbox} )
 
 
   def setValue(self, value):
@@ -987,22 +987,32 @@
   def _buildDisplayHelper(self, value, editing):
     return self._sanitizeValue(value)
 
-##  def getDisplay(self):
-##    return self.display
 
+  # Helpers for user events:
 
-  def toggle(self, event):
+  # Set checkbox to boolean value
+  def __set (self, value):
+    if value != self.work:
+      self.work = value
+      self.modified = True
+      self._buildDisplay ()
+
+  # Toggle value of checkbox
+  def __toggle (self):
+    self.work = not self.work
+    self.modified = True
+    self._buildDisplay ()
+
+
+  # Handle requestTOGGLECHKBOX event
+  def handleToggleChkbox (self, event):
     if not self.editing:
       return
-
     if event.data == None:
-      # saving our checkboxes from Python 2.3 boolean type (it kills sql 
update)
-      self.work = int(not self.work)
+      self.__toggle ()
     else:
-      self.work = self._sanitizeValue(event.data[1])
-    self.modified = True
-    self._buildDisplay()
-    event.refreshDisplay=True
+      self.__set (self._sanitizeValue (event.data [1]))
+    event.refreshDisplay = True
 
 
   def beginEdit(self, event):
@@ -1019,6 +1029,17 @@
     self.cursor = 0
 
 
+  # Correctly handle requestKEYPRESS event
+  def addText(self, event):
+    if event.text == ' ':
+      self.__toggle ()
+    elif event.text in ['0', '-']:      # TODO: add "Y" for current language
+      self.__set (False)
+    elif event.text in ['1', '+']:      # TODO: add "N" for current language
+      self.__set (True)
+    event.refreshDisplay = True
+    return
+
   # Delete backwards one character
   def backspace(self, event):
     return





reply via email to

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