[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r7372 - in trunk/gnue-forms/src: . GFObjects,
reinhard <=