[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue common/src/GConfig.py common/src/GParser.p...,
James Thompson <=