Creating a SimpleCmd and adding it to the QubeGUI is a relatively straight-forward process. Since the QubeGUI will scan the simplecmds directory for any Python files, it will pick up any newly developed files. These files will contain a create() command that returns a list of SimpleCmd objects.
- Open the simplecmds directory (SimpleCmds Location).
- Create a text file with a Python (.py) extension and open it in your preferred text editor.
- Add an import SimpleCmd to the top of the file. Then write a create() function that returns an array of SimpleCmd instances.
- For testing purposes, add an if __name__ == '__main__': so the submission dialog can be launched directly by running Python _script.py. Here is a simple example:
import sys # You will need to have your PYTHONPATH, PATH, or modify sys.path # in such a way that this import is possible. The path should be # $QBDIR/api/python/qb/gui from simplecmd import SimpleCmd # user defined simpleCmds *must* define a create method. def create(): # This creates a simpleCmd called "Example Echo" # hasRange=False means that this will be a cmdline job - only one # command for the job # canChunk=False means that there is no chunking option. This is # implied by hasRange=False. # help='...' provides the mouse-over tool tip and auto-generated # documentation. cmdjob = SimpleCmd('Example Echo', hasRange=False, canChunk=False, help='basic echo test') # Adding an option group creates a collapsable, named section in # the submission UI. It is purely cosmetic. cmdjob.add_optionGroup('Main options', collapsed=False) # add_option is the way to add parameters to the submission UI. # This one is of type 'string' which means a text field will be displayed # and associated with a variable called, in this case, 'message'. # The 'default' parameter pre-populates the field with the given text. If # the text is not changed, the value will be ignored. Had we used 'value' # instead of 'default', the given value will always be used, regardless of # whether or not it was changed by the user. # The 'required' parameter tells the submission UI that this field must be # populated with a non-default value in order for the submission to happen. # it will also color the field red. cmdjob.add_option( 'message' , 'string' , 'Message to echo', default="Default message goes here", required=True) # This is the command template. '%(message)s' will be replaced with # a parameter called 'message'. We defined that parameter just above. cmdjob.command = 'echo %(message)s' # The create method *must* return a list of the SimpleCmd(s) it creates. return [cmdjob] if __name__ == '__main__': import wx import submit import logging import simplecmd logging.basicConfig(level=logging.DEBUG) app = submit.TestApp(redirect=False) cmds = create() for cmd in cmds: simplecmd.createSubmitDialog(cmd) app.MainLoop()
5. Launch the QubeGUI. The new SimpleCmd should show up under the Submit menu.