NeatTools Frames

NeatTools provides a visual programming language through the selection and association of modules within a work space. The programming environment consists of four frames for user interaction:

  1. Category Frame: selects the set of modules displayed in the Module Frame. The module categories are Input Device, Output Device, and Filter.
  2. Module Frame: selects the type of module to place in the workspace.
  3. Run Time Frame: starts, stops, loads, saves NeatTools programs.
  4. Workspace Frame: a free form area for arranging and connecting the modules of a NeatTools program.
  5. Program construction consists of a creating modules, arranging them in the workspace, and directing the data flow.

    Creating a Module Instance

    Modules are created by using the Category and Module Frames to select a module type. An instance of the selected type is then placed in the workspace by a mouse click at the desired workspace location.

    Moving a Module

    A module is moved by selecting the module, then clicking the mouse at the desired new location.

    Directing Data Flow

    Data flow is directed when the output of one module is connected to the input of another. This involves two selections: first the data source is selected, then a compatible destination is selected.

    Visual cues are provided to simplify this process for the user. Only selectable fields are shown at any given time. Initially each module has two selectable fields: the module body, and the output streams of the module. The module body is selected if the module is being moved. The output streams are selected if they are to be associated with input streams.

    When the user selects the output streams, the selected module and output streams are highlighted. All compatible module input streams are highlighted. The actual form of the display is controlled by a visualization mapping table shown below. This table is hard coded in the initial implementation.

    In addition to these visual changes, the status line changes to have a more detailed description of the specific output stream selected. If the module has more than one output stream, repeated selections cycle to the next output stream.

    Visual Properties of Workspace Objects

    The following table describes the how data flow properties are visually represented by NeatTools. In the initial implementation no tool is provided for editting this table in the run time environment. Note that input streams are not shown unless they are compatible with the currently selected output stream.

    Color Shape Location Behavior
    In Boolean Stream black circle left Click associates with selected output
    Out Boolean Stream black circle right Click selects
    In Byte Stream magenta triangle left Click associates with selected output
    Out Byte Stream magenta triangle right Click selects
    In Int Stream aqaumarine square left Click associates with selected output
    Out Int Stream aquamarine square right Click selects