Using the Graphical Programming Environment
The graphical programming environment, or GPE, consists of three components, one above the other: The menu bar, the canvas area, and the control panels. Each component will be discussed in a section below.
Function canvas
The canvas area is where all the functions that have been created are displayed. There are three types of objects shown on the canvas: functions, ports, links, and groups.
Functions
A function is displayed as a box containing its name.
Ports
A port is either an input or an output of a function. Inputs have arrows pointing into the function, while outputs point outward. In the default layout, data inputs are shown on the left side of a function, parameter inputs on the top, and outputs on the right.
Links
Links are connections between inputs and outputs. Each link connects exactly one output with exactly one input. Links are displayed as lines connecting the two ports they are connected to.
Groups
Groups are tools for organizing related functions. Groups can contain both functions and other nested groups. Groups are displayed as a red box around everything they contain, with a label shown at the top.
Interacting
The following actions work on most objects on the canvas.
- Single click
- Select an object
- Control+click
- Select multiple objects
- Hover mouse
- Show tooltip describing the object under the cursor
- Delete or Backspace
- Delete the selected object(s)
Whenever and object is selected, all other objects that can be connected to it are highlighted in green. To create a link, click and drag from one object to another. A line will follow the mouse and snap onto nearby compatible ports.
Groups have collapse handles in their upper-left corners. Clicking on it will toggle the collapsed state. When a group is collapsed, all of its contents are hidden and the group shrinks to the size of a function.
Menus
Functions
The Functions menu provides access to all functions available to the system. Each category is shown as a submenu containing functions. Clicking on a function will cause an instance of it to be created. The last entry is labelled "User," which contains composite functions created by the user (see below).
Script
The Script menu provides entries for loading and saving the contents of the canvas as a Sprache script file. The "Save as user function" item allows the contents of the canvas to be saved into the Functions|User menu for later re-use.
Options
The GPE has many plugins which provide options for controlling the appearance of the objects in the canvas.
- Function style - Controls the appearance of functions
- Highlight connectable
- Outlines in green all functions and ports which can be connected to any of the currently selected objects.
- Highlight selected
- Outlines in blue the selected objects.
- Highlight updating
- Changes function backgrounds to red when they need updating, or yellow while they are in the process of being updated.
- Input/Output style - Controls the appearance of ports
- Arrows (Horizontal)
- Draws ports as arrows for a layout in which data flows horizontally.
- Arrows (Vertical)
- Draws ports as arrows for a layout in which data flows vertically.
- Link style - Controls the appearance of links
- Colored Parameters
- Causes links carrying data or parameters to be colored blue or green, respectively.
- Visibility - Controls which functions are visible at any given time
- Show Neighbors
- Displays only functions that are directly connected to the selected function(s).
- Layout - Controls the location of functions
- Manual
- Allows the user to move components around manually.
- Sugiyama (Horizontal)
- Uses a version of the Sugiyama graph layout algorithm to place functions so that data flows from left to right.
- Sugiyama (Vertical)
- Same as above, only top-to-bottom.
- Routing - Controls the path links take between ports
- Straight
- No routing; links take a straight line path from one ort to the other.
- Directional endpoints
- Creates a spline with endpoints lining up with the directions of its ports.
- Animation - Controls how the functions transition between locations
- None
- Immediate transitions.
- Linear
- Objects slide smoothly from one location to another
Actions
Plugins provide a number of actions that can be performed on the selected objects.
- Create Function
- Encapsulates the selected functions inside another function, creating inputs and outputs on the outside according to those on the inner functions. Double-clicking on the UserFunction? will open another editor for its contents.
- Group
- Creates a group around the selected functions.
- Ungroup
- Removes the selected group(s), leaving the contaoined functions intact.
Debug
Provides commands useful for developers, discussed elsewhere.
Update
Sends an
updateview command to the system, causing all the output functions to update.
Information/control panels
On the bottom of the window are a group of tabs pertaining to the currently-selected function(s).
Command tab
The Command tab allows one to send commands to the currently selected function. Each row is a command template. The template shows data-entry controls in each location in the command where input is required. To send the command with the values that have been entered, press the Go button.
Object tab
The Object tab shows information about the currently selected function. The following fields are shown
- Name
- The fully-qualified name of this function, showing the path through the containing groups.
- Type
- The name of the Java class of which this function is an instance.
- Parameters
- The names, data types, default values, and connections to each parameter input on this function.
- Inputs
- The names, data types, and connections (including data type) to each data input on this function.
- Outputs
- The names, data types, and connections (including data type) to each output on this function.
- Commands
- The Sprache command definitions for each command supported by this function.
Plugin tab
The plugin tab displays similar information to the Object tab, except that it displays only what was declared by the plugin's class before creation. The information usually only differs between the two tabs if the function dynamically adds inputs or outputs.
--
TimPeterson - 08 Aug 2006