Grouping Support

Concepts

What the Grouping concept basically provides, is the possibility to put a graph structure inside a node which itself is contained in another graph. A node that contains another graph structure is called a group node. By such a nesting of nodes or entire graphs inside of other nodes, a tree-like hierarchy of nodes is induced. The top-level graph of this hierarchy is called the root graph. A graph that contains a nested graph is called the parent graph of that nested graph.

Group nodes can be in either of two states. When closed, their contained graph structure is not accessible and thus cannot be edited. When open, the nodes and edges contained in a group node are shown inside its bounds and are part of the same graph structure as the group node. This allows them being edited. The latter scheme also allows visualizing edges in their entirety, even if their end points reside on different levels in the node hierarchy.

A graph with open and closed group nodes, which themselves contain graph structures.

The closed group nodes display an image of their contained graph structures (optional setting).

In a hierarchy of nodes, parts of a graph can be moved to another hierarchy level, i.e., graph structures can be moved into and out of group nodes. The edges connecting the part that has been moved with the rest of the graph won’t get lost, even if group nodes get closed.
Original edges will be represented by edges that connect to the node in which the subgraph is nested in. When opening group nodes or unpacking the contents of a group node again, the original edges will be restored. Hence the structure of a graph won’t be destroyed by a sequence of nesting operations.

Node Hierarchy Features

yEd displays three different views of a node hierarchy at the same time:

  • An overview that displays the graph which is shown in the main view in its entirety. See also: The ‘Overview’ Tool Window
  • The Structure View that shows the complete node hierarchy. It supports modifications of the graph’s node hierarchy using simple mouse gestures, for example. See also: The ‘Structure View’ Tool Window
  • The main view displays the graph from a specific hierarchy level downward. Optionally, the graphs that are nested within closed group nodes are displayed as well, whereas the contents of open groups are recursively visualized at all times.

The Menu Bar

The ‘Grouping’ menu contains the following items:

Menu Item Description
Previous View Returns to the view of the hierarchy level where the previous View Group Content action has been invoked.
View Group Content View the contents of the selected group node.
This operation can be reverted by invoking Previous View.
Group Selected nodes will be grouped. This is done by creating a new group node and making the selected nodes children of the newly created group node. If no nodes are selected, a new empty open group node will be created.
Ungroup Selected nodes will be ungrouped, i.e. they will become child nodes of the parent of their current parent node. Empty group nodes will not be removed, but stay in the graph structure.
Open Group Opens the currently selected group nodes so that their contents are accessible for editing.
This operation can be reverted by invoking Close Group.
Close Group Closes the currently selected group nodes. Their contents will be moved to the closed group nodes, i.e., they are no longer accessible.
This operation can be reverted by invoking Open Group.
Ungroup All Recursively ungroups all contained graph structures of selected groups. Empty group nodes will be removed.

The Popup Menu

By right clicking on the main view a popup menu will become visible. As a convenience the menu contains the more frequently used entries of the Grouping menu.

Using the Node Hierarchy Features

There are some additional node hierarchy-related operations available on the main view that are triggered by mouse gestures.

  • Dropping a selection of nodes onto an open group node will make the selected nodes part of the grouping when the SHIFT modifier is pressed. The location of the mouse cursor must be on an open group node when the mouse button gets released.
  • Starting a drag from within an open group node while holding the SHIFT modifier will ungroup the dragged nodes from their current group.
  • Double-clicking on a group node triggers the View Group Content action.
  • When creating edges from or to open group nodes, the edge creation will only be triggered if the border of the group node is used for the beginning or the ending of the edge creation. This makes it possible to drag selection boxes and create bends for edges inside of group nodes, but not in the region of the border of the group node.
  • Unlike with ordinary nodes, group nodes will only be selected if the selection box fully contains the group node. This makes it possible to select nodes within an open group node without selecting the group node itself.