commit-gnue
[Top][All Lists]
Advanced

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



reply via email to

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