|
Search this API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object y.layout.CanonicMultiStageLayouter y.layout.tree.TreeLayouter
public class TreeLayouter
This layout algorithm arranges graphs with a tree structure.
TreeLayouter
is designed to arrange directed and undirected trees that have a unique root node. All children
are placed below their parent in relation to the main layout direction. The edges of the graph are routed as
straight-line segments or in an orthogonal bus-like fashion.
Tree layout algorithms are commonly used for visualizing relational data and for producing diagrams of high quality that are able to reveal possible hierarchic properties of the graph. More precisely, they find applications in dataflow analysis, software engineering, bioinformatics and business administration.
A graph containing group nodes
Left-to-right layout with global layering
The layout algorithm starts from the root and recursively assigns coordinates to all tree nodes. In this manner, leaf nodes will be placed first, while each parent node is placed centered above its children.
The layout algorithm supports the custom sorting of sibling nodes (i.e., nodes with the same parent node).
The property setComparator(Comparator)
allows specifying the Comparator
instance that is
used to sort the outgoing edges of each node of the tree.
By default, the algorithm sorts the edges by the x-coordinate of the associated target node in ascending order.
If the Comparator
is set to an instance of NodeOrderComparator
, the outgoing edges are sorted
by the Comparable
instances associated with the edges' target. The mapping of nodes to Comparable
s
can be specified by a DataProvider
that is registered to the graph with key
NodeOrderComparator.NODE_ORDER_DPKEY
.
A custom node can be defined as root of the tree using a DataProvider
registered with the graph with
key SELECTED_ROOT_DPKEY
.
TreeLayouter
can be configured to reserve space for node
labels
. It can also place edge labels along edges
such that the labels won't overlap with other graph elements. Edge labels are placed according to the information
stored in a PreferredPlacementDescriptor
instance. However, the placement along the edge will only
affect the order of multiple labels at the same edge. The algorithm will always place the labels close to the
target node.
Grouping of nodes can also be handled by this layout algorithm. It is important that a group node contains a whole
subtree. Otherwise, the group nodes may overlap with each other or with other nodes. Furthermore, the user may specify
minimum size constraints for each group node using DataProvider
key
GroupingKeys.MINIMUM_NODE_SIZE_DPKEY
.
This layout algorithm can only handle graphs with a tree structure. To apply it to a general graph, a
TreeReductionStage
can be appended. This stage will temporarily remove some edges of the input graph until
a tree is obtained. After the layout calculation, the stage will reinsert the edges that were removed and route them
separately.
Field Summary | |
---|---|
static int |
BORDER_CENTER_PORTS
A constant defining that ports are placed at the center of the border of the nodes. |
static int |
BORDER_DISTRIBUTED_PORTS
A constant defining that ports are evenly distributed along the border of the nodes. |
static byte |
CHILD_PLACEMENT_POLICY_ALL_LEAVES_ON_SAME_LAYER
A policy for placing the leaf nodes in a Dendrogram-like fashion. |
static byte |
CHILD_PLACEMENT_POLICY_LEAVES_STACKED
A policy for placing the leaf nodes in a stack-like fashion with balanced stack heights. |
static byte |
CHILD_PLACEMENT_POLICY_LEAVES_STACKED_LEFT
A policy for placing the leaf nodes in a stack-like fashion using a single stack left. |
static byte |
CHILD_PLACEMENT_POLICY_LEAVES_STACKED_LEFT_AND_RIGHT
A policy for placing the leaf nodes in a stack-like fashion using two stacks. |
static byte |
CHILD_PLACEMENT_POLICY_LEAVES_STACKED_RIGHT
A policy for placing the leaf nodes in a stack-like fashion using a single stack right. |
static byte |
CHILD_PLACEMENT_POLICY_SIBLINGS_ON_SAME_LAYER
A policy for placing the leaf nodes with the same parent in the same layer. |
static int |
NODE_CENTER_PORTS
A constant defining that ports are placed at the center of the nodes. |
static int |
ORTHOGONAL_STYLE
A constant for routing the edges orthogonally in a bus-like fashion. |
static int |
PLAIN_STYLE
A constant for routing the edges as straight-line segments. |
static int |
PORT_CONSTRAINTS_AWARE
A constant defining that ports are assigned based on given port constraints . |
static java.lang.Object |
SELECTED_ROOT_DPKEY
A DataProvider key for marking the node that will be used as root node of the tree.
|
Fields inherited from interface y.layout.Layouter |
---|
EDGE_ID_DPKEY, NODE_ID_DPKEY, NODE_TYPE_DPKEY, SELECTED_EDGES, SELECTED_NODES |
Constructor Summary | |
---|---|
TreeLayouter()
Creates a new TreeLayouter instance with default settings. |
Method Summary | |
---|---|
boolean |
canLayoutCore(LayoutGraph graph)
Accepts only graphs that are trees or multi-parent trees. |
void |
doLayoutCore(LayoutGraph graph)
Arranges the given graph as a tree. |
double |
getBusAlignment()
Returns the vertical bus alignment for orthogonally routed edge buses. |
byte |
getChildPlacementPolicy()
Returns the layout policy for leaf nodes. |
java.util.Comparator |
getComparator()
Returns the Comparator instance that is used for sorting the outgoing edges of each node of the tree. |
int |
getLayoutStyle()
Returns the edge routing style used by this layout algorithm. |
double |
getMinimalLayerDistance()
Returns the minimum distance between two adjacent layers. |
double |
getMinimalNodeDistance()
Returns the minimum horizontal distance between adjacent nodes within the same layer. |
double |
getMinimumBusSegmentDistance()
Returns the minimum (vertical) distance of the horizontal edge segments of the bus between the root node and the child nodes. |
double |
getMinimumFirstSegmentLength()
Returns the minimum length for the first segment of an edge. |
double |
getMinimumLastSegmentLength()
Returns the minimum length for the last segment of an edge. |
AbstractRotatableNodePlacer.Matrix |
getModificationMatrix()
Returns the modification matrix used for rotating / mirroring the layout. |
int |
getPortStyle()
Returns the port assignment policy that will be applied. |
double |
getVerticalAlignment()
Returns the vertical alignment of the nodes within their corresponding layers. |
boolean |
isEnforceGlobalLayering()
Returns whether or not a global layering is enforced, that is, each node spans exactly one layer. |
boolean |
isGroupingSupported()
Specifies whether or not group nodes are handled by the layout algorithm. |
boolean |
isIntegratedEdgeLabelingEnabled()
Returns whether or not the layout algorithm reserves space for edge labels and places them. |
boolean |
isIntegratedNodeLabelingEnabled()
Returns whether or not the layout algorithm reserves space for node labels. |
void |
setBusAlignment(double busAlignment)
Specifies the vertical bus alignment for orthogonally routed edge buses. |
void |
setChildPlacementPolicy(byte policy)
Specifies the layout policy for leaf nodes. |
void |
setComparator(java.util.Comparator comparator)
Specifies the Comparator instance that is used for sorting the outgoing edges of each node of the tree. |
void |
setComponentLayouterEnabled(boolean enabled)
Specifies whether or not the LayoutStage used for arranging the components of the graph is activated. |
void |
setEnforceGlobalLayering(boolean enabled)
Returns whether or not a global layering is enforced, that is, each node spans exactly one layer. |
void |
setGroupingSupported(boolean groupingSupported)
Specifies whether or not group nodes are handled by the layout algorithm. |
void |
setIntegratedEdgeLabelingEnabled(boolean integratedEdgeLabelingEnabled)
Specifies whether or not the layout algorithm reserves space for edge labels and places them. |
void |
setIntegratedNodeLabelingEnabled(boolean integratedNodeLabelingEnabled)
Specifies whether or not the layout algorithm reserves space for node labels. |
void |
setLayoutStyle(int style)
Specifies the edge routing style used by this layout algorithm. |
void |
setMinimalLayerDistance(double dist)
Specifies the minimum distance between two adjacent layers. |
void |
setMinimalNodeDistance(double dist)
Specifies the minimum horizontal distance between adjacent nodes within the same layer. |
void |
setMinimumBusSegmentDistance(double minimumBusSegmentDistance)
Specifies the minimum (vertical) distance of the horizontal edge segments of the bus between the root node and the child nodes. |
void |
setMinimumFirstSegmentLength(double minimumFirstSegmentLength)
Specifies the minimum length for the first segment of an edge. |
void |
setMinimumLastSegmentLength(double minimumLastSegmentLength)
Specifies the minimum length for the last segment of an edge. |
void |
setModificationMatrix(AbstractRotatableNodePlacer.Matrix modificationMatrix)
Specifies the modification matrix used for rotating / mirroring the layout. |
void |
setParallelEdgeLayouterEnabled(boolean enabled)
Specifies whether or not the LayoutStage used for routing parallel edges is activated. |
void |
setPortStyle(int style)
Specifies the port assignment policy that will be applied. |
void |
setSelfLoopLayouterEnabled(boolean enabled)
Specifies whether or not the LayoutStage used for routing self-loops is activated. |
void |
setVerticalAlignment(double verticalAlignment)
Specifies the vertical alignment of the nodes within their corresponding layers. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int NODE_CENTER_PORTS
This constant uses (0,0)
as port offset.
public static final int BORDER_CENTER_PORTS
public static final int BORDER_DISTRIBUTED_PORTS
public static final int PORT_CONSTRAINTS_AWARE
port constraints
.
setPortStyle(int)
,
Constant Field ValuesPortConstraint s at the bottom of the source node and right or left of the target nodes |
public static final int PLAIN_STYLE
public static final int ORTHOGONAL_STYLE
public static final byte CHILD_PLACEMENT_POLICY_LEAVES_STACKED
In this context, a stack-like fashion means that leaf nodes that connect to the same parent node are placed one upon the other, resulting in horizontally compact layouts.
This policy tries to balance stack heights, i.e., for each subtree that consists only of leaf nodes,
CHILD_PLACEMENT_POLICY_LEAVES_STACKED_RIGHT
or
CHILD_PLACEMENT_POLICY_LEAVES_STACKED_LEFT_AND_RIGHT
will be used
depending on the number of leaves in the subtree.
public static final byte CHILD_PLACEMENT_POLICY_LEAVES_STACKED_LEFT
In this context, a stack-like fashion means that leaf nodes that connect to the same root node are placed one upon the other, resulting in horizontally compact layouts.
This policy uses a single stack that lies to the left relative to the center of the parent node.
public static final byte CHILD_PLACEMENT_POLICY_LEAVES_STACKED_RIGHT
In this context, a stack-like fashion means that leaf nodes that connect to the same root node are placed one upon the other, resulting in horizontally compact layouts.
This policy uses a single stack that lies to the right relative to the center of the parent node.
public static final byte CHILD_PLACEMENT_POLICY_LEAVES_STACKED_LEFT_AND_RIGHT
In this context, a stack-like fashion means that leaf nodes that connect to the same root node are placed one upon the other, resulting in horizontally compact layouts.
This policy distributes leaf nodes among two stacks, one to the left and one to the right relative to the center of the parent node.
public static final byte CHILD_PLACEMENT_POLICY_ALL_LEAVES_ON_SAME_LAYER
According to this policy, all leaf nodes are placed in one layer (i.e. all leaves are placed on one horizontal line in a top-to-bottom or in a bottom-to-top layout).
public static final byte CHILD_PLACEMENT_POLICY_SIBLINGS_ON_SAME_LAYER
For example, siblings are being placed on a horizontal line in a top-to-bottom or in a bottom-to-top layout.
This policy produces vertically compact layouts.
public static final java.lang.Object SELECTED_ROOT_DPKEY
DataProvider
key for marking the node that will be used as root node of the tree.
Constructor Detail |
---|
public TreeLayouter()
TreeLayouter
instance with default settings.
Method Detail |
---|
public boolean canLayoutCore(LayoutGraph graph)
canLayoutCore
in class CanonicMultiStageLayouter
TreeReductionStage
.graph
- the input graph
true
if the given graph is a tree (or multi-parent tree), false
otherwisepublic double getMinimumBusSegmentDistance()
0
, all segments are routed in a classical bus-like style.
layout style
is set to ORTHOGONAL_STYLE
and option setEnforceGlobalLayering(boolean)
is disabled.setMinimumBusSegmentDistance(double)
public void setMinimumBusSegmentDistance(double minimumBusSegmentDistance)
0
, all segments are routed in a classical bus-like style.
layout style
is set to ORTHOGONAL_STYLE
and option setEnforceGlobalLayering(boolean)
is disabled.minimumBusSegmentDistance
- the minimum distance between horizontal edge segments
java.lang.IllegalArgumentException
- if the specified distance is smaller than 0
setLayoutStyle(int)
,
setPortStyle(int)
public boolean isEnforceGlobalLayering()
If it is enabled, the algorithm ensures that nodes never span more than one layer. Otherwise, nodes with larger size might span two or more layers such that a more compact layout is produced.
This setting can be advantageous, if the hierarchical structure of the tree should be emphasized.
true
if global layering is enforced, false
otherwisesetEnforceGlobalLayering(boolean)
,
getVerticalAlignment()
,
setVerticalAlignment(double)
public void setEnforceGlobalLayering(boolean enabled)
If it is enabled, the algorithm ensures that nodes never span more than one layer. Otherwise, nodes with larger size might span two or more layers such that a more compact layout is produced.
This setting can be advantageous, if the hierarchical structure of the tree should be emphasized.
enabled
- true
if global layering should be enforced, false
otherwisegetVerticalAlignment()
,
setVerticalAlignment(double)
true | false |
public byte getChildPlacementPolicy()
setChildPlacementPolicy(byte)
public void setChildPlacementPolicy(byte policy)
CHILD_PLACEMENT_POLICY_SIBLINGS_ON_SAME_LAYER
. Sibling nodes are placed on the same layer.policy
- one of the predefined layout policies for leaf nodes
java.lang.IllegalArgumentException
- if the specified policy is unknownpublic boolean isGroupingSupported()
true
if grouping is supported, false
otherwiseCanonicMultiStageLayouter.setGroupNodeHidingEnabled(boolean)
public void setGroupingSupported(boolean groupingSupported)
groupingSupported
- true
if grouping should be supported, false
otherwisetrue |
public void doLayoutCore(LayoutGraph graph)
doLayoutCore
in class CanonicMultiStageLayouter
graph
- the input graphpublic void setComparator(java.util.Comparator comparator)
Comparator
instance that is used for sorting the outgoing edges of each node of the tree. This
comparator defines the relative order of the child nodes in the layout.
Comparator
. An implementation that compares the x-coordinates of the nodes.comparator
- a Comparator
instancepublic java.util.Comparator getComparator()
Comparator
instance that is used for sorting the outgoing edges of each node of the tree. This
comparator defines the relative order of the child nodes in the layout.
Comparator
. An implementation that compares the x-coordinates of the nodes.Comparator
instancesetComparator(Comparator)
public void setPortStyle(int style)
NODE_CENTER_PORTS
. Ports are placed at the center of the nodes.style
- one of the predefined port assignment policiespublic int getPortStyle()
setPortStyle(int)
public void setLayoutStyle(int style)
If PLAIN_STYLE
is set, all edges will be routed as straight-line segments.
If ORTHOGONAL_STYLE
is set, all edges will be routed orthogonally in a bus-like fashion.
PLAIN_STYLE
. Edges are routed as straight-line segments.style
- one of the predefined edge routing styles
java.lang.IllegalArgumentException
- if an invalid layout style is providedpublic int getLayoutStyle()
If PLAIN_STYLE
is set, the edges will be routed as straight-line segments.
If ORTHOGONAL_STYLE
is set, all edges will be routed orthogonally in a bus-like fashion.
PLAIN_STYLE
or ORTHOGONAL_STYLE
setLayoutStyle(int)
public void setMinimalNodeDistance(double dist)
public double getMinimalNodeDistance()
setMinimalNodeDistance(double)
public void setMinimalLayerDistance(double dist)
public double getMinimalLayerDistance()
setMinimalLayerDistance(double)
public boolean isIntegratedNodeLabelingEnabled()
labeling algorithm
will be
overwritten and when disabling it, any currently specified labeling algorithm will be disabled via property
CanonicMultiStageLayouter.setLabelLayouterEnabled(boolean)
. Therefore, it is recommended to only use this convenience property
instead of manually changing the mentioned other properties.true
if node labels are considered, false
otherwisesetIntegratedNodeLabelingEnabled(boolean)
public void setIntegratedNodeLabelingEnabled(boolean integratedNodeLabelingEnabled)
labeling algorithm
will be
overwritten and when disabling it, any currently specified labeling algorithm will be disabled via property
CanonicMultiStageLayouter.setLabelLayouterEnabled(boolean)
. Therefore, it is recommended to only use this convenience property
instead of manually changing the mentioned other properties.integratedNodeLabelingEnabled
- true
if node labels should be considered,
false
otherwisefalse | true |
public boolean isIntegratedEdgeLabelingEnabled()
To define the desired placement for each label add a PreferredPlacementDescriptor
on
EdgeLabelLayout
.
This method is a convenience method that assures that the
label layouter
is of type LabelLayoutTranslator
and
LabelLayoutTranslator.setTranslateEdgeLabelsEnabled(boolean)
is set to true
.
FreeEdgeLabelModel
as the label model for the edges.labeling algorithm
will be
overwritten and when disabling it, any currently specified labeling algorithm will be disabled via property
CanonicMultiStageLayouter.setLabelLayouterEnabled(boolean)
. Therefore, it is recommended to only use this convenience property
instead of manually changing the mentioned other properties.true
if integrated edge labeling is enabled, false
otherwisesetIntegratedEdgeLabelingEnabled(boolean)
public void setIntegratedEdgeLabelingEnabled(boolean integratedEdgeLabelingEnabled)
To define the desired placement for each label add a PreferredPlacementDescriptor
on
EdgeLabelLayout
.
This method is a convenience method that assures that the
label layouter
is of type LabelLayoutTranslator
and
LabelLayoutTranslator.setTranslateEdgeLabelsEnabled(boolean)
is set to true
.
FreeEdgeLabelModel
as the label model for the edges.labeling algorithm
will be
overwritten and when disabling it, any currently specified labeling algorithm will be disabled via property
CanonicMultiStageLayouter.setLabelLayouterEnabled(boolean)
. Therefore, it is recommended to only use this convenience property
instead of manually changing the mentioned other properties.integratedEdgeLabelingEnabled
- true
if integrated edge labeling should be enabled,
false
otherwisefalse | true |
public double getBusAlignment()
The bus alignment determines the relative position of an edge bus between two subsequent layers.
The value of this property must lie within the interval [0,1]
where:
0
places the bus at the top, directly below the parent node.0.5
places the bus in the middle between parent and child nodes.1
places the bus at the bottom, directly above the child nodes.
ORTHOGONAL_STYLE
layout style with global layering
enforced.ORTHOGONAL_STYLE
layout style with child placement policy
CHILD_PLACEMENT_POLICY_ALL_LEAVES_ON_SAME_LAYER
.[0,1]
setBusAlignment(double)
,
setLayoutStyle(int)
,
setEnforceGlobalLayering(boolean)
,
setChildPlacementPolicy(byte)
public void setBusAlignment(double busAlignment)
The bus alignment determines the relative position of an edge bus between two subsequent layers.
The value of this property must lie within the interval [0,1]
where:
0
places the bus at the top, directly below the parent node.0.5
places the bus in the middle between parent and child nodes.1
places the bus at the bottom, directly above the child nodes.
ORTHOGONAL_STYLE
layout style with global layering
enforced.ORTHOGONAL_STYLE
layout style with child placement policy
CHILD_PLACEMENT_POLICY_ALL_LEAVES_ON_SAME_LAYER
.busAlignment
- a value from the interval [0,1]
java.lang.IllegalArgumentException
- if busAlignment
is not in [0,1]
setLayoutStyle(int)
,
setEnforceGlobalLayering(boolean)
,
setChildPlacementPolicy(byte)
Bus alignment 0.0 : top alignment | Bus alignment 0.5 : center alignment | Bus alignment 1.0 : bottom alignment |
public double getMinimumFirstSegmentLength()
During layout calculation, the edges of the tree are directed. Hence, the first segment is always the segment that is attached to the source, which is the local root node.
The length needs to be non-negative.
ORTHOGONAL_STYLE
layout style.global layering
is enforced
or if the child placement policy is CHILD_PLACEMENT_POLICY_ALL_LEAVES_ON_SAME_LAYER
.
For such cases the algorithm only ensures that the used
minimum layer distance
is at least the sum of
the minimum first segment length
and
the minimum last segment length
.setMinimumFirstSegmentLength(double)
public void setMinimumFirstSegmentLength(double minimumFirstSegmentLength)
During layout calculation, the edges of the tree are directed. Hence, the first segment is always the segment that is attached to the source, which is the local root node.
The length needs to be non-negative.
ORTHOGONAL_STYLE
layout style.global layering
is enforced
or if the child placement policy is CHILD_PLACEMENT_POLICY_ALL_LEAVES_ON_SAME_LAYER
.
For such cases the algorithm only ensures that the used
minimum layer distance
is at least the sum of
the minimum first segment length
and
the minimum last segment length
.minimumFirstSegmentLength
- the non-negative minimum segment length
java.lang.IllegalArgumentException
- if the minimum segment length is negative15 | 30 |
public double getMinimumLastSegmentLength()
During layout calculation, the edges of the tree are directed. Hence, the last segment is always the segment that is attached to the target, which is a child node.
The length needs to be non-negative.
ORTHOGONAL_STYLE
layout style.global layering
is enforced
or if the child placement policy is CHILD_PLACEMENT_POLICY_ALL_LEAVES_ON_SAME_LAYER
.
For such cases the algorithm only ensures that the used
minimum layer distance
is at least the sum of
the minimum first segment length
and
the minimum last segment length
.setMinimumLastSegmentLength(double)
public void setMinimumLastSegmentLength(double minimumLastSegmentLength)
During layout calculation, the edges of the tree are directed. Hence, the last segment is always the segment that is attached to the target, which is a child node.
The length needs to be non-negative.
ORTHOGONAL_STYLE
layout style.global layering
is enforced
or if the child placement policy is CHILD_PLACEMENT_POLICY_ALL_LEAVES_ON_SAME_LAYER
.
For such cases the algorithm only ensures that the used
minimum layer distance
is at least the sum of
the minimum first segment length
and
the minimum last segment length
.minimumLastSegmentLength
- the non-negative minimum segment length
java.lang.IllegalArgumentException
- if the minimum segment length is negative15 | 30 |
public double getVerticalAlignment()
The value for the vertical alignment is considered as relative to the height of the corresponding layer, which is determined by the maximum height of the nodes that belong to the particular layer.
The value of this property must lie within the interval [0,1]
, where:
0
corresponds to top-alignment.0.5
corresponds to center-alignment.1
corresponds to bottom-alignment.
global layering
is not enforced, the value of this property is
usually ignored.[0,1]
setVerticalAlignment(double)
,
setEnforceGlobalLayering(boolean)
public void setVerticalAlignment(double verticalAlignment)
The value for the vertical alignment is considered as relative to the height of the corresponding layer, which is determined by the maximum height of the nodes that belong to the particular layer.
The value of this property must lie within the interval [0,1]
, where:
0
corresponds to top-alignment.0.5
corresponds to center-alignment.1
corresponds to bottom-alignment.
global layering
is not enforced, the value of this property is
usually ignored.verticalAlignment
- a value from the interval [0,1]
java.lang.IllegalArgumentException
- if vertical alignment value does not lie within [0,1]
setEnforceGlobalLayering(boolean)
Vertical alignment 0.0 : top alignment | Vertical alignment 0.5 : center alignment | Vertical alignment 1.0 : bottom alignment |
public void setModificationMatrix(AbstractRotatableNodePlacer.Matrix modificationMatrix)
AbstractRotatableNodePlacer.Matrix.DEFAULT
modificationMatrix
- the given modification matrixpublic AbstractRotatableNodePlacer.Matrix getModificationMatrix()
setModificationMatrix(AbstractRotatableNodePlacer.Matrix)
public void setComponentLayouterEnabled(boolean enabled)
LayoutStage
used for arranging the components of the graph is activated.
setComponentLayouterEnabled
in class CanonicMultiStageLayouter
TreeLayouter
can only handle single components. Disabling ComponentLayouter
will lead to errors during execution.enabled
- true
if the stage that arranges the graph components is activated,
false
otherwiseCanonicMultiStageLayouter.isComponentLayouterEnabled()
,
CanonicMultiStageLayouter.setComponentLayouter(LayoutStage)
,
ComponentLayouter
public void setParallelEdgeLayouterEnabled(boolean enabled)
LayoutStage
used for routing parallel edges is activated.
setParallelEdgeLayouterEnabled
in class CanonicMultiStageLayouter
TreeLayouter
cannot handle parallel edges. Disabling ParallelEdgeLayouter
will lead to errors during execution.enabled
- true
if the stage responsible for routing parallel edges is activated,
false
otherwiseCanonicMultiStageLayouter.isParallelEdgeLayouterEnabled()
,
CanonicMultiStageLayouter.setParallelEdgeLayouter(LayoutStage)
,
ParallelEdgeLayouter
public void setSelfLoopLayouterEnabled(boolean enabled)
LayoutStage
used for routing self-loops is activated.
setSelfLoopLayouterEnabled
in class CanonicMultiStageLayouter
TreeLayouter
cannot handle self-loops. Disabling SelfLoopLayouter
will lead
to errors during execution.enabled
- true
if the stage responsible for routing self-loops is activated, false
otherwiseCanonicMultiStageLayouter.isSelfLoopLayouterEnabled()
,
CanonicMultiStageLayouter.setSelfLoopLayouter(LayoutStage)
,
SelfLoopLayouter
|
© Copyright 2000-2022, yWorks GmbH. All rights reserved. |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |