This software has been realized by Kadin Tzeng at the CNS Technology Lab at Boston University (http://techlab.bu.edu/). Frequently, a computer program requires input parameters to define a specific application prior to running it. For codes that require few input parameters, the usual method to define these parameters is to store them in a file or through commandline arguments. Upon reading these parameters, the computer code then proceed to perform computations or other types of operations. For codes that require more input parameters -- especially under less straightforward conditions -- a Graphical User Interface (GUI) may be preferable to query the code runner for input parameters at runtime. However, writing a GUI can often be time-consuming and the code developer may not be readily familiar with the knowledge necessary to develop a GUI.
With this in mind, the GUI4GUI package (GUI4GUI.zip) is developed to build GUIs automatically based on users providing data that describe the details of the GUI components, such as menus, and their associated actions. The programmer needs no knowledge of MATLAB GUI development fundamentals or usages of GUIDE, the MATLAB GUI development environment.
The GUI4GUI package consists of two tiers of GUIs: the main GUI and an optional secondary GUI. We will discuss the main GUI first and defer the discussion of the secondary GUI until later.
The main GUI has eight menu tasks with pre-determined names. The main GUI builder creates each of these tasks exactly the same way. The contents and functionalities of each menu task, however, are completely determined by the user through a menu definition data file. Currently, each menu task can accomodate up to 3 levels of menu items. The first level consists of up to 9 menu items. Each of these items can in turn cascades into the next, or second, level of up to 9 menu items. Further, the second level menu items can each spawns into a third level of 9 menu items. A menu item can take on one of these three actions:
* it causes a document (in html, pdf, or ppt format) to be displayed;
* it runs a program, such as an m-file, a mex-file, or other executables acceptable by MATLAB. A secondary GUI may need to be launched to query for runtime input to run the job. More on this later . . .
* it cascades into the next level. If it is already on the third level, it can only take on one of the two preceding actions.
The eight fixed menu tasks alluded to above are:
1. File - contains just an "Exit" menu item, upon selecting it causes the GUI to close, along with any children figures.
2. Model - describes the different models of the program package
3. Articles - provides previously published conference papers, refereed journal articles, or departmental reports.
4. Tutorial - a tutorial on how to use the package
5. Examples - examples are good way to learn the operational details of the package.
6. Run - for users who want to use it to run applications, this is the center of action. To run jobs, it may require run time input data. This may be facilitated by spawning a second GUI that queries the program runner for data needed to run the job.
7. Code - it consists of just one menu item. A click on this item displays a 3-frame html page that lists the name of all the m-files in the user package. Selecting a file on this list displays this particular file.
8. Help - it consists of 3 menu items: Contact, Credit, and License.