[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r8189 - in trunk/gnue-forms/src: GFObjects input/displayHandlers
From: |
johannes |
Subject: |
[gnue] r8189 - in trunk/gnue-forms/src: GFObjects input/displayHandlers uidrivers/wx26/widgets |
Date: |
Thu, 2 Mar 2006 13:40:36 -0600 (CST) |
Author: johannes
Date: 2006-03-02 13:40:35 -0600 (Thu, 02 Mar 2006)
New Revision: 8189
Modified:
trunk/gnue-forms/src/GFObjects/GFButton.py
trunk/gnue-forms/src/input/displayHandlers/Base.py
trunk/gnue-forms/src/input/displayHandlers/Cursor.py
trunk/gnue-forms/src/uidrivers/wx26/widgets/button.py
Log:
Update the current entries' field value before calling a trigger code
via GFButton. This ensures to have always an up to date field value
available, even if there's no focus-change.
Modified: trunk/gnue-forms/src/GFObjects/GFButton.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFButton.py 2006-03-02 19:20:42 UTC (rev
8188)
+++ trunk/gnue-forms/src/GFObjects/GFButton.py 2006-03-02 19:40:35 UTC (rev
8189)
@@ -68,17 +68,32 @@
# Helper method for user events: fire button
- def __fire(self):
- self.processTrigger('On-Action', False)
+ def __fire (self):
+ self.processTrigger ('On-Action', False)
# Event handlers
- def __handleKEYPRESS(self, event):
+ def __handleKEYPRESS (self, event):
+
if event.text == ' ':
- self.__fire()
- event.drop()
+ self.__fire ()
+ event.drop ()
- def __handleENTER(self, event):
- self.__fire()
- event.drop()
+ def __handleENTER (self, event):
+ self.__fire ()
+ event.drop ()
+
+
+ # ---------------------------------------------------------------------------
+ # Fire the trigger associated with the button from outside GF
+ # ---------------------------------------------------------------------------
+
+ def doFire (self):
+ """
+ Update the current entrie's value and execute the trigger associated with
+ the button.
+ """
+
+ self._form._currentEntry._displayHandler.updateFieldValue ()
+ self.__fire ()
Modified: trunk/gnue-forms/src/input/displayHandlers/Base.py
===================================================================
--- trunk/gnue-forms/src/input/displayHandlers/Base.py 2006-03-02 19:20:42 UTC
(rev 8188)
+++ trunk/gnue-forms/src/input/displayHandlers/Base.py 2006-03-02 19:40:35 UTC
(rev 8189)
@@ -180,3 +180,12 @@
assert gDebug (5, "Entry %s: selectToEnd not supported." % self.entry.name
)
return
+
+ def updateFieldValue (self):
+ """
+ Update the associated field with the current value of the display handler
+ """
+
+ assert gDebug (5, "Entry %s: updateFieldValue not supported." %
+ self.entry.name)
+ pass
Modified: trunk/gnue-forms/src/input/displayHandlers/Cursor.py
===================================================================
--- trunk/gnue-forms/src/input/displayHandlers/Cursor.py 2006-03-02
19:20:42 UTC (rev 8188)
+++ trunk/gnue-forms/src/input/displayHandlers/Cursor.py 2006-03-02
19:40:35 UTC (rev 8189)
@@ -37,7 +37,20 @@
import sys
#from gnue.forms.input.displayHandlers import Base
from gnue.common import events
+from gnue.common.apps import errors
+# =============================================================================
+# Exceptions
+# =============================================================================
+
+class InvalidFieldValueError (errors.UserError):
+ def __init__ (self, field, value):
+ msg = u_("Invalid value '%(value)s' for field '%(field)s") \
+ % {'value': value, 'field': field}
+ errors.UserError.__init__ (self, msg)
+
+
+
# TODO: When Base is used inherit from that instead
class BaseCursor(events.EventAware):
"""
@@ -738,3 +751,16 @@
self.display = self._buildDisplayHelper(self.work, True)
else:
self.display = self._buildDisplayHelper(self.value, False)
+
+
+ def updateFieldValue (self):
+ """
+ Update the associated field with the current value of the display handler
+ """
+
+ if self._buildValue ():
+ if self.field._allowedValues and \
+ not self.field._allowedValues.has_key ("%s" % self.value):
+ raise InvalidFieldValueError, (self.field.name, self.value)
+
+ self.field.setValue (self.value)
Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/button.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/button.py 2006-03-02
19:20:42 UTC (rev 8188)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/button.py 2006-03-02
19:40:35 UTC (rev 8189)
@@ -38,6 +38,7 @@
# --------------------------------------------------------------------------
# Create a button widget
# --------------------------------------------------------------------------
+
def _createWidget (self, event, spacer):
"""
Creates a new Button widget.
@@ -61,7 +62,7 @@
def __click (self, event):
- self._eventHandler (events.Event ('buttonActivated', self._gfObject))
+ self._gfObject.doFire ()
event.Skip ()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r8189 - in trunk/gnue-forms/src: GFObjects input/displayHandlers uidrivers/wx26/widgets,
johannes <=