Search this API

Package y.layout.hierarchic

Provides hierarchic layout style algorithms.

See:
          Description

Interface Summary
ConstraintLayerer.ConstraintFactory Interface specification for classes that can create suitable constraints for a ConstraintLayerer instance.
Drawer This interface implements the drawing phase of the hierarchic layout algorithm (i.e., the assignment of nodes' coordinates).
Layerer The hierarchic layout algorithms use this interface during the phase that assigns nodes to layers.
LayerSequencer This interface calculates the order of the nodes within each layer into which the graph has been partitioned.
MementoSupport This interface is a cookie for the hierarchic layout algorithm memento support.
 

Class Summary
AbstractDrawer This is an abstract base class that implements the drawing phase of the hierarchic layout algorithm.
AlignmentDrawer This class rearranges the nodes within the layers calculated by the HierarchicLayouter such that they are aligned according to the user's specifications.
AlignmentDrawer.BottomAlignmentDataProvider A DataProvider that will make all nodes bottom-aligned (in top-to-bottom layouts) when registered.
AlignmentDrawer.LeftAlignmentDataProvider A DataProvider that will make all nodes left-aligned (in left-to-right layouts) when registered.
AlignmentDrawer.RightAlignmentDataProvider A DataProvider that will make all nodes right-aligned (in left-to-right layouts) when registered.
AlignmentDrawer.TopAlignmentDataProvider A DataProvider that will make all nodes top-aligned (in top-to-bottom layouts) when registered.
AsIsLayerer AsIsLayerer assigns nodes to layers by analyzing already existing node coordinates.
BFSLayerer BFSLayerer uses a breadth first search for assigning layers to the nodes.
ClassicLayerSequencer This class implements the sequencing phase of the HierarchicLayouter (i.e., the order of the nodes within each layer is determined).
ConstraintLayerer ConstraintLayerer considers relative and absolute layering constraints when assigning the nodes to layers.
EdgeReverser This is a helper class that reverses edges that are oriented in the wrong direction.
GivenLayersLayerer This layering algorithm implementation assigns nodes to layers given a mapping of nodes to layer IDs.
HierarchicGroupLayouter This layout algorithm arranges grouped graphs in a hierarchic fashion.
HierarchicLayouter This layout algorithm arranges graphs in a hierarchic/layered fashion.
IncrementalHierarchicLayouter This layout algorithm arranges graphs in a hierarchic fashion.
LinearSegmentsDrawer This class implements the drawing phase of the HierarchicLayouter (i.e., the assignment of nodes' coordinates).
MedianDrawerWrapper This class can be used for improving the results of different drawers.
MedianLinearSegmentDrawer This class implements the third phase of the hierarchic layout algorithm (i.e., the assignment of nodes' coordinates).
NodeLabelSpaceDrawer This class can be used for wrapping Drawer implementations.
PendularDrawer This class implements the drawing phase of the hierarchic layout algorithm (that is the assignment of nodes' coordinates) as described in "Visualisierungstechniken für den Compilerbau" (Georg Sander) mixed with techniques described in "A technique for drawing directed graphs" (Gansner et al).
PolylineDrawer This class is an implementation of the drawing phase of the HierarchicLayouter (i.e., the assignment of nodes' coordinates) which represents edges by polyline segments.
PortAssignment This class assigns port coordinates to the edges of a graph.
SimplexDrawer This class implements a Drawer based on rank assignment.
TopologicalLayerer This class implements the layering phase of the IncrementalHierarchicLayouter (i.e., assignment of the nodes to layers).
TreeDrawer This class implements the drawing phase of the HierarchicLayouter (i.e., the assignment of nodes' coordinates) for trees.
TreeDrawer.HierarchicTreePlacer This class places nodes on their given layers (does not change the y-coordinates) if the layout style of the hierarchic layout algorithm is set to HierarchicLayouter.TREE.
WeightedLayerer This class implements the layering phase of the IncrementalHierarchicLayouter (i.e., the assignment of the nodes to layers).
 

Package y.layout.hierarchic Description

Provides hierarchic layout style algorithms.

In the hierarchic layout style, nodes are distributed into layers such that most of the edges point to the main layout direction, i.e., the layer of the edge's source is smaller than that of the target. The order of the nodes within the layers ensures that the number of edge crossings is as small as possible. Also, different edge routing styles, i.e., polyline, octilinear, orthogonal are supported.

IncrementalHierarchicLayouter, the main implementation for the hierarchical layout style, supports both complete re-layout of a given diagram as well as incremental layout where only a subset of a diagram is rearranged.

Also, IncrementalHierarchicLayouter supports layout of flat as well as grouped graphs, i.e., graphs where nodes are contained within other nodes, so-called group nodes.

Note that HierarchicLayouter and HierarchicGroupLayouter are legacy layout algorithms for the hierarchical layout style. They are superseded by IncrementalHierarchicLayouter, which covers the same layout style as well as additional features like sophisticated swimlane layout support or incremental layout support.

The main steps of the IncrementalHierarchicLayouter are performed by implementations located in a sub-package.

Example graphs


Hierarchic layout with orthogonal routing

Hierarchic group layout with left-to-right orientation and octilinear routing

Hierarchic layout with swimlanes and octilinear routing

Related Documentation

See the yFiles Developer's Guide section on Hierarchical Layout Style for descriptions of the yFiles hierarchical layout style algorithms.

 

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