commit-gnue
[Top][All Lists]
Advanced

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

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


From: reinhard
Subject: [gnue] r7894 - trunk/gnue-forms/src/GFObjects
Date: Fri, 9 Sep 2005 10:34:12 -0500 (CDT)

Author: reinhard
Date: 2005-09-09 10:34:09 -0500 (Fri, 09 Sep 2005)
New Revision: 7894

Modified:
   trunk/gnue-forms/src/GFObjects/GFBlock.py
   trunk/gnue-forms/src/GFObjects/GFField.py
Log:
Call ON-NEWRECORD trigger per onRecordInserted event. This causes field changes
in ON-NEWRECORD triggers to neither mark the record as dirty nor call the
PRE/POST-CHANGE triggers.


Modified: trunk/gnue-forms/src/GFObjects/GFBlock.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFBlock.py   2005-09-09 15:33:04 UTC (rev 
7893)
+++ trunk/gnue-forms/src/GFObjects/GFBlock.py   2005-09-09 15:34:09 UTC (rev 
7894)
@@ -229,6 +229,7 @@
         'dsResultSetActivated': self.__dsResultSetActivated,
         'dsResultSetChanged'  : self.__dsResultSetActivated, # sic!
         'dsCursorMoved'       : self.__dsCursorMoved,
+        'dsRecordInserted'    : self.__dsRecordInserted,
         'dsRecordLoaded'      : self.__dsRecordLoaded,
         'dsRecordTouched'     : self.__dsRecordTouched,
         'dsCommitInsert'      : self.__dsCommitInsert,
@@ -283,6 +284,15 @@
 
   # ---------------------------------------------------------------------------
 
+  def __dsRecordInserted (self, event):
+    self._initializingRecord = event.record
+    oldmode = self.mode
+    self.mode = 'init'
+    self.processTrigger ('ON-NEWRECORD')
+    self.mode = oldmode
+
+  # ---------------------------------------------------------------------------
+
   def __dsRecordLoaded (self, event):
     pass        # TODO: define a trigger for this
 
@@ -436,8 +446,6 @@
 
       # Focus in
       self.processTrigger('PRE-FOCUSIN')
-      self.processTrigger('ON-NEWRECORD')
-
       self.processTrigger('POST-FOCUSIN')
 
   def duplicateRecord(self, exclude=(), include=()):

Modified: trunk/gnue-forms/src/GFObjects/GFField.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFField.py   2005-09-09 15:33:04 UTC (rev 
7893)
+++ trunk/gnue-forms/src/GFObjects/GFField.py   2005-09-09 15:34:09 UTC (rev 
7894)
@@ -274,6 +274,10 @@
             value = self._block._queryValues[self]
           except KeyError:
             value = None
+
+    elif mode == 'init':
+      value = self._block._initializingRecord [self.field]
+
     else:
       if self._block._resultSet and self._block._resultSet.current:
         value = self._block._resultSet.current.getField(self.field)
@@ -343,6 +347,9 @@
     if mode == 'query':
       self._block._queryValues[self] = value
 
+    elif mode == 'init':
+      self._block._initializingRecord [self.field] = value
+
     else:
       self._block.processTrigger('Pre-Change')
       self.processTrigger('Pre-Change')





reply via email to

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