Author: reinhard
Date: 2007-05-08 14:19:05 -0500 (Tue, 08 May 2007)
New Revision: 9555
Modified:
trunk/gnue-forms/src/GFForm.py
trunk/gnue-forms/src/GFInstance.py
Log:
Some cleanup.
Modified: trunk/gnue-forms/src/GFForm.py
===================================================================
--- trunk/gnue-forms/src/GFForm.py 2007-05-08 17:00:06 UTC (rev 9554)
+++ trunk/gnue-forms/src/GFForm.py 2007-05-08 19:19:05 UTC (rev 9555)
@@ -138,49 +138,16 @@
'POST-COMMIT': 'Post-Commit'}
self._triggerFunctions = {
- 'getAuthenticatedUser': {
- 'function': self.__trigger_get_authenticated_user,
- 'global' : True},
- 'getFeature': {
- 'function': self.__trigger_get_feature,
- 'global': True},
- 'setFeature': {
- 'function': self.__trigger_set_feature,
- 'global': True},
- 'getParameter': {
- 'function': self.__trigger_get_parameter,
- 'global' : True},
- 'setParameter': {
- 'function': self.__trigger_set_parameter,
- 'global' : True},
- 'setTitle': {
- 'function': self.__trigger_set_title,
- 'global' : True},
- 'getCurrentBlockName': {
- 'function': self.__trigger_get_current_block_name,
- 'global' : True},
- 'setFocus': {
- 'function': self.__trigger_set_focus,
- 'global' : True},
-
- # User feedback
+ # User feedback and interaction
+ 'set_title': {'function': self.set_title},
'beep': {'function': self.beep, 'global': True},
'status_message': {'function': self.status_message},
'show_message': {'function': self.show_message},
'select_files': {'function': self.select_files},
'select_dir': {'function': self.select_dir},
+ 'show_about': {'function': self.show_about},
+ 'show_dialog': {'function': self.show_dialog},
- # User feedback - deprecated
- 'setStatusText': {
- 'function': self.status_message,
- 'global': True},
- 'showMessage': {
- 'function': self.__trigger_show_message,
- 'global': True},
- 'messageBox': {
- 'function': self.__trigger_message_box,
- 'global': True},
-
# Clipboard and selection
'cut': {'function': self.cut},
'copy': {'function': self.copy},
@@ -215,38 +182,75 @@
'apply_filter': {'function': self.apply_filter},
'in_filter_mode': {'function': self.in_filter_mode},
- # Filter - deprecated
- 'init_query': {'function': self.init_filter},
- 'copy_query': {'function': self.change_filter},
- 'cancel_query': {'function': self.discard_filter},
- 'execute_query': {'function': self.apply_filter},
- 'in_query_mode': {'function': self.in_filter_mode},
-
# Transactions
'commit': {'function': self.commit, 'global': True},
'rollback': {'function': self.rollback, 'global': True},
'is_saved': {'function': self.is_saved},
# Other stuff
+ 'fire_trigger': {'function': self.fire_trigger},
+ 'run_form': {'function': self.run_form},
+ 'run_report': {'function': self.run_report},
'toggle_insert_mode': {'function': self.toggle_insert_mode},
- 'show_about': {'function': self.show_about},
+ 'get_username': {'function': self.get_username},
'printout': {'function': self.printout},
+ 'close': {'function': self.close, 'global': True},
+ # Deprecated functions
+ 'setStatusText': {
+ 'function': self.status_message,
+ 'global': True},
+ 'showMessage': {
+ 'function': self.__trigger_show_message,
+ 'global': True},
+ 'messageBox': {
+ 'function': self.__trigger_message_box,
+ 'global': True},
+
'activateDialog': {
- 'function': self.__trigger_activate_dialog,
+ 'function': self.show_dialog,
'global': True},
'activateTrigger': {
- 'function': self.__trigger_fire_trigger,
+ 'function': self.fire_trigger,
'global': True},
'runForm': {
- 'function': self.__trigger_run_form,
+ 'function': self.run_form,
'global': True},
'runReport': {
- 'function': self.__trigger_run_report,
+ 'function': self.run_report,
'global': True},
- 'close': {'function': self.close, 'global': True}}
+ 'init_query': {'function': self.init_filter},
+ 'copy_query': {'function': self.change_filter},
+ 'cancel_query': {'function': self.discard_filter},
+ 'execute_query': {'function': self.apply_filter},
+ 'in_query_mode': {'function': self.in_filter_mode},
+ 'getAuthenticatedUser': {
+ 'function': self.get_username,
+ 'global' : True},
+ 'getFeature': {
+ 'function': self.__trigger_get_feature,
+ 'global': True},
+ 'setFeature': {
+ 'function': self.__trigger_set_feature,
+ 'global': True},
+ 'getParameter': {
+ 'function': self.__trigger_get_parameter,
+ 'global' : True},
+ 'setParameter': {
+ 'function': self.__trigger_set_parameter,
+ 'global' : True},
+ 'setTitle': {
+ 'function': self.set_title,
+ 'global' : True},
+ 'getCurrentBlockName': {
+ 'function': self.__trigger_get_current_block_name,
+ 'global' : True},
+ 'setFocus': {
+ 'function': self.__trigger_set_focus,
+ 'global' : True}}
+
self._features = {
'GUI:MENUBAR:SUPPRESS': False,
'GUI:TOOLBAR:SUPPRESS': False,
@@ -488,208 +492,8 @@
self.__find_and_change_focus([self._currentPage], False)
- # -------------------------------------------------------------------------
- # Trigger functions
- # -------------------------------------------------------------------------
-
- def __trigger_get_authenticated_user(self, connection=None):
- """
- Return the authenticated user.
- """
- return self._instance.connections.getAuthenticatedUser(connection)
-
- # -------------------------------------------------------------------------
-
- def __trigger_get_feature(self, feature):
- """
- Gets feature values.
- Features are things like toolbars, menubars and statusbar.
- @param feature: 'GUI:MENUBAR:SUPPRESS' or 'GUI:TOOLBAR:SUPPRESS' or
- 'GUI:STATUSBAR:SUPPRESS'
- @return: Boolean
- """
- try:
- return self._features[feature]
- except KeyError:
- raise KeyError, "Trigger attempted to get unknown feature %s" % feature
-
- # -------------------------------------------------------------------------
-
- def __trigger_set_feature(self, feature, value):
- """
- Sets feature values.
- Features are things like toolbars, menubars and statusbar.
- @param feature: 'GUI:MENUBAR:SUPPRESS' or 'GUI:TOOLBAR:SUPPRESS' or
- 'GUI:STATUSBAR:SUPPRESS'
- @param value: True or False
- @return: None
- """
- if not self._features.has_key(feature):
- raise KeyError, "Trigger attempted to set unknown feature %s" % feature
- else:
- self._features[feature] = value
-
- # -------------------------------------------------------------------------
-
- def __trigger_get_parameter(self, parameter):
-
- assert gDebug(1, "DEPRECATED: getParameter trigger function")
- if parameter in self.__parameter_dict:
- return self.__parameter_dict[parameter].value
- else:
- raise UndefinedParameterError(parameter)
-
- # -------------------------------------------------------------------------
-
- def __trigger_set_parameter(self, parameter, value):
-
- assert gDebug(1, "DEPRECATED: setParameter trigger function")
- if parameter in self.__parameter_dict:
- self.__parameter_dict[parameter].value = value
- else:
- raise UndefinedParameterError(parameter)
-
- # -------------------------------------------------------------------------
-
- def __trigger_set_title(self, title):
- """
- Sets and displays the title of the form.
- @param title: new title
- """
- self.title = title
- self.uiWidget._ui_set_title_(title)
-
- # -------------------------------------------------------------------------
-
- def __trigger_get_current_block_name(self):
- if self._currentBlock is not None:
- return self._currentBlock.name
- else:
- return None
-
- # -------------------------------------------------------------------------
-
- def __trigger_set_focus(self, object):
- """
- Switch input focus to a specific widget.
-
- @param object: the widget that should get the focus
- """
- # add global focus locking
- if self._in_trigger_lock:
- gDebug(1, "Already called by a trigger")
- return
-
- self._in_trigger_lock = True
-
- try:
- self.__find_and_change_focus([object._object], False)
- finally:
- self._in_trigger_lock = False
-
- # -------------------------------------------------------------------------
-
- def __trigger_show_message(self, msgtxt, caption='GNUe Message',
- title='Information', kind = 'Info', cancel = False):
- """
- Displays a standard message box.
- @param msgtxt: text to be displayed
- @param caption: caption to be displayed, default='GNUe Message'
- @param title: title of messagebox, default='Information'
- @param kind: 'Question', 'Info', 'Warning', or 'Error', default='Info'
- @param cancel: Flag whether to include a Cancel button, default='False'
- @return: True for <Yes> or <Ok> button, False for <No> button, None for
- <Cancel> button.
- """
- return self.show_message(msgtxt, kind, title, cancel)
-
-
- # -------------------------------------------------------------------------
-
- def __trigger_message_box(self, message, kind=None, title=None,
- cancel=False):
- """
- This function brings up a message box of a given kind.
- @param message: text to be displayed
- @param kind: 'Question', 'Info', 'Warning', or 'Error'
- @param cancel: Boolean flag indicating wether a cancel button will be
- included or not.
- @return: True for <Yes> or <Ok> button, False for <No> button, None for
- <Cancel> button.
- """
- return self.show_message(message, kind, title, cancel)
-
- # -------------------------------------------------------------------------
-
- def __trigger_activate_dialog (self, dialogName, parameters=None,
- modal=False):
- """
- Launches a standard or a custom dialog.
- @param dialogName: name of the dialog to be displayed
- @param parameters: dictionary of parameters used to pass values
- back and forth
- @param modal: whether the dialog should be modal or not
- @return: None
- """
- form = self.__subforms[dialogName]
- if parameters is not None:
- form.set_parameters(parameters)
- form.execute_open(modal)
- if modal and parameters is not None:
- parameters.update(form.get_parameters())
-
- # -------------------------------------------------------------------------
-
- def __trigger_fire_trigger(self, name):
- """
- Fires a named trigger.
- """
- # FIXME: Should allow access via trigger object run() method, like for
- # actions.
- self.fireTrigger(name)
-
- # -------------------------------------------------------------------------
-
- def __trigger_run_form(self, filename, parameters=None):
- """
- Loads and activates a new form from a file.
-
- @param fileName: the name of the .gfd file to be displayed
- @param parameters: dictionary of parameters to be passed to the newly
- run form
- """
- self._instance.run_from_file(filename, parameters)
-
- # -------------------------------------------------------------------------
-
- def __trigger_run_report(self, reportFile, parameters={}, **parms):
- """
- Launches a new instance of GNUe-Reports, running a new report.
- @param reportFile: the name of the .grd file to be processed
- @param parameters: dictionary of parameters to be passed
- to the newly run report
- @param **params:
- These roughly correspond to the ./gnue-reports options
- destination
- destinationType
- destinationOptions (dict)
- filter
- filterOptions (dict)
- sortoption
- includeStructuralComments
- omitGNUeXML
- @return: None
- """
- from gnue.reports.base.GREngine import GREngine
- from gnue.reports.base import GRFilters, GRExceptions
- rep_engine = GREngine(self._instance.connections)
- rep_engine.processReport(reportFile, parameters=parameters, **parms)
-
-
# =========================================================================
# Events
- #
- # Incoming Event handlers
# =========================================================================
# -------------------------------------------------------------------------
@@ -735,6 +539,17 @@
# User feedback
# =========================================================================
+ def set_title(self, title):
+ """
+ Sets and displays the title of the form.
+
+ @param title: new title
+ """
+ self.title = title
+ self.uiWidget._ui_set_title_(title)
+
+ # -------------------------------------------------------------------------
+
def alert_message(self, message):
self.status_message(message)
@@ -826,8 +641,36 @@
if self.uiWidget is not None:
return self.uiWidget._ui_select_dir_(title, default_dir, new_dir)
+ # -------------------------------------------------------------------------
+ def show_about(self):
+ if self.uiWidget is not None:
+ self.uiWidget._ui_show_about_(
+ self.title or "Unknown",
+ self.get_option('version') or "Unknown",
+ self.get_option('author') or "Unknown",
+ self.get_option('description') or "Unknown")
+
+ # -------------------------------------------------------------------------
+
+ def show_dialog (self, name, parameters=None, modal=False):
+ """
+ Launches a standard or a custom dialog.
+ @param name: name of the dialog to be displayed
+ @param parameters: dictionary of parameters used to pass values
+ back and forth
+ @param modal: whether the dialog should be modal or not
+ @return: None
+ """
+ form = self.__subforms[name]
+ if parameters is not None:
+ form.set_parameters(parameters)
+ form.execute_open(modal)
+ if modal and parameters is not None:
+ parameters.update(form.get_parameters())
+
+
# =========================================================================
# Clipboard and selection
# =========================================================================
@@ -1717,6 +1560,76 @@
# =========================================================================
# -------------------------------------------------------------------------
+ # Launch a trigger
+ # -------------------------------------------------------------------------
+
+ def fire_trigger(self, name):
+ """
+ Launches a trigger.
+
+ @param name: name of the trigger to be launched.
+ """
+
+ self._triggerDictionary[triggerName](self=self)
+
+
+ # -------------------------------------------------------------------------
+ # Run a form from another GFD
+ # -------------------------------------------------------------------------
+
+ def run_form(self, filename, parameters=None):
+ """
+ Loads and activates a new form from a file.
+
+ @param fileName: the name of the .gfd file to be displayed
+ @param parameters: dictionary of parameters to be passed to the newly
+ run form
+ """
+
+ self._instance.run_from_file(filename, parameters)
+
+
+ # -------------------------------------------------------------------------
+ # Run a report
+ # -------------------------------------------------------------------------
+
+ def run_report(self, reportFile, parameters={}, **parms):
+ """
+ Launches a new instance of GNUe-Reports, running a new report.
+ @param reportFile: the name of the .grd file to be processed
+ @param parameters: dictionary of parameters to be passed
+ to the newly run report
+ @param **params:
+ These roughly correspond to the ./gnue-reports options
+ destination
+ destinationType
+ destinationOptions (dict)
+ filter
+ filterOptions (dict)
+ sortoption
+ includeStructuralComments
+ omitGNUeXML
+ @return: None
+ """
+
+ from gnue.reports.base.GREngine import GREngine
+ from gnue.reports.base import GRFilters, GRExceptions
+ rep_engine = GREngine(self._instance.connections)
+ rep_engine.processReport(reportFile, parameters=parameters, **parms)
+
+
+ # -------------------------------------------------------------------------
+ # Get the currently logged in username
+ # -------------------------------------------------------------------------
+
+ def get_username(self, connection=None):
+ """
+ Return the authenticated user.
+ """
+ return self._instance.connections.getAuthenticatedUser(connection)
+
+
+ # -------------------------------------------------------------------------
# Toggles insert mode
# -------------------------------------------------------------------------
@@ -1730,20 +1643,6 @@
# -------------------------------------------------------------------------
- # Show about box
- # -------------------------------------------------------------------------
-
- def show_about(self):
-
- if self.uiWidget is not None:
- self.uiWidget._ui_show_about_(
- self.title or "Unknown",
- self.get_option('version') or "Unknown",
- self.get_option('author') or "Unknown",
- self.get_option('description') or "Unknown")
-
-
- # -------------------------------------------------------------------------
# Print form
# -------------------------------------------------------------------------
@@ -1756,7 +1655,7 @@
"""
if self._triggerDictionary.has_key('process-printout'):
- self.fireTrigger('process-printout')
+ self.fire_trigger('process-printout')
else:
if self.uiWidget is not None:
self.uiWidget._ui_printout_(self.title,
@@ -1766,6 +1665,36 @@
# -------------------------------------------------------------------------
+ # Close this window
+ # -------------------------------------------------------------------------
+
+ def close(self):
+
+ # FIXME: Changes in the current entry are not yet saved in the field if
+ # this was caused by a click on the close button of the window,
+ # because...
+ self.processTrigger('Pre-Exit', ignoreAbort = False)
+
+ # ... we would want to be able to exit here without saving even if the
+ # current entry contains an invalid value.
+ if not self._must_save():
+ return
+
+ self.processTrigger('On-Exit')
+
+ if self.uiWidget is not None:
+ self.uiWidget._ui_close_()
+
+ self.__visible = False
+
+ self._instance.maybe_exit()
+
+
+ # =========================================================================
+ # Various helper functions
+ # =========================================================================
+
+ # -------------------------------------------------------------------------
# Get all connections used by the form
# -------------------------------------------------------------------------
@@ -1790,19 +1719,6 @@
# -------------------------------------------------------------------------
- # Launch a trigger
- # -------------------------------------------------------------------------
-
- def fireTrigger(self, triggerName):
- """
- Launches a trigger.
- @param triggerName: name of the trigger to be launched.
- @return: None
- """
- self._triggerDictionary[triggerName](self=self)
-
-
- # -------------------------------------------------------------------------
# Signal the UI Drivers of navigation button relevance
# -------------------------------------------------------------------------
@@ -1924,32 +1840,6 @@
# -------------------------------------------------------------------------
- # Close this window
- # -------------------------------------------------------------------------
-
- def close(self):
-
- # FIXME: Changes in the current entry are not yet saved in the field if
- # this was caused by a click on the close button of the window,
- # because...
- self.processTrigger('Pre-Exit', ignoreAbort = False)
-
- # ... we would want to be able to exit here without saving even if the
- # current entry contains an invalid value.
- if not self._must_save():
- return
-
- self.processTrigger('On-Exit')
-
- if self.uiWidget is not None:
- self.uiWidget._ui_close_()
-
- self.__visible = False
-
- self._instance.maybe_exit()
-
-
- # -------------------------------------------------------------------------
# Ask the user whether to save or to discard changes if there are any
# -------------------------------------------------------------------------
@@ -1969,3 +1859,118 @@
self.commit()
return True
+
+
+ # =========================================================================
+ # Deprecated trigger functions
+ # =========================================================================
+
+ def __trigger_get_feature(self, feature):
+ """
+ Gets feature values.
+ Features are things like toolbars, menubars and statusbar.
+ @param feature: 'GUI:MENUBAR:SUPPRESS' or 'GUI:TOOLBAR:SUPPRESS' or
+ 'GUI:STATUSBAR:SUPPRESS'
+ @return: Boolean
+ """
+ try:
+ return self._features[feature]
+ except KeyError:
+ raise KeyError, "Trigger attempted to get unknown feature %s" % feature
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_set_feature(self, feature, value):
+ """
+ Sets feature values.
+ Features are things like toolbars, menubars and statusbar.
+ @param feature: 'GUI:MENUBAR:SUPPRESS' or 'GUI:TOOLBAR:SUPPRESS' or
+ 'GUI:STATUSBAR:SUPPRESS'
+ @param value: True or False
+ @return: None
+ """
+ if not self._features.has_key(feature):
+ raise KeyError, "Trigger attempted to set unknown feature %s" % feature
+ else:
+ self._features[feature] = value
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_get_parameter(self, parameter):
+
+ assert gDebug(1, "DEPRECATED: getParameter trigger function")
+ if parameter in self.__parameter_dict:
+ return self.__parameter_dict[parameter].value
+ else:
+ raise UndefinedParameterError(parameter)
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_set_parameter(self, parameter, value):
+
+ assert gDebug(1, "DEPRECATED: setParameter trigger function")
+ if parameter in self.__parameter_dict:
+ self.__parameter_dict[parameter].value = value
+ else:
+ raise UndefinedParameterError(parameter)
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_get_current_block_name(self):
+ if self._currentBlock is not None:
+ return self._currentBlock.name
+ else:
+ return None
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_set_focus(self, object):
+ """
+ Switch input focus to a specific widget.
+
+ @param object: the widget that should get the focus
+ """
+ # add global focus locking
+ if self._in_trigger_lock:
+ gDebug(1, "Already called by a trigger")
+ return
+
+ self._in_trigger_lock = True
+
+ try:
+ self.__find_and_change_focus([object._object], False)
+ finally:
+ self._in_trigger_lock = False
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_show_message(self, msgtxt, caption='GNUe Message',
+ title='Information', kind = 'Info', cancel = False):
+ """
+ Displays a standard message box.
+ @param msgtxt: text to be displayed
+ @param caption: caption to be displayed, default='GNUe Message'
+ @param title: title of messagebox, default='Information'
+ @param kind: 'Question', 'Info', 'Warning', or 'Error', default='Info'
+ @param cancel: Flag whether to include a Cancel button, default='False'
+ @return: True for <Yes> or <Ok> button, False for <No> button, None for
+ <Cancel> button.
+ """
+ return self.show_message(msgtxt, kind, title, cancel)
+
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_message_box(self, message, kind=None, title=None,
+ cancel=False):
+ """
+ This function brings up a message box of a given kind.
+ @param message: text to be displayed
+ @param kind: 'Question', 'Info', 'Warning', or 'Error'
+ @param cancel: Boolean flag indicating wether a cancel button will be
+ included or not.
+ @return: True for <Yes> or <Ok> button, False for <No> button, None for
+ <Cancel> button.
+ """
+ return self.show_message(message, kind, title, cancel)
+
Modified: trunk/gnue-forms/src/GFInstance.py
===================================================================
--- trunk/gnue-forms/src/GFInstance.py 2007-05-08 17:00:06 UTC (rev 9554)
+++ trunk/gnue-forms/src/GFInstance.py 2007-05-08 19:19:05 UTC (rev 9555)
@@ -678,7 +678,7 @@
def __execute_user_command(self, event):
try:
- event._form.fireTrigger("KEY-%s" % event.triggerName.upper())
+ event._form.fire_trigger("KEY-%s" % event.triggerName.upper())
except KeyError:
pass
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.