Swimlane Diagrams

The yEd graph editor provides support for creating and editing swimlane diagrams. The swimlane layout algorithm allows you to automatically arrange the elements in a swimlane diagram.

Creating and Editing Swimlane Diagrams

Swimlane diagrams are modeled using so-called swimlane nodes and table nodes, which are both special group nodes. These group nodes provide a row and column representation for swimlanes to which other nodes (group nodes also) can be added. Furthermore, they also provide support for interactively working with the rows and columns.

Creating a new swimlane node or table node
Swimlane nodes and table nodes can be created by dragging sample representations of these special group nodes from the like-named section in the Palette tool window into the active editor window (using a mouse drag gesture).
Adding a node to a swimlane node or table node/Removing a node from a swimlane node or table node
This is the same gesture as with group nodes.
Note that group nodes and other swimlane nodes or table nodes can be added, too.
Selecting swimlane nodes or table nodes
A swimlane node or table node can be selected by clicking the table header or clicking on an empty area within a row or column. When opening up a selection box, swimlane nodes or table nodes have to be entirely inside the selection box to get selected.
Editing the label of a swimlane node or table node
The label editor can be opened by double-clicking the label or by means of the Edit Label operation from the context-sensitive menu. Alternatively, the label editor can also be opened by pressing F2 [Mac OS: ENTER].
Selecting rows or columns in swimlane nodes or table nodes
A row or column in a swimlane node or table node can be selected by clicking the row’s or column’s header.
Note: An existing selection of rows and columns can be extended by selecting further elements of the same kind (even in other swimlane nodes or table nodes) and holding down the SHIFT key.
Adding rows or columns to a swimlane node or table node
Rows and columns can be added to a swimlane node or table node by means of the Add Row and Add Column operation, respectively, available in the default context-sensitive menu.
Removing rows or columns from a swimlane node or table node
Selected rows or columns can be removed by pressing the DELETE key, using the context-sensitive menu and choosing the Delete operation, or using the delete action from the tool bar.
Editing the label of a row or column
The label editor can be opened by double-clicking the row’s or column’s label.
Changing the size of rows or columns
The size of a row or column can be changed by moving the separator to the next adjacent row or column, respectively. If the outer “separator” of the last row or column is moved, then the size of the swimlane node or table node is also changed.
Important: When a row or a column is resized, no nodes are moved.
Changing the order of rows or columns
The order of rows or columns can be changed by moving a selected row or column using a mouse drag gesture that starts at the row’s (column’s) header and ends on another row’s (column’s) header of equal nesting level.
Important: When a row or a column is moved, any nodes that lie within its bounds are moved accordingly.
Changing the nesting level of rows or columns
The nesting level of rows or columns can be changed by moving a selected row or column using a mouse drag gesture that starts at the row’s (column’s) header and ends on another row’s (column’s) header, however at a different nesting level.
Changing properties of rows or columns
The properties of a selected row or column can be viewed and changed using the tabular view or using a property dialog (which can be opened via the context menu, for example, or using F6 [Mac OS: Command-I].

Automatic Layout

Elements in a swimlane diagram can be automatically arranged using the swimlane layout algorithm.
Note that other layout algorithms will treat swimlane nodes and table nodes like group nodes.

Important
The swimlane layout algorithm considers only swimlane nodes and table nodes that are not contained in group nodes or other swimlane nodes or table nodes. If swimlane nodes or table nodes are contained in other swimlane nodes or table nodes, then they will be treated like group nodes.