• Keine Ergebnisse gefunden

4.3 Dataflow Programming

4.3.3 Node Actions

In standard WIMP user interfaces, actions are provided graphically by menus and contex-tual menus. Such an action is invoked on an object that needs to be selected beforehand.

For instance, a user first has to select a file before he chooses the delete action. Objects

(a) (b)

(c) (d)

Figure 4.8: The “pipe-and-filter” metaphor on which Squidy is based on: (a) An empty pipeline, (b) two nodes that have been dragged from the node base on the pipeline: Laser pointer and Kalman filter, (c) the two nodes are linked to each other by a pipe, (d) an entire pipeline with source, sink, and filter nodes.

and actions are spatially separated most of the time and coherence between action and reaction can be a demanding task for users. According to the benefits of direct manipula-tion interfaces, this can be compared as “The Gulf of Execumanipula-tion” examined by Hutchins et al. [30].

The relationship between the user’s intention and the organization of the in-structions given to the machine is distant, complicated, and hard to follow.[30, p. 323]

The term direct manipulation was originally coined by Shneiderman [72] denoting a con-tinuous representation of objects (e.g. while dragging), rapid and reversible actions as well as incremental feedback. Today’s GUIs including WIMP user interfaces make use of direct manipulation, e.g. resizing a window constantly updates the window shape and thus provides incremental feedback. Nevertheless, the concept of Squidy is going beyond the concept mentioned above and provides object actions directly at the location of an object (see Section 3.1.9 – Direct manipulation). By means of that, distinct actions stick to the object and can differ according to the type of an object.

The actions that can be triggered on a node will be described in the following enumeration and is further illustrated in Figure 4.10.

Figure 4.9: The visual representation of pipeline implemented in the Squidy interaction library with a checkered background.

1. Start: Starts the implemented algorithm of a node, allocates required processing resources and activates the node as ready for processing.

2. Stop: Stops the algorithm, tears down any allocated resources and sets the node status as not processing.

3. Delete: Deletes a node from the pipeline and frees all previously allocated resources.

4. Duplicate: Duplicates a node by copying all of its properties, which then is an equal clone besides it is a distinct object instance.

5. Publish: Publishes the node and all of its properties to a common repository of nodes. All users of Squidy have access to this repository and thus can use such published nodes.

6. Update: If a node is originating from the repository this action updates this node to a recent version.

(a) (b)

Figure 4.10: A node, e.g. a node to control Powerpoint presentations reveals its actions on mouse over: (a) The Powerpointer node with the mouse cursor besides the node, (b) the Powerpointer node with the mouse cursor over the node and the four essen-tial actions start processing, stop processing, duplicate node, delete node (counter-clockwise starting from the top left).

In order to not overwhelm the user with unnecessary options, these actions are only pro-vided on mouse over at the zoomed out state of a node. In addition to not overloading the user interface, only four actions are provided at a glance (see Figure 4.10 (b)). For instance, a node to control Powerpoint presentations reveals its essential actions on mouse over. These actions correspond to actions 1-4 in counter-clockwise order starting from top left. How the actions 5 and 6 can be executed will be described in the next paragraphs.

The zoomed in state of a node reveals a navigation bar, which is providing additional information related to the node. This navigation bar is located at the top of a node and provides actions, node naming, and a navigation breadcrumb at a glance (compare Fig-ure 4.9 and FigFig-ure 4.11). Furthermore, the actions enumerated previously are altogether visible in the order 1-6 starting from the left.

Figure 4.11: The navigation bar is displayed at the head of each node. It provides actions to control the node and inside nodes (only pipelines), the node naming, and a navigation breadcrumb.

Performing the same action on multiple nodes within a single pipeline, this action has to be performed on each node separately. For example, if a user wants to start all nodes in the pipeline of Figure 4.8 (d) he has to click the start button on each node repeatedly in order to start the complete pipeline. Since a pipeline is a composition of several nodes and pipes, an action to start all processing units at once will reduce needed interaction steps. Therefore, each action provided in the navigation bar is executed on all nodes of a pipeline whereas in the example above a single click is sufficient to start all nodes at once.

In order to generate a more customized and readable pipeline, the names of nodes and pipelines can be changed. Therefore, a user double-clicks on the name of a node or pipeline when it is zoomed in. In consequence of direct manipulation [30] the label is replaced by a text field component. The user then enters a new name and confirms the change by hitting the enter key whereas the text field is replaced by a label again and the name change takes place immediately. If the node name has too many characters displayable at a current graphics space it is going to be cropped. In contrast to standard WIMP user interfaces, where labels are cropped at the end, here the name is cropped in the middle if necessary. For instance a labeled “Gesture Recognizer 2D” will be cropped to “Gestu...zer 2D” as in most cases users label nodes of the same type differently either at the beginning (e.g. “1. Kalman”) or at the end (e.g. “Kalman LP”) and thus essential information is preserved.

In the early releases of the interaction library the start was replaced by the stop button when an interaction technique was started. In turn, the stop button was replaced by the start button when an interaction technique was stopped. A participant of the focus group argued that it is not easy to recognize the change and repeated clicks on the button are the consequence, which leads to an undetermined application behavior. Therefore, both buttons have been separated as it was introduced before.

Up to now, a user can drag and drop nodes on a pipeline and further start either disjointed nodes or the complete pipeline . Nevertheless, an interaction dataflow is not yet performed as these nodes need to be linked to each other to allow an exchange of data objects.