commit-gnue
[Top][All Lists]
Advanced

[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 ):



reply via email to

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