[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/gnuef/src GFForm.py GFInstance.py GFTrigge...
From: |
Jason Cater |
Subject: |
gnue/gnuef/src GFForm.py GFInstance.py GFTrigge... |
Date: |
Thu, 12 Jul 2001 20:56:13 -0700 |
CVSROOT: /home/cvs
Module name: gnue
Changes by: Jason Cater <address@hidden> 01/07/12 20:56:13
Modified files:
gnuef/src : GFForm.py GFInstance.py GFTrigger.py
gnuef/src/GFObjects: GFDatabase.py
Log message:
Added DBDriver-specific extensions to Form trigger namespaces; if your
database connection is called gnue, then your trigger namespace will contain an
object called gnue. It's methods will be the methods defined in the
DBdriver.TriggerExtensions class; e.g., gnue.getDate(); Oracle's
TriggerExtension's class defines getDate() -- return current date according to
database, getSequence(seqName) -- return the next sequence number for sequence
named seqName, and sql(statement) -- execute raw SQL statement.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFForm.py.diff?cvsroot=OldCVS&tr1=1.111&tr2=1.112&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFInstance.py.diff?cvsroot=OldCVS&tr1=1.16&tr2=1.17&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFTrigger.py.diff?cvsroot=OldCVS&tr1=1.40&tr2=1.41&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFObjects/GFDatabase.py.diff?cvsroot=OldCVS&tr1=1.1&tr2=1.2&r1=text&r2=text
Patches:
Index: gnue/gnuef/src/GFForm.py
diff -u gnue/gnuef/src/GFForm.py:1.111 gnue/gnuef/src/GFForm.py:1.112
--- gnue/gnuef/src/GFForm.py:1.111 Thu Jul 12 11:38:19 2001
+++ gnue/gnuef/src/GFForm.py Thu Jul 12 20:56:13 2001
@@ -126,7 +126,7 @@
self._triggerns={}
self._triggerns['TRUE'] = 1
self._triggerns['FALSE'] = 0
-
+
for block in self._blockList:
try:
self._triggerns[block.name] = GFTrigger.GFTriggerHelper( block )
@@ -134,9 +134,25 @@
for key in self._datasourceDictionary.keys():
self._triggerns[key] = self._datasourceDictionary[key]
-
+
+
self._triggerns['GFMsgBox'] = GFMsgBox
+
+
+ # Initialization steps that must occur after connected to database
+ def postLoginInitialization(self):
+
+ for db in self._databaseDictionary.keys():
+ self._triggerns[db] = self._databaseDictionary[db].triggerNamespace
+ self._databaseDictionary[db].properties = self._databaseDictionary[db]
+
+ for key in self._datasourceDictionary.keys():
+ object = self._datasourceDictionary[key]
+ object.initialize()
+
self.walk(self.initTriggers)
+
+
#
# begin routines made for walking
@@ -202,7 +218,7 @@
for key in object._loadedxmlattrs.keys():
if key[0] != '_':
rv.__dict__[key] = object._loadedxmlattrs[key]
- print ">>> Moving %s" % key
+ GDebug.printMesg (5, ">>> Moving %s" % key)
rv.buildObject()
@@ -274,8 +290,8 @@
def initTriggers(self, object):
if object.getObjectType() == "GFTrigger":
- object.initialize()
object._triggerns.update( self._triggerns )
+ object.initialize()
if object.src != None:
object.setFunctionFrom(self._triggerDictionary[object.src])
@@ -284,12 +300,7 @@
#
def getDatabaseList(self):
return self._databaseDictionary
-
- def initializeDatasources(self):
- for key in self._datasourceDictionary.keys():
- object = self._datasourceDictionary[key]
- object.initialize()
def updateUIEntry(self,entry):
self._app.dispatchEvent(GFEvent('updateENTRY',entry));
Index: gnue/gnuef/src/GFInstance.py
diff -u gnue/gnuef/src/GFInstance.py:1.16 gnue/gnuef/src/GFInstance.py:1.17
--- gnue/gnuef/src/GFInstance.py:1.16 Wed Jul 11 16:06:46 2001
+++ gnue/gnuef/src/GFInstance.py Thu Jul 12 20:56:13 2001
@@ -34,7 +34,7 @@
#
# Copyright (c) 2000 Free Software Foundation
#
-# $Id: GFInstance.py,v 1.16 2001/07/11 23:06:46 jamest Exp $
+# $Id: GFInstance.py,v 1.17 2001/07/13 03:56:13 jcater Exp $
#
import pstats
@@ -549,7 +549,8 @@
raise
else:
break
- self._form.initializeDatasources()
+
+ self._form.postLoginInitialization()
# pass control to UI
ui.buildForm(self._form)
Index: gnue/gnuef/src/GFObjects/GFDatabase.py
diff -u gnue/gnuef/src/GFObjects/GFDatabase.py:1.1
gnue/gnuef/src/GFObjects/GFDatabase.py:1.2
--- gnue/gnuef/src/GFObjects/GFDatabase.py:1.1 Fri Jun 29 15:55:58 2001
+++ gnue/gnuef/src/GFObjects/GFDatabase.py Thu Jul 12 20:56:13 2001
@@ -54,14 +54,22 @@
class GFDatabase(GFObj):
def __init__(self, parent=None):
GFObj.__init__(self, parent)
- self.factory = factory()
self._type = "GFDatabase"
self.uniqueKey = None
self.comment = ""
+ self.triggerNamespace = None
def initialize(self,user,passwd):
+ self.factory = factory()
self.link = self.factory.create(self.provider)
self.link.connect(self.host,self.dbname,user,passwd)
+
+ # Add the database connection's trigger extensions to
+ # the trigger namespace under the name of the connection.
+ # (e.g., if database name="gnue", then add "gnue" to
+ # namespace as a reference to the trigger extensions
+ if hasattr(self.link, 'triggerExtensions'):
+ self.triggerNamespace = self.link.triggerExtensions
def query(self, table, mask, order_by):
results = self.link.query(table,mask,order_by)
Index: gnue/gnuef/src/GFTrigger.py
diff -u gnue/gnuef/src/GFTrigger.py:1.40 gnue/gnuef/src/GFTrigger.py:1.41
--- gnue/gnuef/src/GFTrigger.py:1.40 Thu Jul 5 10:57:21 2001
+++ gnue/gnuef/src/GFTrigger.py Thu Jul 12 20:56:13 2001
@@ -180,6 +180,7 @@
# May be better to deal with this in GFTriggerAware
import sys
print "%s in trigger code, value: %s" % (sys.exc_type, sys.exc_value)
+
self.__call__ = thisTrigger
def dummyFunction(self, myself):
@@ -302,7 +303,6 @@
def __init__(self, object):
GFTriggerHelperBase.__init__(self, object)
-
class GFTriggerFields( GFTriggerHelperBase ):
def getattribute( self, name ):
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/gnuef/src GFForm.py GFInstance.py GFTrigge...,
Jason Cater <=