Search this API

Package y.layout.grouping

Provides classes and interfaces that are necessary for the layout calculation of graph hierarchies (i.e. hierarchically grouped graphs).

See:
          Description

Interface Summary
GroupBoundsCalculator A GroupBoundsCalculator is responsible for calculating the bounds of a group node during a layout process.
GroupingKeys This interface defines DataProvider keys for those layout algorithms that can handle hierarchically grouped graphs.
 

Class Summary
FixedGroupLayoutStage A layout stage that can handle fixed nodes in hierarchically grouped graphs.
Grouping This class provides convenient and efficient access to the hierarchic graph structure.
GroupNodeHider A layout stage that hides the group nodes of hierarchically grouped graphs.
InsetsGroupBoundsCalculator This GroupBoundsCalculator calculates the bounds of group nodes and allows to specify custom insets for each group node.
IsolatedGroupComponentLayouter A special ComponentLayouter implementation that allows to lay out isolated subgraphs within a group as separate components.
MinimumSizeGroupBoundsCalculator This GroupBoundsCalculator allows custom insets for group nodes and guarantees that their provided minimum sizes will be maintained.
ParentEdgeAugmentationStage This class can be used as a decorating stage for layout algorithms that cannot handle hierarchically grouped graphs.
RecursiveGroupLayouter This layout algorithm recursively traverses a hierarchically organized graph in a bottom-up fashion and applies a specified layout algorithm to the contents (direct children) of each group node.
 

Package y.layout.grouping Description

Provides classes and interfaces that are necessary for the layout calculation of graph hierarchies (i.e. hierarchically grouped graphs).

Interface GroupingKeys defines the look-up keys that are used to register DataProviders with hierarchically organized graphs. These DataProviders are expected to hold the grouping information, e.g., the parent-child relation of nodes, in a way that can be interpreted by layout algorithms. The layout algorithms that are able to handle hierarchically grouped graphs require that the grouping information is properly bound to the input graph.

Grouping provides convenient and efficient access to the hierarchic graph structure.

RecursiveGroupLayouter can recursively traverse a hierarchically grouped graph in order to apply the specified layout algorithms to the contents of each group node.

There exist also classes for calculating the bounds of group nodes including custom insets (see MinimumSizeGroupBoundsCalculator or InsetsGroupBoundsCalculator).

Example graphs


Example layout generated by RecursiveGroupLayouter. Each group is laid out using a different layout algorithm.

Related Documentation

See the yFiles Developer's Guide section on Automatic Layout in the Graph Hierarchies chapter for a brief discussion of layout preparation of hierarchically organized graphs.

 

© Copyright 2000-2022,
yWorks GmbH.
All rights reserved.