documentationfor yFiles for HTML 2.6

MultiPageLayout

This layout algorithm subdivides the input graph into several LayoutGraphs (called page graphs) such that the layout (calculated by the specified core layout algorithm) of each graph fits the specified maximum page size.

Inheritance Hierarchy
LayoutStageBase
MultiPageLayout
Implemented Interfaces

Remarks

The algorithm adds special nodes to guarantee that no information is lost when splitting edges that connect nodes placed on different pages (for more details take a look at the concept described below).

The input graph.

The input graph is subdivided into two pages with size 500x500. Circular nodes denote the so-called connectors that split edges to nodes placed on other pages. The label of a connector corresponds to that of the opposite node of the split edge.

Layout Style

This multi-page layout algorithm subdivides the input graph into several smaller ones and applies existing layout algorithms to each of them. Hence, its layout style heavily depends on the selected core layout algorithm used for each single page. Furthermore, the algorithm uses several refinement steps to produce more compact results.

Features

Similar to the layout style, the supported feature set mainly depends on the features supported by the specified core layout algorithm. Note that due to the underlying approach of the MultiPageLayout it doesn't support PartitionGrids. Furthermore, while the MultiPageLayout is able to support groups (see groupingMode), it doesn't support edges incident to group nodes.

Concept

To guarantee that no information is lost, this layout algorithm replaces edges between nodes on different pages by so-called connector nodes. Furthermore, it may replicate nodes (the clones are called proxy nodes) and insert special nodes to refer to such nodes (so-called proxy reference nodes).

Unlike other yFiles layout algorithms, MultiPageLayout does not modify its input graph but returns its result as a MultiPageLayoutResult. To be able to profit as much as possible from existing layout support, this layout algorithm implements the ILayoutAlgorithm interface, although method doLayout does not specify a return value. Therefore, client code has to register a ILayoutCallback that is invoked when the algorithm has calculated a new multi-page result.

Default Values of Properties

additionalParentCount0No additional parent proxies are placed on a page.
createProxyReferenceNodestrueThe algorithm creates proxy reference nodes.
edgeBundleModeMask0All multi-edges belong to the same edge bundle.
elementFactoryDefaultElementFactoryIf no element factory is set explicitly, the algorithm uses an instance of .
groupingModeALL_NODESSpecial nodes are also assigned to the associated groups.
labelingGenericLabelingAn instance of with set to 0.
labelingEnabledfalseThe given labeling algorithm does not place labels.
layoutCallbacknullNo layout callback is set.
maximumDuration<code>0x7FFFFFFF</code>The layout algorithm runs unrestricted.
maximumPageSize1000x1000The width and height of the page are set to 1000.
multipleComponentsOnSinglePagetrueDifferent components may be placed on a single page.
strictClusterSeparationfalseNodes with different cluster IDs may be placed on the same page.

Type Details

yfiles module
layout-multipage
yfiles-umd modules
layout-multipage, layout
Legacy UMD name
yfiles.multipage.MultiPageLayout

See Also

This layout algorithm does not consider the initial drawing of the graph.

Constructors

Properties

Methods

Constants