commit-gnue
[Top][All Lists]
Advanced

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




reply via email to

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