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
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
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
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.
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.
April 26th, 2001, J. P. Terlouw