commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue common/src/GConfig.py common/src/GParser.p...


From: James Thompson
Subject: gnue common/src/GConfig.py common/src/GParser.p...
Date: Wed, 27 Nov 2002 21:24:39 -0500

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Changes by:     James Thompson <address@hidden> 02/11/27 21:24:39

Modified files:
        common/src     : GConfig.py GParser.py GTrigger.py 
        forms/samples/zipcode: zipcode.gfd 
        forms/src      : GFClient.py GFForm.py GFInstance.py 
                         GFKeyMapper.py GFParser.py 
        forms/src/GFObjects: GFBlock.py GFEntry.py 

Log message:
        cleaning things up in preparation for <dialog>

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/GConfig.py.diff?tr1=1.30&tr2=1.31&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/GParser.py.diff?tr1=1.53&tr2=1.54&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/GTrigger.py.diff?tr1=1.27&tr2=1.28&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/samples/zipcode/zipcode.gfd.diff?tr1=1.27&tr2=1.28&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFClient.py.diff?tr1=1.57&tr2=1.58&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFForm.py.diff?tr1=1.210&tr2=1.211&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFInstance.py.diff?tr1=1.68&tr2=1.69&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFKeyMapper.py.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFParser.py.diff?tr1=1.98&tr2=1.99&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFObjects/GFBlock.py.diff?tr1=1.68&tr2=1.69&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFObjects/GFEntry.py.diff?tr1=1.82&tr2=1.83&r1=text&r2=text

Patches:
Index: gnue/common/src/GConfig.py
diff -c gnue/common/src/GConfig.py:1.30 gnue/common/src/GConfig.py:1.31
*** gnue/common/src/GConfig.py:1.30     Wed Nov 20 22:47:46 2002
--- gnue/common/src/GConfig.py  Wed Nov 27 21:24:38 2002
***************
*** 53,59 ****
      __builtin__.__dict__['gConfig'] = self.gConfig
      __builtin__.__dict__['gConfigDict'] =  self.gConfigDict
  
- 
    def registerAlias(self, name, section):
      alias = GConfigAlias(self.gConfig, section)
      import __builtin__
--- 53,58 ----
Index: gnue/common/src/GParser.py
diff -c gnue/common/src/GParser.py:1.53 gnue/common/src/GParser.py:1.54
*** gnue/common/src/GParser.py:1.53     Wed Nov 27 00:47:06 2002
--- gnue/common/src/GParser.py  Wed Nov 27 21:24:38 2002
***************
*** 84,90 ****
  def loadXMLObject(stream, handler, rootType, xmlFileType,
    initialize=1, attributes={}, initParameters={}):
  
- 
    # Create a parser
    parser = xml.sax.make_parser()
  
--- 84,89 ----
***************
*** 116,122 ****
  
    dh.finalValidation()
  
!   # Set the object's attributes
    object.__dict__.update(attributes)
  
  
--- 115,121 ----
  
    dh.finalValidation()
  
!   # Set the root object's attributes
    object.__dict__.update(attributes)
  
  
Index: gnue/common/src/GTrigger.py
diff -c gnue/common/src/GTrigger.py:1.27 gnue/common/src/GTrigger.py:1.28
*** gnue/common/src/GTrigger.py:1.27    Mon Nov 25 23:23:33 2002
--- gnue/common/src/GTrigger.py Wed Nov 27 21:24:38 2002
***************
*** 446,454 ****
      def thisTrigger(myself, code = self._code,
                      triggerns = self._triggerns,
                      globalns = self._globalns):
- #      triggerns['self'] = myself
- #      triggerns['runform'] = 
myself.findParentOfType('GFForm')._app.getManager().runFormFromTrigger
- #      triggerns.update(
  
        # Merge the trigger's namespace with the runtime global namespace
        # (Which can be set via the "global myvar" construct)
--- 446,451 ----
Index: gnue/forms/samples/zipcode/zipcode.gfd
diff -c gnue/forms/samples/zipcode/zipcode.gfd:1.27 
gnue/forms/samples/zipcode/zipcode.gfd:1.28
*** gnue/forms/samples/zipcode/zipcode.gfd:1.27 Tue Nov 26 21:29:38 2002
--- gnue/forms/samples/zipcode/zipcode.gfd      Wed Nov 27 21:24:39 2002
***************
*** 40,46 ****
               c:y="2"/>
        <label name="Label_3" text="Zip" c:x="33" c:y="1"/>
        <entry block="zip" field="zip" c:width="5" c:x="33" c:y="2"/>
-       <scrollbar c:height="15" c:width="1" c:x="40" c:y="2"/>
      </page>
    </layout>
  </form>
--- 40,45 ----
Index: gnue/forms/src/GFClient.py
diff -c gnue/forms/src/GFClient.py:1.57 gnue/forms/src/GFClient.py:1.58
*** gnue/forms/src/GFClient.py:1.57     Wed Nov 27 16:29:16 2002
--- gnue/forms/src/GFClient.py  Wed Nov 27 21:24:39 2002
***************
*** 31,46 ****
  #    make the next/prec methods more generic in the GFForm
  #    change self._form in here to a list
  
! import os, copy
! import os.path
  import sys
- import urllib
  
  from gnue.common.GClientApp import *
  from gnue.forms.GFInstance import *
- from gnue.forms.GFForm import *
  from gnue.forms.GFParser import loadFile
- from gnue.forms import GFKeyMapper
  from gnue.common import GDebug
  from gnue.common import GConfig, GDataObjects, GConnections
  from gnue.common.FileUtils import dyn_import
--- 31,42 ----
  #    make the next/prec methods more generic in the GFForm
  #    change self._form in here to a list
  
! import os
  import sys
  
  from gnue.common.GClientApp import *
  from gnue.forms.GFInstance import *
  from gnue.forms.GFParser import loadFile
  from gnue.common import GDebug
  from gnue.common import GConfig, GDataObjects, GConnections
  from gnue.common.FileUtils import dyn_import
***************
*** 65,79 ****
    SUMMARY = \
       _("GNUe Forms is the primary user interface to the GNU Enterprise 
system.")
  
-   #
-   # Initialize the class
-   #
    def __init__(self, connections=None):
      GClientApp.__init__(self, connections,'forms',ConfigOptions)
-     self.configurationManager.registerAlias('gConfigForms', 'forms')
  
!     self._formInstances = {}
!     self._lastSerialNumber = 0
  
      self.ui_type = self.OPTIONS['user_interface']
      if not self.ui_type:
--- 61,70 ----
    SUMMARY = \
       _("GNUe Forms is the primary user interface to the GNU Enterprise 
system.")
  
    def __init__(self, connections=None):
      GClientApp.__init__(self, connections,'forms',ConfigOptions)
  
!     self.configurationManager.registerAlias('gConfigForms', 'forms')
  
      self.ui_type = self.OPTIONS['user_interface']
      if not self.ui_type:
***************
*** 84,114 ****
      else:
        self.disableSplash = self.OPTIONS['splash_screen']
  
    #
    # Run the client application
    #
    # GClientApp().run() override
    #
    def run(self):
! 
      # assign form file from 1st free argument
      try:
        formfile = self.ARGUMENTS[0]
      except:
        try:
          basename=os.path.basename(sys.argv[0])
          # If no form specified, then see if this is a symlinked form 
definition
!         if (string.split(string.lower(basename),'.')[0] != 'gnue-forms') and \
!                (string.split(string.lower(basename),'.')[0] != 'gfclient'):
            formfile = os.path.join (
!               
GConfig.getInstalledBase('forms_appbase','common_appbase','install_prefix'),
!               gConfig('FormDir'),basename+".gfd" )
          else:
            raise IndexError
        except IndexError:
          self.handleStartupError (_("No Forms Definition File Specified."))
  
- 
      #
      # Get the user supplied parameters
      #
--- 75,111 ----
      else:
        self.disableSplash = self.OPTIONS['splash_screen']
  
+     #
+     # Will move to GFInstance
+     #
+     self._formInstances = {}
+     self._lastSerialNumber = 0
+ 
+ 
    #
    # Run the client application
    #
    # GClientApp().run() override
    #
    def run(self):
!     #
      # assign form file from 1st free argument
+     #
      try:
        formfile = self.ARGUMENTS[0]
      except:
        try:
          basename=os.path.basename(sys.argv[0])
          # If no form specified, then see if this is a symlinked form 
definition
!         if not (string.split(string.lower(basename),'.')[0] in 
('gnue-forms','gfclient')):
            formfile = os.path.join (
!             
GConfig.getInstalledBase('forms_appbase','common_appbase','install_prefix'),
!             gConfig('FormDir'),basename+".gfd" )
          else:
            raise IndexError
        except IndexError:
          self.handleStartupError (_("No Forms Definition File Specified."))
  
      #
      # Get the user supplied parameters
      #
***************
*** 126,165 ****
        GDebug.printMesg(2,'Param "%s"="%s" ' % \
             (string.lower(psplit[0]), psplit[1]))
  
! 
! 
!     # Initialize user interface (defaults to gui)
!     #  If the DISPLAY var isn't set then switch to text
!     uiloaded = 0
! 
!     while not uiloaded:
        try:
          self._ui = dyn_import("gnue.forms.uidrivers.%s" % (self.ui_type))
!         uiloaded = 1
        except ImportError, err:
          GDebug.printMesg(1,_("Unable to load UI driver")+" %s" % self.ui_type)
          GDebug.printMesg(1,err)
          if self.ui_type != 'curses':
-           ## TODO: curses
            self.ui_type = 'curses'
          else:
          self.handleStartupError(_("Unable to load any valid UI drivers.  
Aborting."))
            sys.exit()
  
!     self.loadKeyMappings()
!     self.runForm(formfile, self.disableSplash, parameters=userParameters)
! 
  
!   def loadKeyMappings(self):
!     options = gConfigDict()
!     mapping = {}
! 
!     for key in options.keys():
!       if string.lower(key)[:4] == 'key_':
!         mapping[key[4:]] = options[key]
  
!     GFKeyMapper.KeyMapper.loadUserKeyMap(mapping)
  
  
    def runFormFromTrigger(self, formFile, parameters={}):
      self.runForm(formFile, disableSplash=1, parameters=parameters)
--- 123,161 ----
        GDebug.printMesg(2,'Param "%s"="%s" ' % \
             (string.lower(psplit[0]), psplit[1]))
  
!     #
!     # Initialize user interface 
!     # 
!     while 1:
        try:
          self._ui = dyn_import("gnue.forms.uidrivers.%s" % (self.ui_type))
!         break
        except ImportError, err:
          GDebug.printMesg(1,_("Unable to load UI driver")+" %s" % self.ui_type)
          GDebug.printMesg(1,err)
          if self.ui_type != 'curses':
            self.ui_type = 'curses'
          else:
          self.handleStartupError(_("Unable to load any valid UI drivers.  
Aborting."))
            sys.exit()
  
!     #
!     # Assign the proper login handler based upon the user interface choice
!     #
!     self.getConnectionManager().setLoginHandler(self._ui.UILoginHandler())
  
!     #
!     # Create the Instance that will control the loaded form(s)
!     #
  
!     #
!     # Add the form to the instance
!     #
  
+     #
+     # activate the instance
+     #    
+     self.runForm(formfile, self.disableSplash, parameters=userParameters)
  
    def runFormFromTrigger(self, formFile, parameters={}):
      self.runForm(formFile, disableSplash=1, parameters=parameters)
***************
*** 176,198 ****
        self._formInstances[instance.getSerialNumber()] = instance
  
        #
!       # Assign the proper login handler based upon the user interface choice
!       #
!       self.getConnectionManager().setLoginHandler(self._ui.UILoginHandler())
! 
!       #
!       # Build the form tree
        #
!       fileHandle=openResource(formFile)
! 
!       form = loadFile (fileHandle, instance)
!       fileHandle.close()
  
-       #form.showTree()
        #
!       # Start the instance
        #
-       instance.setForm(form)
        instance.activate()
  
      except GConnections.Error, mesg:
--- 172,184 ----
        self._formInstances[instance.getSerialNumber()] = instance
  
        #
!       # Tell the instance to load the requested form
        #
!       instance.addFormFromFile(formFile)
  
        #
!       # Hand control over to the instance
        #
        instance.activate()
  
      except GConnections.Error, mesg:
***************
*** 212,217 ****
--- 198,206 ----
      except GDataObjects.Error, mesg:
        self.handleStartupError(mesg)
  
+ #
+ # runDialog goes into instance
+ # 
  
    def runDialog(self, formName, disableSplash=0, parameters={}):
      try:
***************
*** 228,250 ****
        #
        self.getConnectionManager().setLoginHandler(self._ui.UILoginHandler())
  
-       #
-       # Build the form tree
-       #
-       #fileHandle=openResource(formFile)
- 
-       #form = loadFile (fileHandle, instance)
-       #fileHandle.close()
- 
-       #form.showTree()
-       #
-       # Start the instance
-       #
        self._formInstances[1]._form._dialogDictionary[formName].showTree()
        
-       
#self._formInstances[1]._form._dialogDictionary[formName].phaseInit(dialogInit=1)
-       #instance.setForm(self._form._dialogDictionary[formName])
-       #instance.activate()
  
      except GConnections.Error, mesg:
        self.handleStartupError(mesg)
--- 217,224 ----
***************
*** 262,270 ****
  
      except GDataObjects.Error, mesg:
        self.handleStartupError(mesg)
- 
- 
-   def countInits(self,
  
  
    def getNextSerialNumber (self):
--- 236,241 ----
Index: gnue/forms/src/GFForm.py
diff -c gnue/forms/src/GFForm.py:1.210 gnue/forms/src/GFForm.py:1.211
*** gnue/forms/src/GFForm.py:1.210      Wed Nov 27 16:29:16 2002
--- gnue/forms/src/GFForm.py    Wed Nov 27 21:24:39 2002
***************
*** 47,54 ****
  # Defines which objects are "Tab Stops"
  TabStops = ('GFEntry','GFButton')
  
  class GFForm(GRootObj, GFObj, events.EventAware):
!   def __init__(self, parent=None, app=None):
    # TODO: with a little tweaking we can now stop passing  
GFParser.getXMLelements
      GRootObj.__init__(self, 'form', GFParser.getXMLelements, GFParser)
      GFObj.__init__(self, parent)
--- 47,60 ----
  # Defines which objects are "Tab Stops"
  TabStops = ('GFEntry','GFButton')
  
+ #
+ # GFForm
+ #
+ # app is passed into the initializer so that
+ # designer can pass that in
+ #
  class GFForm(GRootObj, GFObj, events.EventAware):
!   def __init__(self, parent=None, instance=None):
    # TODO: with a little tweaking we can now stop passing  
GFParser.getXMLelements
      GRootObj.__init__(self, 'form', GFParser.getXMLelements, GFParser)
      GFObj.__init__(self, parent)
***************
*** 69,75 ****
      self._currentBlock = None
      self._currentEntry = None
  
!     self._app = app
  
      self._triggerns={}
  
--- 75,82 ----
      self._currentBlock = None
      self._currentEntry = None
  
!     # set
!     self._instance = instance
  
      self._triggerns={}
  
***************
*** 184,190 ****
    #
    def primaryInit(self):
      # Initialize our events system
!     events.EventAware.__init__(self, self._app.eventController)
  
      # Find the logic and layout controllers
      for child in self._children:
--- 191,197 ----
    #
    def primaryInit(self):
      # Initialize our events system
!     events.EventAware.__init__(self, self._instance.eventController)
  
      # Find the logic and layout controllers
      for child in self._children:
***************
*** 196,203 ****
      self.initTriggerSystem()
      self._triggerns.update(self._triggerNamespaceTree._globalNamespace)
      # TODO: Is this right
!     self._triggerns['runForm'] = self._app.manager.runFormFromTrigger
!     self._triggerns['runDialog'] = self._app.manager.runDialog
  
    #
    # Secondary init (stuff that must happen
--- 203,210 ----
      self.initTriggerSystem()
      self._triggerns.update(self._triggerNamespaceTree._globalNamespace)
      # TODO: Is this right
!     self._triggerns['runForm'] = self._instance.manager.runFormFromTrigger
!     self._triggerns['runDialog'] = self._instance.manager.runDialog
  
    #
    # Secondary init (stuff that must happen
***************
*** 319,325 ****
      try:
        if self._currentEntry:
          event = events.Event('endEDITMODE', None)
!         self._app.dispatchEvent(event)
          if event.__error__:
            return 1
  
--- 326,332 ----
      try:
        if self._currentEntry:
          event = events.Event('endEDITMODE', None)
!         self._instance.dispatchEvent(event)
          if event.__error__:
            return 1
  
***************
*** 399,405 ****
  
    def updateUIEntry(self,field):
      for entry in field._entryList:
!       self._app.dispatchEvent(events.Event('updateENTRY',entry));
  
    #
    # Incoming Event handlers
--- 406,412 ----
  
    def updateUIEntry(self,field):
      for entry in field._entryList:
!       self._instance.dispatchEvent(events.Event('updateENTRY',entry));
  
    #
    # Incoming Event handlers
***************
*** 437,443 ****
      return message
  
    def executeQuery(self):
!     self._app.dispatchEvent(events.Event('beginWAIT',None));
  
      message = None
      try:
--- 444,450 ----
      return message
  
    def executeQuery(self):
!     self._instance.dispatchEvent(events.Event('beginWAIT',None));
  
      message = None
      try:
***************
*** 447,456 ****
        self.rollback(1)
        message = _("Database query error:\n%s\n%s ") % (sys.exc_info()[0], 
sys.exc_info()[1])
  
!     self._app.dispatchEvent(events.Event('endWAIT',None));
  
    def commit(self):
!     self._app.dispatchEvent(events.Event('beginWAIT',None));
  
      message = None
  
--- 454,463 ----
        self.rollback(1)
        message = _("Database query error:\n%s\n%s ") % (sys.exc_info()[0], 
sys.exc_info()[1])
  
!     self._instance.dispatchEvent(events.Event('endWAIT',None));
  
    def commit(self):
!     self._instance.dispatchEvent(events.Event('beginWAIT',None));
  
      message = None
  
***************
*** 461,467 ****
            self.processTrigger('Pre-Commit')
          except TriggerError:
            GDebug.printMesg(1, "Trigger form Pre-Commit threw a TriggerError!")
!           self._app.dispatchEvent(events.Event('endWAIT',None));
            return _("Form trigger returned error")
  
          for block in self._logic._blockList:
--- 468,474 ----
            self.processTrigger('Pre-Commit')
          except TriggerError:
            GDebug.printMesg(1, "Trigger form Pre-Commit threw a TriggerError!")
!           self._instance.dispatchEvent(events.Event('endWAIT',None));
            return _("Form trigger returned error")
  
          for block in self._logic._blockList:
***************
*** 474,480 ****
              block.processCommit()
            except TriggerError:
              GDebug.printMesg(1, "Trigger block Pre-Commit threw a 
TriggerError!")
!             self._app.dispatchEvent(events.Event('endWAIT',None));
              return _("Block trigger returned error")
            block.processTrigger('Post-Commit')
  
--- 481,487 ----
              block.processCommit()
            except TriggerError:
              GDebug.printMesg(1, "Trigger block Pre-Commit threw a 
TriggerError!")
!             self._instance.dispatchEvent(events.Event('endWAIT',None));
              return _("Block trigger returned error")
            block.processTrigger('Post-Commit')
  
***************
*** 483,489 ****
  
        else:
          message = _('Form is readonly')
!         self._app.dispatchEvent(events.Event('endWAIT',None));
          return message
  
        self.processTrigger('Post-Commit')
--- 490,496 ----
  
        else:
          message = _('Form is readonly')
!         self._instance.dispatchEvent(events.Event('endWAIT',None));
          return message
  
        self.processTrigger('Post-Commit')
***************
*** 497,503 ****
        traceback.print_exc(file=sys.stdout)
        print '-'*60
  
!     self._app.dispatchEvent(events.Event('endWAIT',None));
  
      return message
  
--- 504,510 ----
        traceback.print_exc(file=sys.stdout)
        print '-'*60
  
!     self._instance.dispatchEvent(events.Event('endWAIT',None));
  
      return message
  
***************
*** 735,741 ****
    # Close this form.
    def close(self):
      event = events.Event('requestEXIT')
!     self._app.dispatchEvent(event)
      if event.__error__:
        return 1
  
--- 742,748 ----
    # Close this form.
    def close(self):
      event = events.Event('requestEXIT')
!     self._instance.dispatchEvent(event)
      if event.__error__:
        return 1
  
Index: gnue/forms/src/GFInstance.py
diff -c gnue/forms/src/GFInstance.py:1.68 gnue/forms/src/GFInstance.py:1.69
*** gnue/forms/src/GFInstance.py:1.68   Mon Nov 25 11:44:18 2002
--- gnue/forms/src/GFInstance.py        Wed Nov 27 21:24:39 2002
***************
*** 36,41 ****
--- 36,42 ----
  from gnue.forms.GFForm import *
  from gnue.forms.GFParser import loadFile
  from gnue.forms import VERSION
+ from gnue.forms import GFKeyMapper
  from gnue.common import GDebug, GDataObjects
  from gnue.common import events
  
***************
*** 47,65 ****
    #
    def __init__(self, manager, serial, connections, ui, disableSplash=0,
                 parameters={}):
! 
      self.eventController = events.EventController()
- 
      events.EventAware.__init__(self, self.eventController)
- 
-     self.connections = connections
-     self.manager = manager
-     self._serial = serial
-     self._uimodule = ui
-     self._disableSplash = disableSplash
-     self._parameters = parameters
- 
-     # Incoming events
      self.registerEventListeners( {
                             # Datasource trigger events
                             'preCommit'           : self.preCommit,
--- 48,58 ----
    #
    def __init__(self, manager, serial, connections, ui, disableSplash=0,
                 parameters={}):
!     #
!     # Configure event handling
!     #
      self.eventController = events.EventController()
      events.EventAware.__init__(self, self.eventController)
      self.registerEventListeners( {
                             # Datasource trigger events
                             'preCommit'           : self.preCommit,
***************
*** 123,128 ****
--- 116,160 ----
                             'requestPASTE'        : self.proxyEntryEvent,
                       } )
  
+     self.connections = connections
+     self.manager = manager
+     self._serial = serial
+     self._uimodule = ui
+     self._disableSplash = disableSplash
+     self._parameters = parameters
+ 
+     self.loadKeyMappings()
+ 
+ 
+   #
+   # loadKeyMappings
+   # 
+   # Called once during __init__ to load the users keymappings
+   #
+   def loadKeyMappings(self):
+     options = gConfigDict()
+     mapping = {}
+ 
+     for key in options.keys():
+       if string.lower(key)[:4] == 'key_':
+         mapping[key[4:]] = options[key]
+         
+     GFKeyMapper.KeyMapper.loadUserKeyMap(mapping)
+ 
+ 
+   #
+   # addFormFromFile
+   #
+   # Loads a GObj based form tree when passed a valid file name.
+   # A copy of the instance is passed into the parser so that
+   # it can work with things like the GConnections stored in
+   # the base app
+   #
+   def addFormFromFile(self,fileName):
+     fileHandle=openResource(fileName)
+     self._form = loadFile (fileHandle, self)
+     fileHandle.close()
+                     
    #
    # Associate a form object with this instance
    #
***************
*** 136,145 ****
      return self._serial
  
    #
!   # Return this instance's manager
    #
-   def getManager(self):
-     return self.manager
  
    #
    # proxyEntryEvent
--- 168,233 ----
      return self._serial
  
    #
!   # _entryUpdated
!   #
!   # Common code snipped called when something has changed with an
!   # entry and it has to update the stat bar.  Used to cut down on
!   # repeated code.
!   #
!   def _entryUpdated(self):
!     
self.dispatchEvent(events.Event('gotoENTRY',{'object':self._form._currentEntry}))
!     self.updateRecordCounter()
!     self.updateRecordStatus()
! 
!   #
!   # Routines to update parts of the UI's status bar
!   #
!   def updateInsertMode(self):
!     
self.dispatchEvent(events.Event('uiUPDATESTATUS',[None,None,self._form._insertMode,None,None,None,None]))
! 
!   def updateRecordCounter(self):
!     
self.dispatchEvent(events.Event('uiUPDATESTATUS',[None,None,None,self._form._currentBlock._currentRecord+1,self._form._currentBlock._recordCount,None,None]))
! 
!   def updatePageCounter(self):
!     maxPages = len(self._form._layout._pageList)
!     count = self._form._layout._pageList.index(self._form._currentPage)
!     
self.dispatchEvent(events.Event('uiUPDATESTATUS',[None,None,None,None,None,count+1,maxPages]))
! 
!   def updateTip(self):
!     tip = ''
!     if self._form._currentEntry:
!       if self._form._currentEntry.getOption('tip'):
!         tip = self._form._currentEntry.getOption('tip')
!       else:
!         tip = ''
! 
!     
self.dispatchEvent(events.Event('uiUPDATESTATUS',[tip,None,None,None,None,None,None]))
! 
!   def updateRecordStatus(self):
!     if self._form._currentBlock.mode == 'query':
!       status = 'query'
!     elif self._form._currentBlock._resultSet.current.isDeleted():
!       status = 'deleted'
!     elif self._form._currentBlock._resultSet.current.isPending():
!       status = 'modified'
!     else:
!       status = 'saved'
! 
!     
self.dispatchEvent(events.Event('uiUPDATESTATUS',[None,status,None,None,None,None,None]))
! 
!   def updateStatus(self):
!     self.updateTip()
!     self.updateInsertMode()
!     self.updateRecordCounter()
!     self.updateRecordStatus()
!     self.updatePageCounter()
! 
! 
!   #
!   #
!   # EVENT FUNCTIONS
!   #
    #
  
    #
    # proxyEntryEvent
***************
*** 249,266 ****
      self.updateStatus()
  
    #
-   # _entryUpdated
-   #
-   # Common code snipped called when something has changed with an
-   # entry and it has to update the stat bar.  Used to cut down on
-   # repeated code.
-   #
-   def _entryUpdated(self):
-     
self.dispatchEvent(events.Event('gotoENTRY',{'object':self._form._currentEntry}))
-     self.updateRecordCounter()
-     self.updateRecordStatus()
- 
-   #
    # previousRecord
    #
    # Called enever an event source has requested that the
--- 337,342 ----
***************
*** 347,352 ****
--- 423,434 ----
  
      self._entryUpdated()
  
+   #
+   # jumpRecords
+   #
+   # jump a specified number of records
+   # forward or backward.
+   #
    def jumpRecords(self,event):
      if not self._form.endEditing():
        return
***************
*** 362,367 ****
--- 444,456 ----
  
      self._entryUpdated()
  
+ 
+   #
+   # executeExit
+   #
+   # When exit is requested verify that the data
+   # has been saved
+   #
    def executeExit(self, event):
      if not self._form.isSaved():
        message = GFMsgBox(self, _('Data not saved. Save changes or clear the 
form to proceed.'))
***************
*** 448,496 ****
      self._entryUpdated()
  
    #
-   # Routines to update parts of the UI's status bar
-   #
-   def updateInsertMode(self):
-     
self.dispatchEvent(events.Event('uiUPDATESTATUS',[None,None,self._form._insertMode,None,None,None,None]))
- 
-   def updateRecordCounter(self):
-     
self.dispatchEvent(events.Event('uiUPDATESTATUS',[None,None,None,self._form._currentBlock._currentRecord+1,self._form._currentBlock._recordCount,None,None]))
- 
-   def updatePageCounter(self):
-     maxPages = len(self._form._layout._pageList)
-     count = self._form._layout._pageList.index(self._form._currentPage)
-     
self.dispatchEvent(events.Event('uiUPDATESTATUS',[None,None,None,None,None,count+1,maxPages]))
- 
-   def updateTip(self):
-     tip = ''
-     if self._form._currentEntry:
-       if self._form._currentEntry.getOption('tip'):
-         tip = self._form._currentEntry.getOption('tip')
-       else:
-         tip = ''
- 
-     
self.dispatchEvent(events.Event('uiUPDATESTATUS',[tip,None,None,None,None,None,None]))
- 
-   def updateRecordStatus(self):
-     if self._form._currentBlock.mode == 'query':
-       status = 'query'
-     elif self._form._currentBlock._resultSet.current.isDeleted():
-       status = 'deleted'
-     elif self._form._currentBlock._resultSet.current.isPending():
-       status = 'modified'
-     else:
-       status = 'saved'
- 
-     
self.dispatchEvent(events.Event('uiUPDATESTATUS',[None,status,None,None,None,None,None]))
- 
-   def updateStatus(self):
-     self.updateTip()
-     self.updateInsertMode()
-     self.updateRecordCounter()
-     self.updateRecordStatus()
-     self.updatePageCounter()
- 
-   #
    # changeFocus
    #
    # changes to the requested entry object requested by
--- 537,542 ----
***************
*** 520,531 ****
    def requestQuery(self, event):
      if not self._form.endEditing():
        return
! 
! #    if hasattr(self._form._currentBlock._dataSourceLink,"master"):
! #      messageBox = GFMsgBox(self, _("Query from detail blocks currently not 
supported"))
! #      messageBox.show()
! #      return
! 
      message = self._form.prepQuery()
  
      if message:
--- 566,572 ----
    def requestQuery(self, event):
      if not self._form.endEditing():
        return
!     
      message = self._form.prepQuery()
  
      if message:
***************
*** 559,565 ****
      self._entryUpdated()
  
  
- 
    def _handlePreCommit(self, event, trigger):
      try:
        block = event.record._parent._block
--- 600,605 ----
***************
*** 595,602 ****
    def onRecordTouched(self, event):
      self._handlePreCommit(event, 'PRE-MODIFY')
  
- 
- 
    #
    # fireTrigger
    #
--- 635,640 ----
***************
*** 610,616 ****
      event.data.processTrigger('On-Action')
  
    #
!   #  Activate this puppy...
    #
    def activate(self):
      ui = self._uiinstance =  
self._uimodule.GFUserInterface(self.eventController, self._disableSplash)
--- 648,656 ----
      event.data.processTrigger('On-Action')
  
    #
!   #  Activate the instance
!   #
!   #  Builds the UI and turns control over to it
    #
    def activate(self):
      ui = self._uiinstance =  
self._uimodule.GFUserInterface(self.eventController, self._disableSplash)
Index: gnue/forms/src/GFKeyMapper.py
diff -c gnue/forms/src/GFKeyMapper.py:1.11 gnue/forms/src/GFKeyMapper.py:1.12
*** gnue/forms/src/GFKeyMapper.py:1.11  Fri Oct 11 19:44:28 2002
--- gnue/forms/src/GFKeyMapper.py       Wed Nov 27 21:24:39 2002
***************
*** 78,83 ****
--- 78,84 ----
    #
    def loadUserKeyMap(self, dict):
      usermap = {}
+ 
      for event in dict.keys():
        val = string.upper(dict[event])
  
***************
*** 95,100 ****
--- 96,102 ----
        meta = 0
        ctrl = 0
  
+ 
        for key in keys:
          if key in ('CTRL','CONTROL'):
            ctrl = 1
***************
*** 102,109 ****
            meta = 0
          elif key in ('SHFT','SHIFT'):
            shifted = 0
!         elif vk.__dict__.has_key(key):
!           key = vk.__dict__[key]
          elif len(key) == 1:
            # TODO: This might not be necessary
            key = ord(key)
--- 104,111 ----
            meta = 0
          elif key in ('SHFT','SHIFT'):
            shifted = 0
!         elif _VirtualKeys.__dict__.has_key(key):
!           base = _VirtualKeys.__dict__[key]
          elif len(key) == 1:
            # TODO: This might not be necessary
            key = ord(key)
***************
*** 232,238 ****
  #   need one instance, so create one.
  #
  vk = _VirtualKeys()
- 
  
  #
  # Given a keycode value (e.g., -999), return
--- 234,239 ----
Index: gnue/forms/src/GFObjects/GFBlock.py
diff -c gnue/forms/src/GFObjects/GFBlock.py:1.68 
gnue/forms/src/GFObjects/GFBlock.py:1.69
*** gnue/forms/src/GFObjects/GFBlock.py:1.68    Mon Nov 25 23:16:08 2002
--- gnue/forms/src/GFObjects/GFBlock.py Wed Nov 27 21:24:39 2002
***************
*** 162,168 ****
      logic._blockMap[self.name] = self
  
      # Initialize our events system
!     events.EventAware.__init__(self, form._app.eventController)
  
      # Get all focusable items, ordered correctly
      self._focusOrder = self.getFocusOrder()
--- 162,168 ----
      logic._blockMap[self.name] = self
  
      # Initialize our events system
!     events.EventAware.__init__(self, form._instance.eventController)
  
      # Get all focusable items, ordered correctly
      self._focusOrder = self.getFocusOrder()
Index: gnue/forms/src/GFObjects/GFEntry.py
diff -c gnue/forms/src/GFObjects/GFEntry.py:1.82 
gnue/forms/src/GFObjects/GFEntry.py:1.83
*** gnue/forms/src/GFObjects/GFEntry.py:1.82    Fri Nov 22 00:50:39 2002
--- gnue/forms/src/GFObjects/GFEntry.py Wed Nov 27 21:24:39 2002
***************
*** 114,134 ****
      # Create an appropriate display handler
      if self.style == 'checkbox':
        self._displayHandler = GFDisplayHandler.CheckboxDisplayHandler(self,
!                self._form._app.eventController)
      elif self.style == 'dropdown':
        self._displayHandler = GFDisplayHandler.DropdownDisplayHandler(self,
!                self._form._app.eventController)
      elif self._field.typecast == 'text':
        self._displayHandler = GFDisplayHandler.TextDisplayHandler(self,
!                self._form._app.eventController,
                 self._displaymask, self._inputmask)
      elif self._field.typecast == 'number':
        self._displayHandler = GFDisplayHandler.NumberDisplayHandler(self,
!                self._form._app.eventController,
                 self._displaymask, self._inputmask)
      elif self._field.typecast == 'date':
        self._displayHandler = GFDisplayHandler.DateDisplayHandler(self,
!                self._form._app.eventController,
                 self._displaymask, self._inputmask)
  
      # Row settings
--- 114,134 ----
      # Create an appropriate display handler
      if self.style == 'checkbox':
        self._displayHandler = GFDisplayHandler.CheckboxDisplayHandler(self,
!                self._form._instance.eventController)
      elif self.style == 'dropdown':
        self._displayHandler = GFDisplayHandler.DropdownDisplayHandler(self,
!                self._form._instance.eventController)
      elif self._field.typecast == 'text':
        self._displayHandler = GFDisplayHandler.TextDisplayHandler(self,
!                self._form._instance.eventController,
                 self._displaymask, self._inputmask)
      elif self._field.typecast == 'number':
        self._displayHandler = GFDisplayHandler.NumberDisplayHandler(self,
!                self._form._instance.eventController,
                 self._displaymask, self._inputmask)
      elif self._field.typecast == 'date':
        self._displayHandler = GFDisplayHandler.DateDisplayHandler(self,
!                self._form._instance.eventController,
                 self._displaymask, self._inputmask)
  
      # Row settings
Index: gnue/forms/src/GFParser.py
diff -c gnue/forms/src/GFParser.py:1.98 gnue/forms/src/GFParser.py:1.99
*** gnue/forms/src/GFParser.py:1.98     Wed Nov 27 11:00:04 2002
--- gnue/forms/src/GFParser.py  Wed Nov 27 21:24:39 2002
***************
*** 55,65 ****
  #  not want the loaded form to connect to databases, etc)
  #######################################################
  
! def loadFile(buffer, app, initialize=1):
    return GParser.loadXMLObject (buffer, xmlFormsHandler, 'GFForm', 'form',
!            initialize, attributes={"_app": app,
!                                "_parameters": app._parameters,
!                                "_connections": app.connections })
  
  
  xmlElements = None
--- 55,65 ----
  #  not want the loaded form to connect to databases, etc)
  #######################################################
  
! def loadFile(buffer, instance, initialize=1):
    return GParser.loadXMLObject (buffer, xmlFormsHandler, 'GFForm', 'form',
!            initialize, attributes={"_instance": instance,
!                                "_parameters": instance._parameters,
!                                "_connections": instance.connections })
  
  
  xmlElements = None




reply via email to

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