commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r7372 - in trunk/gnue-forms/src: . GFObjects


From: reinhard
Subject: [gnue] r7372 - in trunk/gnue-forms/src: . GFObjects
Date: Fri, 15 Apr 2005 06:45:44 -0500 (CDT)

Author: reinhard
Date: 2005-04-15 06:45:41 -0500 (Fri, 15 Apr 2005)
New Revision: 7372

Modified:
   trunk/gnue-forms/src/GFInstance.py
   trunk/gnue-forms/src/GFObjects/GFBlock.py
   trunk/gnue-forms/src/GFObjects/GFDataSource.py
Log:
Remember the block bound to a datasource, so the trigger handling code doesn't
have to get it via the record.


Modified: trunk/gnue-forms/src/GFInstance.py
===================================================================
--- trunk/gnue-forms/src/GFInstance.py  2005-04-15 10:23:01 UTC (rev 7371)
+++ trunk/gnue-forms/src/GFInstance.py  2005-04-15 11:45:41 UTC (rev 7372)
@@ -1267,21 +1267,15 @@
 
   def _handlePreCommit (self, event, trigger):
 
-    try:
-      block = event.record._parent._block
+    saveMode = event.block.mode
+    event.block._preCommitWorkingRecord = event.record
+    event.block.mode = 'precommit'
+    event.block.processTrigger (trigger)
 
-    except AttributeError:
-      return
-
-    saveMode = block.mode
-    block._preCommitWorkingRecord = event.record
-    block.mode = 'precommit'
-    block.processTrigger (trigger)
-
-    for child in block._fieldList:
+    for child in event.block._fieldList:
       child.processTrigger (trigger)
 
-    block.mode = saveMode
+    event.block.mode = saveMode
 
 
   # ---------------------------------------------------------------------------
@@ -1290,16 +1284,11 @@
 
   def onQueryNewRecord (self, event):
 
-    try:
-      block = event.record._parent._block
-
-    except AttributeError:
-      return
-
+    pass
     # TODO: Running this here causes the trigger to fire prior to all blocks
     #       being filled
-    #block.processTrigger('POST-QUERY')
-    #for child in block._fieldList:
+    #event.block.processTrigger('POST-QUERY')
+    #for child in event.block._fieldList:
     #  child.processTrigger('POST-QUERY')
 
 

Modified: trunk/gnue-forms/src/GFObjects/GFBlock.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFBlock.py   2005-04-15 10:23:01 UTC (rev 
7371)
+++ trunk/gnue-forms/src/GFObjects/GFBlock.py   2005-04-15 11:45:41 UTC (rev 
7372)
@@ -224,6 +224,7 @@
           u_("Datasource '%(datasource)s' in block '%(block)s' not found") \
           % {'datasource': self.datasource,
              'block': self.name}
+    self._dataSourceLink.setBlock (self)
 
     # Get min and max child rows, if applicable
     try:

Modified: trunk/gnue-forms/src/GFObjects/GFDataSource.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFDataSource.py      2005-04-15 10:23:01 UTC 
(rev 7371)
+++ trunk/gnue-forms/src/GFObjects/GFDataSource.py      2005-04-15 11:45:41 UTC 
(rev 7372)
@@ -31,6 +31,8 @@
 # HISTORY:
 #
 
+import weakref
+
 from gnue.common.datasources.GDataSource import GDataSource
 from gnue.common import events
 
@@ -43,28 +45,36 @@
     GDataSource.__init__(self, parent, 'GFDataSource')
     self._toplevelParent = 'GFForm'
     self._form = self.findParentOfType('GFForm')
+    self.__block = None
 
 
+  # Remember the block this DataSource is bound to
+  def setBlock (self, block):
+    self.__block = weakref.ref (block)
+
+
   #
   # Hooks for record-level triggers
   #
 
   def _beforeCommitInsert(self, record):
-    self._form.dispatchEvent('preInsert', record=record)
-    self._form.dispatchEvent('preCommit', record=record)
+    self._form.dispatchEvent('preInsert', record=record, block=self.__block())
+    self._form.dispatchEvent('preCommit', record=record, block=self.__block())
 
   def _beforeCommitUpdate(self, record):
-    self._form.dispatchEvent('preUpdate', record=record)
-    self._form.dispatchEvent('preCommit', record=record)
+    self._form.dispatchEvent('preUpdate', record=record, block=self.__block())
+    self._form.dispatchEvent('preCommit', record=record, block=self.__block())
 
   def _beforeCommitDelete(self, record):
-    self._form.dispatchEvent('preDelete', record=record)
-    self._form.dispatchEvent('preCommit', record=record)
+    self._form.dispatchEvent('preDelete', record=record, block=self.__block())
+    self._form.dispatchEvent('preCommit', record=record, block=self.__block())
 
   def _onModification(self, record):
-    self._form.dispatchEvent('onRecordTouched', record=record)
+    self._form.dispatchEvent('onRecordTouched', record=record,
+        block=self.__block())
     return True
 
   def _onRecordLoaded(self, record):
-    self._form.dispatchEvent('onQueryNewRecord', record=record)
+    self._form.dispatchEvent('onQueryNewRecord', record=record,
+        block=self.__block())
     return True





reply via email to

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