commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r9340 - in trunk/gnue-forms: defaults src


From: reinhard
Subject: [gnue] r9340 - in trunk/gnue-forms: defaults src
Date: Fri, 26 Jan 2007 18:36:40 -0600 (CST)

Author: reinhard
Date: 2007-01-26 18:36:40 -0600 (Fri, 26 Jan 2007)
New Revision: 9340

Modified:
   trunk/gnue-forms/defaults/default.gfd
   trunk/gnue-forms/src/GFForm.py
Log:
Dynamically enable and disable actions defined in default.gfd.


Modified: trunk/gnue-forms/defaults/default.gfd
===================================================================
--- trunk/gnue-forms/defaults/default.gfd       2007-01-27 00:34:08 UTC (rev 
9339)
+++ trunk/gnue-forms/defaults/default.gfd       2007-01-27 00:36:40 UTC (rev 
9340)
@@ -3,143 +3,187 @@
 <form>
 
   <!-- Clipboard and selection -->
-  <action name="__cut__" label="Cut">
+  <action name="act__cut__" label="Cut">
     form.cut()
   </action>
-  <action name="__copy__" label="Copy">
+  <action name="act__copy__" label="Copy">
     form.copy()
   </action>
-  <action name="__paste__" label="Paste">
+  <action name="act__paste__" label="Paste">
     form.paste()
   </action>
-  <action name="__select_all__" label="Select All">
+  <action name="act__select_all__" label="Select All">
     form.select_all()
   </action>
 
   <!-- Focus management -->
-  <action name="__next_block__" label="Next Block">
+  <action name="act__next_block__" label="Next Block">
     form.next_block()
   </action>
-  <action name="__previous_block__" label="Previous Block">
+  <action name="act__previous_block__" label="Previous Block">
     form.previous_block()
   </action>
-  <action name="__next_page__" label="Next Page">
+  <action name="act__next_page__" label="Next Page">
     form.next_page()
   </action>
-  <action name="__previous_page__" label="Previous Page">
+  <action name="act__previous_page__" label="Previous Page">
     form.previous_page()
   </action>
 
   <!-- Record navigation -->
-  <action name="__first_record__" label="First Record">
+  <action name="act__first_record__" label="First Record">
     form.first_record()
   </action>
-  <action name="__prev_record__" label="Previous Record">
+  <action name="act__prev_record__" label="Previous Record">
     form.prev_record()
   </action>
-  <action name="__next_record__" label="Next Record">
+  <action name="act__next_record__" label="Next Record">
     form.next_record()
   </action>
-  <action name="__last_record__" label="Last Record">
+  <action name="act__last_record__" label="Last Record">
     form.last_record()
   </action>
-  <action name="__ask_record__" label="Jump to Record">
+  <action name="act__ask_record__" label="Jump to Record">
     form.ask_record()
   </action>
 
   <!-- Record insertion and deletion -->
-  <action name="__new_record__" label="New Record">
+  <action name="act__new_record__" label="New Record">
     form.new_record()
   </action>
-  <action name="__delete_record__" label="Delete Record">
+  <action name="act__delete_record__" label="Delete Record">
     form.delete_record()
   </action>
-  <action name="__undelete_record__" label="Undelete Record">
+  <action name="act__undelete_record__" label="Undelete Record">
     form.undelete_record()
   </action>
 
   <!-- Queries -->
-  <action name="__init_query__" label="Enter Query Mode">
+  <action name="act__init_query__" label="Enter Query Mode">
     form.init_query()
   </action>
-  <action name="__copy_query__" label="Repeat Last Query">
+  <action name="act__copy_query__" label="Repeat Last Query">
     form.copy_query()
   </action>
-  <action name="__cancel_query__" label="Cancel Query Mode">
+  <action name="act__cancel_query__" label="Cancel Query Mode">
     form.cancel_query()
   </action>
-  <action name="__execute_query__" label="Perform Query">
+  <action name="act__execute_query__" label="Perform Query">
     form.execute_query()
   </action>
 
   <!-- Transactions -->
-  <action name="__commit__" label="Save changes">
+  <action name="act__commit__" label="Save changes">
     form.commit()
   </action>
-  <action name="__rollback__" label="Discard changes">
+  <action name="act__rollback__" label="Discard changes">
     form.rollback()
   </action>
 
   <!-- Other stuff -->
-  <action name="__show_about__" label="About">
+  <action name="act__show_about__" label="About">
     form.show_about()
   </action>
-  <action name="__printout__" label="Print Form">
+  <action name="act__printout__" label="Print Form">
     form.printout()
   </action>
-  <action name="__close__" label="Close Window">
+  <action name="act__close__" label="Close Window">
     form.close()
   </action>
 
+  <trigger name="trg__update_status__" type="ON-STATUSCHANGE">
+    current_block = form.get_focus_block()
+    if current_block is not None:
+        record_status = current_block.get_record_status()
+        possible_operations = current_block.get_possible_operations()
+    else:
+        record_status = None
+        possible_operations = []
+
+    for operation, action in (
+            ('first_record',    form.act__first_record__),
+            ('prev_record',     form.act__prev_record__),
+            ('next_record',     form.act__next_record__),
+            ('last_record',     form.act__last_record__),
+            ('goto_record',     form.act__ask_record__),
+            ('new_record',      form.act__new_record__),
+            ('delete_record',   form.act__delete_record__),
+            ('undelete_record', form.act__undelete_record__)):
+        action.enabled = (operation in possible_operations)
+
+    if form.in_query_mode():
+        form.act__init_query__.enabled = False
+        form.act__copy_query__.enabled = False
+        form.act__cancel_query__.enabled = True
+        form.act__execute_query__.enabled = True
+        form.act__commit__.enabled = False
+        form.act__rollback__.enabled = False
+    else:
+        form.act__init_query__.enabled = True
+        form.act__copy_query__.enabled = True
+        form.act__cancel_query__.enabled = False
+        form.act__execute_query__.enabled = False
+        form.act__commit__.enabled = not form.is_saved()
+        form.act__rollback__.enabled = True
+  </trigger>
+
+
   <menu name="__main__" label="Main Menu">
     <menu name="__file__" label="File">
-      <menuitem name="__commit__" action="__commit__" hotkey="F6"/>
-      <menuitem name="__rollback__" action="__rollback__" hotkey="F11"/>
+      <menuitem name="__commit__" action="act__commit__" hotkey="F6"/>
+      <menuitem name="__rollback__" action="act__rollback__" hotkey="F11"/>
       <menuitem name="__sep0__"/>
-      <menuitem name="__printout__" action="__printout__" hotkey="CTRL+P"/>
+      <menuitem name="__printout__" action="act__printout__"
+        hotkey="CTRL+P"/>
       <menuitem name="__sep1__"/>
-      <menuitem name="__close__" action="__close__" hotkey="CTRL+Q"/>
+      <menuitem name="__close__" action="act__close__" hotkey="CTRL+Q"/>
     </menu>
     <menu name="__edit__" label="Edit">
-      <menuitem name="__cut__" action="__cut__" hotkey="CTRL+X"/>
-      <menuitem name="__copy__" action="__copy__" hotkey="CTRL+C"/>
-      <menuitem name="__paste__" action="__paste__" hotkey="CTRL+V"/>
-      <menuitem name="__select_all__" action="__select_all__" hotkey="CTRL+A"/>
+      <menuitem name="__cut__" action="act__cut__" hotkey="CTRL+X"/>
+      <menuitem name="__copy__" action="act__copy__" hotkey="CTRL+C"/>
+      <menuitem name="__paste__" action="act__paste__" hotkey="CTRL+V"/>
+      <menuitem name="__select_all__" action="act__select_all__"
+        hotkey="CTRL+A"/>
       <menuitem name="__sep0__"/>
-      <menuitem name="__new_record__" action="__new_record__" hotkey="F12"/>
+      <menuitem name="__new_record__" action="act__new_record__"
+        hotkey="F12"/>
       <menuitem name="__sep1__"/>
-      <menuitem name="__delete_record__" action="__delete_record__"
-        action_off="__undelete_record__" hotkey="F5"/>
+      <menuitem name="__delete_record__" action="act__delete_record__"
+        action_off="act__undelete_record__" hotkey="F5"/>
     </menu>
     <menu name="__navigation__" label="Navigation">
-      <menuitem name="__previous_block__" action="__previous_block__"
+      <menuitem name="__previous_block__" action="act__previous_block__"
         hotkey="PGUP"/>
-      <menuitem name="__next_block__" action="__next_block__"
+      <menuitem name="__next_block__" action="act__next_block__"
         hotkey="PGDN"/>
-      <menuitem name="__previous_page__" action="__previous_page__"
+      <menuitem name="__previous_page__" action="act__previous_page__"
         hotkey="CTRL+PGUP"/>
-      <menuitem name="__next_page__" action="__next_page__"
+      <menuitem name="__next_page__" action="act__next_page__"
         hotkey="CTRL+PGDN"/>
       <menuitem name="__sep0__"/>
-      <menuitem name="__first_record__" action="__first_record__"
+      <menuitem name="__first_record__" action="act__first_record__"
         hotkey="CTRL+UP"/>
-      <menuitem name="__prev_record__" action="__prev_record__" hotkey="UP"/>
-      <menuitem name="__next_record__" action="__next_record__" hotkey="DOWN"/>
-      <menuitem name="__last_record__" action="__last_record__"
+      <menuitem name="__prev_record__" action="act__prev_record__"
+        hotkey="UP"/>
+      <menuitem name="__next_record__" action="act__next_record__"
+        hotkey="DOWN"/>
+      <menuitem name="__last_record__" action="act__last_record__"
         hotkey="CTRL+DOWN"/>
-      <menuitem name="__ask_record__" action="__ask_record__" hotkey="F3"/>
+      <menuitem name="__ask_record__" action="act__ask_record__"
+        hotkey="F3"/>
     </menu>
     <menu name="__filter__" label="Filter">
-      <menuitem name="__init_query__" action="__init_query__" hotkey="F8"/>
-      <menuitem name="__cancel_query__" action="__cancel_query__"
+      <menuitem name="__init_query__" action="act__init_query__"
+        hotkey="F8"/>
+      <menuitem name="__cancel_query__" action="act__cancel_query__"
         hotkey="SHIFT+F9"/>
-      <menuitem name="__copy_query__" action="__copy_query__"
+      <menuitem name="__copy_query__" action="act__copy_query__"
         hotkey="SHIFT+F8"/>
-      <menuitem name="__execute_query__" action="__execute_query__"
+      <menuitem name="__execute_query__" action="act__execute_query__"
         hotkey="F9"/>
     </menu>
     <menu name="__help__" label="Help">
-      <menuitem name="__show_about__" action="__show_about__"/>
+      <menuitem name="__show_about__" action="act__show_about__"/>
     </menu>
   </menu>
 

Modified: trunk/gnue-forms/src/GFForm.py
===================================================================
--- trunk/gnue-forms/src/GFForm.py      2007-01-27 00:34:08 UTC (rev 9339)
+++ trunk/gnue-forms/src/GFForm.py      2007-01-27 00:36:40 UTC (rev 9340)
@@ -129,12 +129,13 @@
         self._triggerGlobal = True
 
         self._validTriggers = {
-            'ON-STARTUP':    'On-Startup',
-            'ON-ACTIVATION': 'On-Activation',
-            'PRE-EXIT':      'Pre-Exit',
-            'ON-EXIT':       'On-Exit',
-            'PRE-COMMIT':    'Pre-Commit',
-            'POST-COMMIT':   'Post-Commit'}
+            'ON-STARTUP':      'On-Startup',
+            'ON-ACTIVATION':   'On-Activation',
+            'ON-STATUSCHANGE': 'On-StatusChange',
+            'PRE-EXIT':        'Pre-Exit',
+            'ON-EXIT':         'On-Exit',
+            'PRE-COMMIT':      'Pre-Commit',
+            'POST-COMMIT':     'Post-Commit'}
 
         self._triggerFunctions = {
             'getAuthenticatedUser': {
@@ -1742,6 +1743,10 @@
         @return: None
         """
 
+        self.processTrigger('On-StatusChange')
+
+        # FIXME: The rest of this method can be removed after complete
+        # migration to dynamic menus and toolbars.
         if self._currentBlock is not None:
             record_status = self._currentBlock.get_record_status()
             possible_operations = self._currentBlock.get_possible_operations()





reply via email to

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