Ggi, GIPSY's graphical user interface


Originally, all tasks within GIPSY were programmed in a procedural fashion. Once started, a procedural task is always in control of its dialogue with the user. The task determines the order in which its different parts are executed and consequently of the required order of its inputs. Event-driven tasks are fundamentally different from procedural tasks and are programmed so that they can ideally handle any input at any moment. In this way the user, not the task, is in control. Event-driven operation is a prerequisite for an interactive graphical user interface.

In GIPSY, event-driven operation has been implemented on the basis of the existing user interface Hermes. Central in this scheme is the traditional keyword-value concept. (See the chapter ``Tasks'') When suitably programmed, a task can react immediately to the change of any keyword's value.

GIPSY's graphical user interface (Ggi) has been implemented as a collection of `elements' such as a button, a menu, a text input field, a plot canvas, etc., and code which connects this element to the event mechanism described above. Most of these elements are associated with a user input keyword. The element always reflects the keyword's value, regardless of how it was set. When it is manipulated by the user, e.g. by typing text into an input field, pressing a button, etc., the keyword will be updated. This update then causes an event which can be received and handled by the application code. Implemented in this way, there is a strict separation between form and meaning.

Because the user input keyword plays a central role, all keyword-related features are also available in the graphical user interface. For example input parsing and checking, but also (pre-)specifying parameters on the Hermes command line, re-running tasks with the previous set of inputs, default files, etc. It is even possible that one task controls an other task by modifying its keywords.


The most important elements are described in the document ggi.doc. This document is also available from the help menu of most tasks. It describes for instance the editing possibilities in text entry elements, how an analog valuator can be accurately adjusted, cursor use in plots, etc. Also the (limited) possibility of configuring Ggi is described.


Currently GIPSY consists of both procedural and event-driven tasks. New tasks being written usually have a graphical user interface. Also suitable old tasks are converted or interfaced with the newer tasks.

Automatic Execution

A common disadvantage of programs with graphical user interfaces is that they are often less suitable for routine work. In GIPSY this problem is solved by the task PLAYER, which is capable of controlling an other task via keywords from a script file. The user can prepare such a file with a text editor, but it is also possible to generate it automatically. This can be done using a feature of Ggi which allows GUI-related keyword changes to be recorded. See the "Keywords" section of ggi.doc.

GIPSY April 26th, 2001, J. P. Terlouw