[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/forms/src GFForm.py GFInstance.py GFKeyMap...
From: |
Jason Cater |
Subject: |
gnue/forms/src GFForm.py GFInstance.py GFKeyMap... |
Date: |
Sun, 09 Mar 2003 17:47:23 -0500 |
CVSROOT: /cvsroot/gnue
Module name: gnue
Changes by: Jason Cater <address@hidden> 03/03/09 17:47:23
Modified files:
forms/src : GFForm.py GFInstance.py GFKeyMapper.py
forms/src/GFObjects: GFBlock.py GFField.py
forms/src/uidrivers/_base: UserActions.py
forms/src/uidrivers/_commonGuiToolkit: MenuBar.py
forms/src/uidrivers/wx: ToolBar.py
Log message:
more work on enabling/disabling menu items and toolbar buttons
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFForm.py.diff?tr1=1.232&tr2=1.233&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFInstance.py.diff?tr1=1.96&tr2=1.97&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFKeyMapper.py.diff?tr1=1.15&tr2=1.16&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFObjects/GFBlock.py.diff?tr1=1.76&tr2=1.77&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFObjects/GFField.py.diff?tr1=1.84&tr2=1.85&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/_base/UserActions.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/_commonGuiToolkit/MenuBar.py.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/wx/ToolBar.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
Patches:
Index: gnue/forms/src/GFForm.py
diff -c gnue/forms/src/GFForm.py:1.232 gnue/forms/src/GFForm.py:1.233
*** gnue/forms/src/GFForm.py:1.232 Sat Mar 8 23:08:50 2003
--- gnue/forms/src/GFForm.py Sun Mar 9 17:47:22 2003
***************
*** 434,439 ****
--- 434,452 ----
def cancelQuery(self):
+ self._instance.dispatchEvent('endENTERQUERY', _form=self);
+ message = None
+ for block in self._logic._blockList:
+ block.cancelQuery()
+
+ return message
+
+ def copyQuery(self):
+ self._instance.dispatchEvent('endENTERQUERY', _form=self);
+ message = None
+ for block in self._logic._blockList:
+ block.copyQuery()
+
return message
***************
*** 449,458 ****
self.rollback(1)
message = _("Database query error:\n%s\n%s ") % (sys.exc_info()[0],
sys.exc_info()[1])
! self._instance.dispatchEvent('endWAIT',None, _form=self)
def commit(self):
! self._instance.dispatchEvent('beginWAIT',None, _form=self)
message = None
--- 462,471 ----
self.rollback(1)
message = _("Database query error:\n%s\n%s ") % (sys.exc_info()[0],
sys.exc_info()[1])
! self._instance.dispatchEvent('endWAIT', _form=self)
def commit(self):
! self._instance.dispatchEvent('beginWAIT', _form=self)
message = None
***************
*** 482,487 ****
--- 495,503 ----
for block in self._logic._blockList:
block.switchRecord(0)
+
+ self.dispatchEvent('cannotCOMMIT')
+ self.dispatchEvent('cannotROLLBACK')
else:
message = _('Form is readonly')
***************
*** 509,514 ****
--- 525,532 ----
block.processRollback(recover)
self.refreshDisplay(self)
self._currentBlock.jumpRecord(self._currentBlock._currentRecord)
+ self.dispatchEvent('cannotCOMMIT')
+ self.dispatchEvent('cannotROLLBACK')
#
# fireTrigger
***************
*** 626,632 ****
#
def refreshDisplay(self, block):
block.walk(self.__refreshDisplay)
!
def __refreshDisplay(self, object):
if object._type == 'GFEntry':
self.dispatchEvent('updateENTRY',object, _form=self)
--- 644,702 ----
#
def refreshDisplay(self, block):
block.walk(self.__refreshDisplay)
! self.refreshUIEvents()
!
!
! # Signal the UI Drivers of navigation button relevance
! def refreshUIEvents(self):
!
! block = self._currentBlock
! dispatchEvent = self.dispatchEvent
! if not block: return
! if block.mode == 'query':
! dispatchEvent('canCANCELQUERY')
! dispatchEvent('cannotENTERQUERY')
! dispatchEvent('cannotPREVRECORD')
! dispatchEvent('cannotFIRSTRECORD')
! dispatchEvent('cannotNEXTRECORD')
! dispatchEvent('cannotLASTRECORD')
! dispatchEvent('cannotCOMMIT')
! dispatchEvent('cannotROLLBACK')
! dispatchEvent('cannotJUMPPROMPT')
! dispatchEvent('cannotNEWRECORD')
! dispatchEvent('cannotMARKFORDELETE')
! else:
! dispatchEvent('canENTERQUERY')
! dispatchEvent('cannotCANCELQUERY')
! ## dispatchEvent('canNEXTRECORD')
!
! # TODO: There should probably be some tests here....
! dispatchEvent('canCOMMIT')
! dispatchEvent('canROLLBACK')
! dispatchEvent('canJUMPPROMPT')
! dispatchEvent('canNEWRECORD')
! dispatchEvent('canMARKFORDELETE')
!
! if block._resultSet.isFirstRecord():
! dispatchEvent('cannotPREVRECORD')
! dispatchEvent('cannotFIRSTRECORD')
! else:
! dispatchEvent('canPREVRECORD')
! dispatchEvent('canFIRSTRECORD')
!
! if block._resultSet.isLastRecord():
! dispatchEvent('cannotLASTRECORD')
! if block._resultSet.current.isEmpty():
! dispatchEvent('cannotNEXTRECORD')
! dispatchEvent('cannotNEWRECORD')
! else:
! dispatchEvent('canNEWRECORD')
! else:
! dispatchEvent('canNEXTRECORD')
! dispatchEvent('canLASTRECORD')
! dispatchEvent('canNEWRECORD')
!
!
def __refreshDisplay(self, object):
if object._type == 'GFEntry':
self.dispatchEvent('updateENTRY',object, _form=self)
Index: gnue/forms/src/GFInstance.py
diff -c gnue/forms/src/GFInstance.py:1.96 gnue/forms/src/GFInstance.py:1.97
*** gnue/forms/src/GFInstance.py:1.96 Sun Mar 9 14:17:07 2003
--- gnue/forms/src/GFInstance.py Sun Mar 9 17:47:22 2003
***************
*** 90,101 ****
'requestROLLBACK' : self.executeRollback,
'requestENTERQUERY' : self.requestQuery,
'requestEXECQUERY' : self.executeQuery,
# Miscellaneous stuff
'requestEXIT' : self.executeExit,
'requestABOUT' : self.executeAbout,
'requestMODETOGGLE' : self.toggleInsertMode,
- 'cancelQUERY' : self.cancelQuery,
'fireTRIGGER' : self.fireTrigger,
'buttonActivated' : self.fireButton,
--- 90,102 ----
'requestROLLBACK' : self.executeRollback,
'requestENTERQUERY' : self.requestQuery,
'requestEXECQUERY' : self.executeQuery,
+ 'requestCANCELQUERY' : self.cancelQuery,
+ 'requestCOPYQUERY' : self.copyQuery,
# Miscellaneous stuff
'requestEXIT' : self.executeExit,
'requestABOUT' : self.executeAbout,
'requestMODETOGGLE' : self.toggleInsertMode,
'fireTRIGGER' : self.fireTrigger,
'buttonActivated' : self.fireButton,
***************
*** 290,297 ****
--- 291,300 ----
_form=form)
self.dispatchEvent('updateENTRY',form._currentEntry)
form.refreshDisplay(form)
+
self.updateStatus(form)
+
#
# buildForm
#
***************
*** 811,828 ****
self.updateStatus(event._form)
#
! # executeQuery
#
! def executeCommit(self, event):
if not event._form.endEditing():
return
! message = event._form.commit()
if message:
self.displayMessageBox(message)
return
! event._form.refreshDisplay(event._form._currentBlock)
! self._entryUpdated(event._form)
#
# executeQuery
--- 814,835 ----
self.updateStatus(event._form)
#
! # copyQuery
#
! def copyQuery(self, event):
if not event._form.endEditing():
return
!
! message = event._form.copyQuery()
!
if message:
self.displayMessageBox(message)
return
!
! event._form.refreshDisplay(event._form)
! self.dispatchEvent('gotoENTRY',object=event._form._currentEntry,
_form=event._form)
! self.updateStatus(event._form)
#
# executeQuery
***************
*** 834,839 ****
--- 841,860 ----
if message:
self.displayMessageBox(message)
+ event._form.refreshDisplay(event._form._currentBlock)
+ self._entryUpdated(event._form)
+
+ #
+ # executeCommit
+ #
+ def executeCommit(self, event):
+ if not event._form.endEditing():
+ return
+ message = event._form.commit()
+ if message:
+ self.displayMessageBox(message)
+
+ return
event._form.refreshDisplay(event._form._currentBlock)
self._entryUpdated(event._form)
Index: gnue/forms/src/GFKeyMapper.py
diff -c gnue/forms/src/GFKeyMapper.py:1.15 gnue/forms/src/GFKeyMapper.py:1.16
*** gnue/forms/src/GFKeyMapper.py:1.15 Mon Mar 3 17:13:57 2003
--- gnue/forms/src/GFKeyMapper.py Sun Mar 9 17:47:23 2003
***************
*** 296,302 ****
--- 296,304 ----
(vk.F5, 0, 0, 0) : 'MARKFORDELETE',
(vk.F6, 0, 0, 0) : 'COMMIT',
(vk.F8, 0, 0, 0) : 'ENTERQUERY',
+ (vk.F8, 1, 0, 0) : 'COPYQUERY',
(vk.F9, 0, 0, 0) : 'EXECQUERY',
+ (vk.F10, 1, 0, 0) : 'CANCELQUERY',
(vk.F11, 0, 0, 0) : 'ROLLBACK',
(vk.F12, 0, 0, 0) : 'NEWRECORD',
(vk.ENTER, 1, 0, 0) : 'NEWLINE',
Index: gnue/forms/src/GFObjects/GFBlock.py
diff -c gnue/forms/src/GFObjects/GFBlock.py:1.76
gnue/forms/src/GFObjects/GFBlock.py:1.77
*** gnue/forms/src/GFObjects/GFBlock.py:1.76 Sat Mar 1 15:29:32 2003
--- gnue/forms/src/GFObjects/GFBlock.py Sun Mar 9 17:47:23 2003
***************
*** 100,107 ****
'description':''},
'deleteRecord':{'function':self.deleteRecord,
'description':''},
- 'executeQuery':{'function':self.processQuery,
- 'description':''},
'gotoRecord':{'function':self.jumpRecord,
'description':''},
'firstRecord':{'function':self.firstRecord,
--- 100,105 ----
***************
*** 122,127 ****
--- 120,131 ----
'description':'Clears all records
regardless of state from the block'},
'initQuery':{'function':self.initQuery,
'description':'Prepares the block for
query input.'},
+ 'copyQuery':{'function':self.copyQuery,
+ 'description':'Prepares the block for
query input.'},
+ 'cancelQuery':{'function':self.cancelQuery,
+ 'description':'Cancels query input.'},
+ 'executeQuery':{'function':self.processQuery,
+ 'description':'Executes the
current query.'},
}
self._triggerProperties={'parent': {'get':self.getParent}}
***************
*** 249,276 ****
# This for loop is probably better somewhere else
entry.recalculateVisible( adjustment, self._currentRecord,
self._recordCount)
self._form.updateUIEntry(field)
!
! # Signal the UI Drivers of navigation button relevance
! if self._form._currentBlock == self:
! if self._resultSet.isFirstRecord():
! self._form.dispatchEvent('cannotPREVRECORD')
! self._form.dispatchEvent('cannotFIRSTRECORD')
! else:
! self._form.dispatchEvent('canPREVRECORD')
! self._form.dispatchEvent('canFIRSTRECORD')
!
! if self._resultSet.isLastRecord():
! self._form.dispatchEvent('cannotLASTRECORD')
! ## if self._resultSet.current.isEmpty():
! ## self._form.dispatchEvent('cannotNEXTRECORD')
! else:
! self._form.dispatchEvent('canNEXTRECORD')
! self._form.dispatchEvent('canLASTRECORD')
!
!
!
!
!
#
# newRecord
--- 253,259 ----
# This for loop is probably better somewhere else
entry.recalculateVisible( adjustment, self._currentRecord,
self._recordCount)
self._form.updateUIEntry(field)
! self._form.refreshUIEvents()
#
# newRecord
***************
*** 450,464 ****
self._queryValues = {}
self._queryValues.update(self._queryDefaults)
self.switchRecord(0)
- elif self._query2:
- self._query2 = 0
- self._queryValues = {}
- self._queryValues.update(self._lastQueryValues)
- self.switchRecord(0)
- else:
- self.mode = 'normal'
- self.switchRecord(0)
def processQuery(self):
# Set the maxList to a single master block
--- 433,449 ----
self._queryValues = {}
self._queryValues.update(self._queryDefaults)
self.switchRecord(0)
+ def copyQuery(self):
+ self.mode = 'query'
+ self._query2 = 0
+ self._queryValues = {}
+ self._queryValues.update(self._lastQueryValues)
+ self.switchRecord(0)
+
+ def cancelQuery(self):
+ self.mode = 'normal'
+ self.switchRecord(0)
def processQuery(self):
# Set the maxList to a single master block
Index: gnue/forms/src/GFObjects/GFField.py
diff -c gnue/forms/src/GFObjects/GFField.py:1.84
gnue/forms/src/GFObjects/GFField.py:1.85
*** gnue/forms/src/GFObjects/GFField.py:1.84 Mon Feb 17 02:32:53 2003
--- gnue/forms/src/GFObjects/GFField.py Sun Mar 9 17:47:23 2003
***************
*** 278,283 ****
--- 278,288 ----
self.processTrigger('Pre-Change')
self._block._resultSet.current.setField(self.field,value)
self.processTrigger('Post-Change')
+
+ ### if self._block._resultSet.current.isPending():
+ ### self.dispatchEvent('canCOMMIT')
+ ### self.dispatchEvent('canROLLBACK')
+
self._block._form.updateUIEntry(self)
#
Index: gnue/forms/src/uidrivers/_base/UserActions.py
diff -c gnue/forms/src/uidrivers/_base/UserActions.py:1.6
gnue/forms/src/uidrivers/_base/UserActions.py:1.7
*** gnue/forms/src/uidrivers/_base/UserActions.py:1.6 Mon Mar 3 17:22:51 2003
--- gnue/forms/src/uidrivers/_base/UserActions.py Sun Mar 9 17:47:23 2003
***************
*** 198,209 ****
event="ENTERQUERY",
description=_('Switch to query mode. Select Execute Query once your
criteria has been entered.'),
help=_('Switch to query mode. Select Execute Query once your criteria
has been entered.'),
! canToggle=1 ),
UserAction(
event="COPYQUERY",
! description=_('Switch to query mode and retrieve the last query
parameters. Select Execute Query once your criteria has been entered.'),
! help=_('Switch to query mode and retrieve the last query parameters.
Select Execute Query once your criteria has been entered.') ),
UserAction(
event="EXECQUERY",
--- 198,214 ----
event="ENTERQUERY",
description=_('Switch to query mode. Select Execute Query once your
criteria has been entered.'),
help=_('Switch to query mode. Select Execute Query once your criteria
has been entered.'),
! canToggle='CANCELQUERY' ),
UserAction(
event="COPYQUERY",
! description=_('Switch to query mode (if not already) and retrieve the
last query parameters. Select Execute Query once your criteria has been
entered.'),
! help=_('Switch to query mode (if not already) and retrieve the last
query parameters. Select Execute Query once your criteria has been entered.')
),
!
! UserAction(
! event="CANCELQUERY",
! description=_('Cancel query mode.'),
! help=_('Cancel query mode.') ),
UserAction(
event="EXECQUERY",
Index: gnue/forms/src/uidrivers/_commonGuiToolkit/MenuBar.py
diff -c gnue/forms/src/uidrivers/_commonGuiToolkit/MenuBar.py:1.7
gnue/forms/src/uidrivers/_commonGuiToolkit/MenuBar.py:1.8
*** gnue/forms/src/uidrivers/_commonGuiToolkit/MenuBar.py:1.7 Mon Mar 3
17:22:51 2003
--- gnue/forms/src/uidrivers/_commonGuiToolkit/MenuBar.py Sun Mar 9
17:47:23 2003
***************
*** 140,148 ****
( '&Edit', (
('C&ut', "CUT"),
('&Copy', "COPY"),
! ('C&opy Special', (
! ('&Record as Text', 'COPYRECORD'),
! ('&Screen as Text', 'COPYSCREEN' ) ) ),
('&Paste', "PASTE"),
None,
('&Insert New Record',"NEWRECORD"),
--- 140,148 ----
( '&Edit', (
('C&ut', "CUT"),
('&Copy', "COPY"),
! #TODO: POST 0.5.0# ('C&opy Special', (
! #TODO: POST 0.5.0# ('&Record as Text', 'COPYRECORD'),
! #TODO: POST 0.5.0# ('&Screen as Text', 'COPYSCREEN' ) ) ),
('&Paste', "PASTE"),
None,
('&Insert New Record',"NEWRECORD"),
***************
*** 167,178 ****
( '&Search', (
('Enter Query Mode', "ENTERQUERY"),
('Copy Last Query', "COPYQUERY"),
None,
('Perform Query', "EXECQUERY") ) ),
( '&Help', (
! ('Keystrokes...', "HELPKEYS"),
! ('About...', "ABOUT") ) ),
)
--- 167,180 ----
( '&Search', (
('Enter Query Mode', "ENTERQUERY"),
+ ('Cancel Query Mode', "CANCELQUERY"),
+ None,
('Copy Last Query', "COPYQUERY"),
None,
('Perform Query', "EXECQUERY") ) ),
( '&Help', (
! #TODO: POST 0.5.0# ('Keystrokes...', "HELPKEYS"),
! ('About...', "ABOUT"), ) ),
)
Index: gnue/forms/src/uidrivers/wx/ToolBar.py
diff -c gnue/forms/src/uidrivers/wx/ToolBar.py:1.3
gnue/forms/src/uidrivers/wx/ToolBar.py:1.4
*** gnue/forms/src/uidrivers/wx/ToolBar.py:1.3 Sun Mar 2 13:46:48 2003
--- gnue/forms/src/uidrivers/wx/ToolBar.py Sun Mar 9 17:47:23 2003
***************
*** 50,58 ****
id = wxNewId()
! event = 'request' + userAction.event
! EVT_MENU(self.driver._wxapp, id,
! lambda event, l=self.driver, e=event, f=self.form:
l.dispatchEvent(e,_form=f))
# Set the action icon if available
if iconloc:
--- 50,66 ----
id = wxNewId()
! event = 'request%s' % userAction.event
! if userAction.canToggle:
! EVT_MENU(self.driver._wxapp, id,
! lambda event, l=self.driver,
! e=event, i=id,
! te='request%s' % userAction.canToggle,
! s=self.toolbar.GetToolState,
! f=self.form: l.dispatchEvent((s(i) and e or te),_form=f))
! else:
! EVT_MENU(self.driver._wxapp, id,
! lambda event, l=self.driver, e=event, f=self.form:
l.dispatchEvent(e,_form=f))
# Set the action icon if available
if iconloc:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/forms/src GFForm.py GFInstance.py GFKeyMap...,
Jason Cater <=