[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue common/src/GDataObjects.py common/src/GDat...
From: |
James Thompson |
Subject: |
gnue common/src/GDataObjects.py common/src/GDat... |
Date: |
Mon, 11 Feb 2002 22:03:52 -0500 |
CVSROOT: /cvsroot/gnue
Module name: gnue
Changes by: James Thompson <address@hidden> 02/02/11 22:03:50
Modified files:
common/src : GDataObjects.py GDataSource.py
forms/samples/button/forms: form.gfd
forms/src : GFParser.py
forms/src/GFObjects: GFDataSource.py GFEntry.py
reports/src : GRSources.py
Added files:
common/src : GMenu.py
Log message:
Merged datasource code back into GDataSource and adjusted forms and
reports
accordingly.
Started work on GMenu
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/GMenu.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/GDataObjects.py.diff?tr1=1.40&tr2=1.41&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/GDataSource.py.diff?tr1=1.26&tr2=1.27&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/samples/button/forms/form.gfd.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFParser.py.diff?tr1=1.61&tr2=1.62&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFObjects/GFDataSource.py.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFObjects/GFEntry.py.diff?tr1=1.38&tr2=1.39&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/reports/src/GRSources.py.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
Patches:
Index: gnue/common/src/GDataObjects.py
diff -c gnue/common/src/GDataObjects.py:1.40
gnue/common/src/GDataObjects.py:1.41
*** gnue/common/src/GDataObjects.py:1.40 Mon Feb 11 11:43:59 2002
--- gnue/common/src/GDataObjects.py Mon Feb 11 22:03:50 2002
***************
*** 443,449 ****
# default fields are included in insert statements
for field in self._dataObject._defaultValues.keys():
if record.isPending():
- print "Setting %s to %s" % (field, record.getField(field))
record.setField(field, record.getField(field))
for field in foreign_keys.keys():
--- 443,448 ----
Index: gnue/common/src/GDataSource.py
diff -c gnue/common/src/GDataSource.py:1.26 gnue/common/src/GDataSource.py:1.27
*** gnue/common/src/GDataSource.py:1.26 Mon Feb 11 11:43:59 2002
--- gnue/common/src/GDataSource.py Mon Feb 11 22:03:50 2002
***************
*** 58,64 ****
self._fieldReferences = {}
self._unboundFieldReferences = {}
self._defaultValues = {}
!
#
# trigger support
#
--- 58,71 ----
self._fieldReferences = {}
self._unboundFieldReferences = {}
self._defaultValues = {}
!
! self._inits =[self.primaryInit, self.secondaryInit]
! self._currentResultSet = None
! self._resultSetListeners = []
! self._toplevelParent = None # Needs set by subclass so
! # that _topObject gets set
! self._topObject = None
!
#
# trigger support
#
***************
*** 165,178 ****
return self._dataObject != None and self._dataObject.hasMaster()
def createResultSet(self, conditions={}, readOnly=0):
! return self._dataObject.createResultSet(conditions,readOnly)
def addDetailDataObject(self, dataObject, handler=None):
self._dataObject.addDetailDataObject(dataObject, handler)
def createEmptyResultSet(self, readOnly=0,masterRecordSet=None):
! return self._dataObject.createEmptyResultSet(readOnly,masterRecordSet)
######
#
#
--- 172,237 ----
return self._dataObject != None and self._dataObject.hasMaster()
def createResultSet(self, conditions={}, readOnly=0):
! resultSet= self._dataObject.createResultSet(conditions,readOnly)
! self.__setResultSet( resultSet )
! return resultSet
def addDetailDataObject(self, dataObject, handler=None):
self._dataObject.addDetailDataObject(dataObject, handler)
def createEmptyResultSet(self, readOnly=0,masterRecordSet=None):
! resultSet = self._dataObject.createEmptyResultSet(readOnly,
masterRecordSet=masterRecordSet)
! self.__setResultSet( resultSet )
! return resultSet
+ #
+ # Master/detail stuff
+ #
+
+ # Called by dbdrivers whenever this datasource's master has changed
+ def masterResultSetChanged(self, masterResultSet, detailResultSet):
+ self._masterResultSet = masterResultSet
+ self.__setResultSet( detailResultSet )
+
+ def __setResultSet(self, resultSet):
+ self._currentResultSet = resultSet
+ # Notify all the listeners (i.e., blocks) that the result set changed
+ for listener in self._resultSetListeners:
+ listener(resultSet)
+
+ def registerResultSetListener(self, listener):
+ self._resultSetListeners.append(listener)
+
+ def primaryInit(self):
+ self._topObject = self.findParentOfType(self._toplevelParent)
+ GDebug.printMesg(10,"Setting %s to connect mgr %s"
%(self.name,self._topObject._connections))
+ self.setConnectionManager(self._topObject._connections)
+ self.initialize()
+ self.connect()
+ # TODO: For now, adding to dtsrc to avoid a global namespace conflict
(jcater)
+ # TODO: I have not a clue to do with this at this time...originally from
GFDataSource.py
+ self.extensions = self._dataObject.triggerExtensions
+
+ # TODO: Merged into GDataSource per the TODOs in reports and forms however
+ # TODO: self._topObject._datasourceDictionary implies that the top object
+ # TODO: always has a specifc structure. This is a bad thing :( Maybe
GRootObj
+ # TODO: should contain a getDatasourceDict()?
+ #
+ def secondaryInit(self):
+ if hasattr(self, 'master') and self.master:
+ self.master = string.lower(self.master)
+ GDebug.printMesg(3,"Linking detail '%s' to master '%s'" \
+ % (self.name, self.master) )
+
+ if self._topObject._datasourceDictionary.has_key(self.master):
+ self._topObject._datasourceDictionary[self.master] \
+ .getDataObject().addDetailDataObject(self.getDataObject(),
+ self)
+ else:
+ raise StandardError, \
+ "Detail source '%s' references non-existant master '%s'" \
+ % (self.name, self.master)
+
######
#
#
Index: gnue/forms/samples/button/forms/form.gfd
diff -c gnue/forms/samples/button/forms/form.gfd:1.3
gnue/forms/samples/button/forms/form.gfd:1.4
*** gnue/forms/samples/button/forms/form.gfd:1.3 Sun Nov 4 22:21:11 2001
--- gnue/forms/samples/button/forms/form.gfd Mon Feb 11 22:03:50 2002
***************
*** 4,25 ****
Form saved on: 2001-11-04 21:45:00 -->
<form width="25" title="Button Example" height="6">
<options>
<option value="0.0.1" name="version"/>
<option value="James Thompson" name="author"/>
</options>
<trigger type="NAMED" name="HelloWorld">
! print "Hello There!"
! </trigger>
<trigger type="NAMED" name="GoodbyeWorld">
! print "See Ya!"
! </trigger>
<trigger type="NAMED" name="Foo">
! print "Foo!"
! </trigger>
<trigger type="NAMED" name="Bar">
! print "Bar!"
! </trigger>
<page name="Page_1">
<block name="coding">
<button x="1" y="1" trigger="HelloWorld" width="8" label="Button"
--- 4,36 ----
Form saved on: 2001-11-04 21:45:00 -->
<form width="25" title="Button Example" height="6">
+ <!-- <menu name="foo">
+ <menu name="bar">
+ </menu>
+ </menu>
+ -->
<options>
<option value="0.0.1" name="version"/>
<option value="James Thompson" name="author"/>
</options>
<trigger type="NAMED" name="HelloWorld">
! print "Hello There!"
! </trigger>
<trigger type="NAMED" name="GoodbyeWorld">
! print "See Ya!"
! </trigger>
<trigger type="NAMED" name="Foo">
! print "Foo!"
! </trigger>
<trigger type="NAMED" name="Bar">
! print "Bar!"
! </trigger>
! <trigger type="NAMED" name="testing">
! print form.foo.name
! form.foo.fire()
! print form.foo.bar.name
! form.foo.bar.fire()
! </trigger>
<page name="Page_1">
<block name="coding">
<button x="1" y="1" trigger="HelloWorld" width="8" label="Button"
***************
*** 29,34 ****
--- 40,47 ----
<button x="1" y="3" trigger="Foo" width="13" label="Who's Got"
name="Button_3" height="1"/>
<button x="1" y="4" trigger="Bar" width="13" label="the Button?"
+ name="Button_4" height="1"/>
+ <button x="1" y="4" trigger="testing" width="13" label="Test Menu"
name="Button_4" height="1"/>
</block>
</page>
Index: gnue/forms/src/GFObjects/GFDataSource.py
diff -c gnue/forms/src/GFObjects/GFDataSource.py:1.11
gnue/forms/src/GFObjects/GFDataSource.py:1.12
*** gnue/forms/src/GFObjects/GFDataSource.py:1.11 Thu Nov 8 02:56:22 2001
--- gnue/forms/src/GFObjects/GFDataSource.py Mon Feb 11 22:03:50 2002
***************
*** 43,104 ****
class GFDataSource (GDataSource):
def __init__(self, parent):
GDataSource.__init__(self, parent, 'GFDataSource')
! # self._form = None
! self._inits =[self.primaryInit, self.secondaryInit]
! self._currentResultSet = None
! self._resultSetListeners = []
!
! # Called by dbdrivers whenever this datasource's master has changed
! def masterResultSetChanged(self, masterResultSet, detailResultSet):
! self._masterResultSet = masterResultSet
! self.__setResultSet( detailResultSet )
!
! def primaryInit(self):
! self._form = self.findParentOfType('GFForm')
! GDebug.printMesg(10,"Setting %s to connect mgr %s"
%(self.name,self._form._connections))
! self.setConnectionManager(self._form._connections)
! self.initialize()
! self.connect()
! # TODO Removing for now - jamest
! #self._form._triggerns["%s" % self.name] =
self._dataObject.triggerExtensions
! # TODO: For now, adding to dtsrc to avoid a global namespace conflict
(jcater)
! self.extensions = self._dataObject.triggerExtensions
# TODO: The linking of master to detail should occur in GDataSource
# TODO: as both Forms and Reports is executing basically the same code...
! def secondaryInit(self):
! if hasattr(self, 'master') and self.master:
! self.master = string.lower(self.master)
! GDebug.printMesg(3,"Linking detail '%s' to master '%s'" \
! % (self.name, self.master) )
!
! if self._form._datasourceDictionary.has_key(self.master):
! self._form._datasourceDictionary[self.master] \
! .getDataObject().addDetailDataObject(self.getDataObject(),
! self)
! else:
! raise StandardError, \
! "Detail source '%s' references non-existant master '%s'" \
! % (self.name, self.master)
!
! def createResultSet(self, conditions={}):
! resultSet = GDataSource.createResultSet(self, conditions=conditions)
! self.__setResultSet( resultSet )
! return resultSet
!
! def createEmptyResultSet(self):
! resultSet = GDataSource.createEmptyResultSet(self)
! self.__setResultSet( resultSet )
! return resultSet
!
! def __setResultSet(self, resultSet):
! self._currentResultSet = resultSet
! # Notify all the listeners (i.e., blocks) that the result set changed
! for listener in self._resultSetListeners:
! listener(resultSet)
- def registerResultSetListener(self, listener):
- self._resultSetListeners.append(listener)
--- 43,107 ----
class GFDataSource (GDataSource):
def __init__(self, parent):
GDataSource.__init__(self, parent, 'GFDataSource')
! self._toplevelParent = 'GFForm'
!
! # self._inits =[self.primaryInit, self.secondaryInit]
! # self._currentResultSet = None
! # self._resultSetListeners = []
!
! # def primaryInit(self):
! # self._form = self.findParentOfType('GFForm')
! # GDebug.printMesg(10,"Setting %s to connect mgr %s"
%(self.name,self._form._connections))
! # self.setConnectionManager(self._form._connections)
! # self.initialize()
! # self.connect()
! # # TODO: For now, adding to dtsrc to avoid a global namespace conflict
(jcater)
! # self.extensions = self._dataObject.triggerExtensions
# TODO: The linking of master to detail should occur in GDataSource
# TODO: as both Forms and Reports is executing basically the same code...
! ## def secondaryInit(self):
! ## if hasattr(self, 'master') and self.master:
! ## self.master = string.lower(self.master)
! ## GDebug.printMesg(3,"Linking detail '%s' to master '%s'" \
! ## % (self.name, self.master) )
!
! ## if self._form._datasourceDictionary.has_key(self.master):
! ## self._form._datasourceDictionary[self.master] \
! ## .getDataObject().addDetailDataObject(self.getDataObject(),
! ## self)
! ## else:
! ## raise StandardError, \
! ## "Detail source '%s' references non-existant master '%s'" \
! ## % (self.name, self.master)
!
! # # Called by dbdrivers whenever this datasource's master has changed
! # def masterResultSetChanged(self, masterResultSet, detailResultSet):
! # self._masterResultSet = masterResultSet
! # self.__setResultSet( detailResultSet )
!
! # def createResultSet(self, conditions={}):
! # resultSet = GDataSource.createResultSet(self, conditions=conditions)
! # self.__setResultSet( resultSet )
! # return resultSet
!
! # def createEmptyResultSet(self, masterRecordSet=None):
! # resultSet =
GDataSource.createEmptyResultSet(self,masterRecordSet=masterRecordSet)
! # self.__setResultSet( resultSet )
! # return resultSet
!
! # def __setResultSet(self, resultSet):
! # self._currentResultSet = resultSet
! # # Notify all the listeners (i.e., blocks) that the result set changed
! # for listener in self._resultSetListeners:
! # listener(resultSet)
! #
! #
! # def registerResultSetListener(self, listener):
! # self._resultSetListeners.append(listener)
!
!
Index: gnue/forms/src/GFObjects/GFEntry.py
diff -c gnue/forms/src/GFObjects/GFEntry.py:1.38
gnue/forms/src/GFObjects/GFEntry.py:1.39
*** gnue/forms/src/GFObjects/GFEntry.py:1.38 Sun Feb 10 23:34:19 2002
--- gnue/forms/src/GFObjects/GFEntry.py Mon Feb 11 22:03:50 2002
***************
*** 82,91 ****
self._triggerSet = self.setValue
self._triggerGet = self.getValue
- def testFunc(self):
- #return "I have to do something"
- return "Fooooooooooooo!"
-
def getReadonly(self):
return self.readonly
def setReadonly(self,value):
--- 82,87 ----
Index: gnue/forms/src/GFParser.py
diff -c gnue/forms/src/GFParser.py:1.61 gnue/forms/src/GFParser.py:1.62
*** gnue/forms/src/GFParser.py:1.61 Sun Feb 10 20:13:18 2002
--- gnue/forms/src/GFParser.py Mon Feb 11 22:03:50 2002
***************
*** 27,33 ****
# NOTES:
#
! from gnue.common import GDataSource, GParser
import copy, types
from gnue.common import GTypecast
--- 27,33 ----
# NOTES:
#
! from gnue.common import GDataSource, GParser, GMenu
import copy, types
from gnue.common import GTypecast
***************
*** 550,555 ****
--- 550,561 ----
'ParentTags': ('form',) },
}))
+ #
+ # Add menu elements
+ #
+ xmlElements.update(
+ GMenu.getXMLelements()
+ )
#
# Add importable elements
Index: gnue/reports/src/GRSources.py
diff -c gnue/reports/src/GRSources.py:1.7 gnue/reports/src/GRSources.py:1.8
*** gnue/reports/src/GRSources.py:1.7 Mon Oct 15 00:15:51 2001
--- gnue/reports/src/GRSources.py Mon Feb 11 22:03:50 2002
***************
*** 93,132 ****
class GRDataSource (GDataSource.GDataSource):
def __init__(self, parent):
GDataSource.GDataSource.__init__(self, parent, 'GRDataSource')
! self.master = None
! self._inits =[self.primaryInit, self.secondaryInit]
! self._currentResultSet = None
! self._resultSetListeners = []
!
! # Called by dbdrivers whenever this datasource's master has changed
! def masterResultSetChanged(self, masterResultSet, detailResultSet):
! self._masterResultSet = masterResultSet
! self.__setResultSet( detailResultSet )
!
! def primaryInit(self):
! self._report = self.findParentOfType('GRReport')
! GDebug.printMesg(10,"Setting %s to connect mgr %s"
%(self.name,self._report._connections))
! self.setConnectionManager(self._report._connections)
! self.initialize()
! self.connect()
!
! # TODO: The linking of master to detail should occur in GDataSource
! # TODO: as both Forms and Reports is executing basically the same code...
! def secondaryInit(self):
! if hasattr(self, 'master') and self.master:
! self.master = string.lower(self.master)
! GDebug.printMesg(3,"Linking detail '%s' to master '%s'" \
! % (self.name, self.master) )
!
! if self._report._datasourceDictionary.has_key(self.master):
! self._report._datasourceDictionary[self.master] \
! .getDataObject().addDetailDataObject(self.getDataObject(),
! self)
! else:
! raise StandardError, \
! "Detail source '%s' references non-existant master '%s'" \
! % (self.name, self.master)
# Used in GRSources.__connectMasterDetail to link detail datasource to
# master source. Called by GDataObjects.ResultSet when master changed
--- 93,105 ----
class GRDataSource (GDataSource.GDataSource):
def __init__(self, parent):
GDataSource.GDataSource.__init__(self, parent, 'GRDataSource')
! self._toplevelParent = 'GRReport'
! # self.master = None
! # self._inits =[self.primaryInit, self.secondaryInit]
! # self._currentResultSet = None
! # self._resultSetListeners = []
!
# Used in GRSources.__connectMasterDetail to link detail datasource to
# master source. Called by GDataObjects.ResultSet when master changed
***************
*** 135,140 ****
--- 108,143 ----
# created yet. [Yes, it's fugly]
def masterResultSetChanged(self, masterResultSet, detailResultSet):
pass
+
+ # Called by dbdrivers whenever this datasource's master has changed
+ # def masterResultSetChanged(self, masterResultSet, detailResultSet):
+ # self._masterResultSet = masterResultSet
+ # self.__setResultSet( detailResultSet )
+
+ # def primaryInit(self):
+ # self._report = self.findParentOfType('GRReport')
+ # GDebug.printMesg(10,"Setting %s to connect mgr %s"
%(self.name,self._report._connections))
+ # self.setConnectionManager(self._report._connections)
+ # self.initialize()
+ # self.connect()
+
+ ## # TODO: The linking of master to detail should occur in GDataSource
+ ## # TODO: as both Forms and Reports is executing basically the same code...
+ ## def secondaryInit(self):
+ ## if hasattr(self, 'master') and self.master:
+ ## self.master = string.lower(self.master)
+ ## GDebug.printMesg(3,"Linking detail '%s' to master '%s'" \
+ ## % (self.name, self.master) )
+
+ ## if self._report._datasourceDictionary.has_key(self.master):
+ ## self._report._datasourceDictionary[self.master] \
+ ## .getDataObject().addDetailDataObject(self.getDataObject(),
+ ## self)
+ ## else:
+ ## raise StandardError, \
+ ## "Detail source '%s' references non-existant master '%s'" \
+ ## % (self.name, self.master)
+
class GRConditions(GCondition):