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.