Section 5

User Interface

GUIs, Group Dynamics, the Connection Widget



5.1 User Interface Methods

The IISS supports four types of interface interaction mechanisms between the user and the program including:

  1. graphical user interface panels or forms,
  2. pop-up menus
  3. keyboard commands (accelerator keys)
  4. direct mouse interaction

The primary graphical form which is usually always open is called the Options Panel; it contains a pictorial map of the cell array, three sets of push buttons, and a status area with editable title. If the Options Panel is not visible, then it can be made visible using the pop-up Main Menu. Select the menu item, Main Menu->panels->Options Panel. The push buttons in the Options Panel invoke secondary forms, except for example the Group and Full Screen buttons (see below). The Options Panel is shown below.

The pop-up menus can be invoked from any cell by holding down the Right Mouse Button within a cell window. Some functions in the menu apply to the whole sheet, some apply to the cell of invocation, and some apply to the currently visible frame in that cell. The Main Menu with access to all sub-panels via the pop-up menu is shown below.

Keyboard commands fall into similar categories: sheet, cell and frame. The key bindings showing the mapping between the key strokes and command execution can be seen using the Help button from the Options Panel and is summarized in Appendix D.

Direct mouse interaction (dragging) can effect roaming and data probing.

5.2 Grouping

To propagate commands to all the frames in a cell, and across multiple cells, use the IISS grouping capabilities. By default, all frames in a cell frame-stack are grouped. So for example, changing the zoom factor for one frame changes it for all in the stack. To disable this behavior, select the pop-up menu item Main->group->frame_stack . A checked box in the menu means that the option is currently active.

To build a cell group, select Group from the Options Panel, then click the left mouse button in each cell to be grouped. (Click again to undo the cell selection.) When all the intended cells are highlighted in green, click the middle mouse button (which also serves to select to occupied cell). Alternately, click on the "Group" button to finish grouping. A cell-level command issued in a grouped cell will be sent to all other members of the cell group as well. A frame-level command issued in a grouped cell will be sent to all cells in the group, and in each cell which has frame-stack propagation turned on, this will take effect; in a frame with frame-stack propagation disabled, only the visible frame will be affected.

Note that some commands are relative and some are absolute in effect; for example the Home key will absolutely set a cell to show frame number 1, but the right arrow key, _ , will advance the cell by one frame, so two grouped cells will change from current frames a and b to a+1 and b+1. To synchronize all frames or cells in a group to the values held by one frame or group, use the pop-up menu, Main->synch . To temporarily remove a cell from its group, move the mouse into the cell, and depress the Control key. While the key is held down, events will not be sent between the isolated cell and its peers. When the Control key is released, event sharing will resume.

5.3 The Connection Widget

Several forms provide the user a graphical interface for changing properties of a frame or cell. To conserve screen space, forms are not replicated i.e. there is only one instance of a given form on the screen at one time. To compensate for this restriction, the grouping mechanism allows GUI control to govern a set of frames or cells. Also the means of "connecting" or "linking" a GUI panel to a particular frame or cell is designed for simplicity and effectiveness.

Connecting a panel to a frame involves simply putting the Frame ID (row/column/depth) into the Connection Widget, usually found in the upper left corner of the panel. (Connecting to a cell is analogous.) The user can type the ID components in, or use one of the other methods: accelerator keys, F-keys, or auxiliary GUI controls. Accelerator keys which bring up panels also serve to set the connection widgets in those panels, according to the cursor location at time of keystroke. If the panel is already visible, the widget is filled with the appropriate ID. Thus the f key will set the Connection Widget in the Formula panel, and the 'd' key will set the widget in the Display panel. The letter l key works for the Loop panel. The F-keys (function keys) are the keys in the top row of the keyboard. Keys F1 through F4 function as accelerator keys, with the added capabilities of setting multiple forms at once, and turning off the functionality when desired. By default, a connection widget "listens" for the F1 key. This is indicated by an "F1" appearing in the lower right corner of the widget. If the F1 key is struck while the cursor is in a cell, the corresponding cell or frame ID will appear in the widget. To make the widget listen for another key, strike the new F-key while the mouse is in the form; the text indicator in the widget will change to reflect the new key. To disable the listening, press the current F-key while the mouse is in the form. Note that an F-key will not set a widget if its panel is closed.

A few other graphical methods exist for setting a connection widget; each widget supports 4 different display modes, accessible through the pull-down menu at the bottom left of the widget. The default mode is called 'row/col' and places beneath each text input a menu to affect it; menu items allow changing an index by +/- 1, indexing the first or last existing entry, and sometimes indexing 1 beyond the last existing entry. The second mode is 'icons', which offers the same menus as 'row/col', with pictorial guides to the spanned dimensions. The third mode is 'arrows', which provides arrow buttons for incrementing and decrementing indices. The fourth mode is 'fcn keys' which provides a graphical method of setting the active F-key, and turning "listening" on and off.

When a form is connected (or linked) to a frame or cell, the user may wish to control the transfer of information to and from the form explicitly. When options exist, the 'auto-link' pull-down menu in the bottom right-hand corner of the widget will display them. Take the Loop form as an example. Its default mode is automatic link transfer both to and from the form, symbolized by the green arrows pointing right and left respectively. This means that after a row or column index is changed, the newly referenced cell has its information immediately displayed in the form; also, any changes to the form's settings are immediately sent to the connected cell. The corresponding pull-down menu entry is "(_)([])". The mode in which neither transaction is automatic is defined by "( )( )" in the menu. In this mode there are left and right arrow buttons; when the right arrow is chosen, information from the cell is imported into the form and displayed; when the left arrow is chosen, information is sent from the form to the cell. The other two modes of link transfer are "(_)( )" which defines auto-get to form and "( )([])" which defines auto-set from form.