|
Search this API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objecty.layout.CanonicMultiStageLayouter
y.layout.seriesparallel.SeriesParallelLayouter
public class SeriesParallelLayouter
This layout algorithm arranges series-parallel graphs.
Series-parallel graphs are directed graphs with a single source (node without incoming edges) and a single sink (node without outgoing edges). The layout algorithm highlights the main layout direction (from source to sink). It also emphasizes the paths through the graph because edges are routed with few bends.
SeriesParallelLayouter
is suitable for the visualization of circuits, call trees or flowcharts.
Series-parallel graphs are directed graphs with a single source (node without incoming edges) and a single sink (node without outgoing edges) that are built using only the following two rules:
From the recursive structure of series-parallel graphs, the layout algorithm retrieves a decomposition tree where each
node represents one of the decomposition types. Then, this tree is traversed recursively from bottom to top, aligning
subgraphs above (series) or next to (parallel) each other until the whole graph is arranged. The edges are routed
when both end nodes are placed. Different routing styles
can be used.
To avoid moving all nodes several times and to be aware of the area that the subtrees occupy, the layout algorithm keeps track of the shape of the subtrees. These shapes are moved and merged during the layout calculation. The layout algorithm also stores the connections between nodes and nodes that haven't already been placed in these shapes.
SeriesParallelLayouter
can take strong PortConstraint
s into account. It will connect the
edges to the specified locations, the directions, however, will be ignored.
Grouping of nodes can also be handled by this layout algorithm. It is important that a group node contains a whole
series-parallel subgraph. Otherwise, the group nodes may overlap with each other or with other nodes. Edges which
are connected to non-empty group nodes are not allowed. Furthermore, the user may specify minimum size constraints
for each group node using DataProvider
key GroupingKeys.MINIMUM_NODE_SIZE_DPKEY
.
The layout algorithm can be configured to reserve space for node labels and to place the edge labels along the edge
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, labels that should be centered between source
and target are placed close to the target node, unless this edge connects to the local source and sink of a subgraph.
Parallel subgraphs can be aligned in different ways. Depending on the node sizes, a different alignment can increase the compactness of the layout.
The way in which edges are distributed around their incident nodes is computed by an instance of
PortAssignment
. The default assignment
is able to consider
PortConstraint
s and edge groups.
The From Sketch mode
allows to take the initial locations of the nodes
into account. However, the layout algorithm won't insert crossings because it maintains the order of children of
each node.
SeriesParallelLayouter
supports custom sorting of the outgoing edges of a node. A Comparator
can be
assigned individually for the nodes using a DataProvider
registered with key
OUT_EDGE_COMPARATOR_DPKEY
. For all nodes for which the DataProvider
returns null
, the
layout algorithm falls back to the default comparator
.
By default, this layout algorithm can only handle graphs with a series-parallel structure. To apply it to a general
graph, general graph handling
needs to be activated. Then, the
layout algorithm will temporarily add and/or remove some edges from the input graph until a series-parallel graph is
obtained. The edges that were removed will be routed separately afterwards.
![]() |
![]() |
![]() |
![]() |
Field Summary | |
---|---|
static java.lang.String |
EDGE_LAYOUT_DESCRIPTOR_DPKEY
A DataProvider key for storing individual settings for edges
If no edge layout descriptor is mapped for an edge, a default edge layout descriptor will be obtained by method
getDefaultEdgeLayoutDescriptor() . |
static java.lang.Object |
NON_SERIES_PARALLEL_EDGE_LABELS_DPKEY
A DataProvider key for marking edge labels of non-series-parallel edges
|
static java.lang.Object |
OUT_EDGE_COMPARATOR_DPKEY
A DataProvider key for assigning different orderings for outgoing edges of the nodes
If the Comparator associated with a node is null , the outgoing edges maintain their
initial order. |
static java.lang.Object |
PORT_ASSIGNMENT_DPKEY
A DataProvider key for providing an individual port distribution at nodes
If there is no PortAssignment specified for a node, the layout algorithm uses the
default assignment . |
static byte |
ROUTING_STYLE_OCTILINEAR
Style constant describing an octilinear edge style. |
static byte |
ROUTING_STYLE_ORTHOGONAL
Style constant describing an orthogonal edge style. |
static byte |
ROUTING_STYLE_POLYLINE
Style constant describing a polyline edge style. |
Fields inherited from interface y.layout.Layouter |
---|
EDGE_ID_DPKEY, NODE_ID_DPKEY, NODE_TYPE_DPKEY, SELECTED_EDGES, SELECTED_NODES |
Constructor Summary | |
---|---|
SeriesParallelLayouter()
Creates a new SeriesParallelLayouter instance with default settings. |
Method Summary | |
---|---|
protected boolean |
canLayoutCore(LayoutGraph graph)
Checks whether or not the given graph is series-parallel and can be arranged by this layout algorithm. |
protected void |
doLayoutCore(LayoutGraph graph)
Calculates a series-parallel layout for the given graph. |
EdgeLayoutDescriptor |
getDefaultEdgeLayoutDescriptor()
Returns the EdgeLayoutDescriptor instance used for all those edges that do not have a specific layout
descriptor assigned. |
java.util.Comparator |
getDefaultOutEdgeComparator()
Returns the default Comparator used for sorting the outgoing edges incident to nodes that do not have a
specific Comparator . |
PortAssignment |
getDefaultPortAssignment()
Returns the default PortAssignment used for those nodes that do not have their own specific instance. |
double |
getMinimumEdgeToEdgeDistance()
Returns the minimum distance between edges. |
double |
getMinimumNodeToEdgeDistance()
Returns the minimum distance between nodes and edges. |
double |
getMinimumNodeToNodeDistance()
Returns the minimum distance between nodes. |
double |
getMinimumPolylineSegmentLength()
Returns the minimum vertical distance of the edge segments that are not orthogonal. |
double |
getMinimumSlope()
Returns the minimum slope which a non-orthogonal edge segment should have. |
Layouter |
getNonSeriesParallelEdgeLabelingAlgorithm()
Returns the labeling algorithm that is applied to all edge labels that belong to non-series-parallel edges. |
java.lang.Object |
getNonSeriesParallelEdgeLabelSelectionKey()
Returns the key to register a DataProvider that is used by the
non-series-parallel edge labeling algorithm to determine
which edge labels it should place. |
Layouter |
getNonSeriesParallelEdgeRouter()
Returns the edge routing algorithm used for the edges of a general graph that are not part of the series-parallel subgraph whose layout is calculated. |
java.lang.Object |
getNonSeriesParallelEdgesDpKey()
Returns the key to register a DataProvider that is used for marking non-series-parallel edges. |
double |
getPreferredOctilinearSegmentLength()
Returns the preferred length for non-orthogonal segments in octilinear edge routes. |
byte |
getRoutingStyle()
Returns the currently used routing style for edges. |
double |
getVerticalAlignment()
Returns the vertical alignment of parallel subgraphs. |
boolean |
isConsiderNodeLabelsEnabled()
Returns whether or not the layout algorithm reserves space for node labels to avoid overlaps. |
boolean |
isFromSketchModeEnabled()
Returns whether or not to take the coordinates of the input diagram into account when arranging the nodes. |
boolean |
isGeneralGraphHandlingEnabled()
Returns whether or not the layout algorithm can handle general graphs. |
boolean |
isIntegratedEdgeLabelingEnabled()
Returns whether or not the layout algorithm will place edge labels and reserve space for them. |
static boolean |
isSeriesParallelGraph(Graph graph)
Determines whether or not the given graph has a series-parallel structure. |
void |
setComponentLayouterEnabled(boolean enabled)
Specifies whether or not the LayoutStage used for arranging the components of the graph is activated. |
void |
setConsiderNodeLabelsEnabled(boolean enabled)
Specifies whether or not the layout algorithm reserves space for node labels to avoid overlaps. |
void |
setDefaultEdgeLayoutDescriptor(EdgeLayoutDescriptor descriptor)
Specifies the EdgeLayoutDescriptor instance used for all those edges that do not have a specific layout
descriptor assigned. |
void |
setDefaultOutEdgeComparator(java.util.Comparator defaultOutEdgeComparator)
Specifies the default Comparator used for sorting the outgoing edges incident to nodes that do not have a
specific Comparator . |
void |
setDefaultPortAssignment(PortAssignment defaultPortAssignment)
Specifies the default PortAssignment used for those nodes that do not have their own specific instance. |
void |
setFromSketchModeEnabled(boolean fromSketchModeEnabled)
Specifies whether or not to take the coordinates of the input diagram into account when arranging the nodes. |
void |
setGeneralGraphHandlingEnabled(boolean enabled)
Specifies whether or not the layout algorithm can handle general graphs. |
void |
setIntegratedEdgeLabelingEnabled(boolean enabled)
Specifies whether or not the layout algorithm will place edge labels and reserve space for them. |
void |
setMinimumEdgeToEdgeDistance(double minimumEdgeToEdgeDistance)
Specifies the minimum distance between edges. |
void |
setMinimumNodeToEdgeDistance(double minimumNodeToEdgeDistance)
Specifies the minimum distance between nodes and edges. |
void |
setMinimumNodeToNodeDistance(double minimumNodeToNodeDistance)
Specifies the minimum distance between nodes. |
void |
setMinimumPolylineSegmentLength(double minimumPolylineSegmentLength)
Specifies the minimum vertical distance of the edge segments that are not orthogonal. |
void |
setMinimumSlope(double minimumSlope)
Specifies the minimum slope which a non-orthogonal edge segment should have. |
void |
setNonSeriesParallelEdgeLabelingAlgorithm(Layouter nonSeriesParallelEdgeLabelingAlgorithm)
Specifies the labeling algorithm that is applied to all edge labels that belong to non-series-parallel edges. |
void |
setNonSeriesParallelEdgeLabelSelectionKey(java.lang.Object nonSeriesParallelEdgeLabelSelectionKey)
Specifies the key to register a DataProvider that is used by the
non-series-parallel edge labeling algorithm to determine
which edge labels it should place. |
void |
setNonSeriesParallelEdgeRouter(Layouter nonSeriesParallelEdgeRouter)
Specifies the edge routing algorithm used for the edges of a general graph that are not part of the series-parallel subgraph whose layout is calculated. |
void |
setNonSeriesParallelEdgesDpKey(java.lang.Object nonSeriesParallelSelectionKey)
Specifies the key to register a DataProvider that is used for marking non-series-parallel edges. |
void |
setPreferredOctilinearSegmentLength(double preferredOctilinearSegmentLength)
Specifies the preferred length for non-orthogonal segments in octilinear edge routes. |
void |
setRoutingStyle(byte routingStyle)
Specifies the currently used routing style for edges. |
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 parallel subgraphs. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String EDGE_LAYOUT_DESCRIPTOR_DPKEY
DataProvider
key for storing individual settings for edges
If no edge layout descriptor is mapped for an edge, a default edge layout descriptor will be obtained by method
getDefaultEdgeLayoutDescriptor()
.
getDefaultEdgeLayoutDescriptor()
,
Constant Field Valuespublic static final java.lang.Object OUT_EDGE_COMPARATOR_DPKEY
DataProvider
key for assigning different orderings for outgoing edges of the nodes
If the Comparator
associated with a node is null
, the outgoing edges maintain their
initial order.
Comparator
s are only used for the series-parallel part of the graph.
Non-series-parallel edges are not included and will be routed by the
edge router for non-series-parallel edges
.getDefaultOutEdgeComparator()
public static final java.lang.Object PORT_ASSIGNMENT_DPKEY
DataProvider
key for providing an individual port distribution at nodes
If there is no PortAssignment
specified for a node, the layout algorithm uses the
default assignment
.
getDefaultPortAssignment()
public static final java.lang.Object NON_SERIES_PARALLEL_EDGE_LABELS_DPKEY
DataProvider
key for marking edge labels of non-series-parallel edges
setNonSeriesParallelEdgeLabelSelectionKey(Object)
.
During the layout, a DataProvider
marking the non-series-parallel edges will automatically be
registered with the graph. Thus, data provided by the user registered with this specific key is ignored.setNonSeriesParallelEdgeLabelSelectionKey(Object)
,
setNonSeriesParallelEdgeLabelingAlgorithm(Layouter)
public static final byte ROUTING_STYLE_ORTHOGONAL
public static final byte ROUTING_STYLE_OCTILINEAR
45
-degree sloped segments.
public static final byte ROUTING_STYLE_POLYLINE
Constructor Detail |
---|
public SeriesParallelLayouter()
SeriesParallelLayouter
instance with default settings.
Method Detail |
---|
protected boolean canLayoutCore(LayoutGraph graph)
canLayoutCore
in class CanonicMultiStageLayouter
graph
- the input graph
true
if the given graph is series-parallel, false
otherwiseprotected void doLayoutCore(LayoutGraph graph)
doLayoutCore
in class CanonicMultiStageLayouter
graph
- the input graph
WrongGraphStructure
- if the graph is not series-parallelpublic static boolean isSeriesParallelGraph(Graph graph)
The current implementation detects the series-parallel graph structure in linear time.
graph
- the input graph
true
if the given graph is series-parallel, false
otherwisepublic boolean isConsiderNodeLabelsEnabled()
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
otherwisesetConsiderNodeLabelsEnabled(boolean)
public void setConsiderNodeLabelsEnabled(boolean enabled)
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.enabled
- true
if node labels should be considered, false
otherwise![]() false | ![]() true |
public boolean isIntegratedEdgeLabelingEnabled()
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 edge labels should be placed, false
otherwisesetIntegratedEdgeLabelingEnabled(boolean)
public void setIntegratedEdgeLabelingEnabled(boolean enabled)
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.enabled
- true
if edge labels should be placed, false
otherwise![]() false | ![]() true |
public double getVerticalAlignment()
0
means that nodes are top-aligned0.5
means that nodes are center-aligned1
means that nodes are bottom-aligned
[0,1]
will be matched with the nearest interval end.[0,1]
setVerticalAlignment(double)
public void setVerticalAlignment(double verticalAlignment)
0
means that nodes are top-aligned0.5
means that nodes are center-aligned1
means that nodes are bottom-aligned
[0,1]
will be matched with the nearest interval end.verticalAlignment
- the vertical alignment ratio from interval [0,1]
![]() Top vertical alignment ( 0 ) | ![]() Centered vertical alignment ( 0.5 ) | ![]() Bottom vertical alignment ( 1 ) |
public void setGeneralGraphHandlingEnabled(boolean enabled)
General graphs are required to be transformed before being laid out (by adding or removing some edges) such that
they satisfy the criteria of a series-parallel graph. After the layout, the graph will be restored and the
initial edges which weren't included in the series-parallel graph are routed by a separate
edge routing algorithm
. Furthermore, the labels of these
edges are placed by a customizable edge labeling
algorithm
.
enabled
- true
if general graphs should be handled, false
otherwisepublic boolean isGeneralGraphHandlingEnabled()
General graphs are required to be transformed before being laid out (by adding or removing some edges) such that
they satisfy the criteria of a series-parallel graph. After the layout, the graph will be restored and the
initial edges which weren't included in the series-parallel graph are routed by a separate
edge routing algorithm
. Furthermore, the labels of these
edges are placed by a customizable edge labeling
algorithm
.
true
if general graphs should be handled, false
otherwisesetGeneralGraphHandlingEnabled(boolean)
public Layouter getNonSeriesParallelEdgeRouter()
selection key
is set.setNonSeriesParallelEdgeRouter(Layouter)
,
setGeneralGraphHandlingEnabled(boolean)
,
setNonSeriesParallelEdgesDpKey(Object)
public void setNonSeriesParallelEdgeRouter(Layouter nonSeriesParallelEdgeRouter)
selection key
is set.EdgeRouter
nonSeriesParallelEdgeRouter
- the edge routing algorithm applied to the non-series-parallel edges
java.lang.IllegalArgumentException
- if null
is specifiedsetGeneralGraphHandlingEnabled(boolean)
,
setNonSeriesParallelEdgesDpKey(Object)
public java.lang.Object getNonSeriesParallelEdgesDpKey()
DataProvider
that is used for marking non-series-parallel edges.
This key is used for determining the edges that are not part of the series-parallel structure in a general graph,
such that the specified non-series-parallel edge router only routes marked edges.
DataProvider
using the
specified key.setNonSeriesParallelEdgesDpKey(Object)
,
setGeneralGraphHandlingEnabled(boolean)
,
setNonSeriesParallelEdgeRouter(Layouter)
public void setNonSeriesParallelEdgesDpKey(java.lang.Object nonSeriesParallelSelectionKey)
DataProvider
that is used for marking non-series-parallel edges.
This key is used for determining the edges that are not part of the series-parallel structure in a general graph,
such that the specified non-series-parallel edge router only routes marked edges.
DataProvider
using the
specified key.Layouter.SELECTED_EDGES
nonSeriesParallelSelectionKey
- the selection key
java.lang.IllegalArgumentException
- if the given key is set to null
setGeneralGraphHandlingEnabled(boolean)
,
setNonSeriesParallelEdgeRouter(Layouter)
public Layouter getNonSeriesParallelEdgeLabelingAlgorithm()
edge label selection key
to determine which
edge labels it should place. Otherwise, the labeling algorithm might place all
labels, including those that belong to actual series-parallel edges.setGeneralGraphHandlingEnabled(boolean)
,
setNonSeriesParallelEdgeLabelSelectionKey(Object)
,
setNonSeriesParallelEdgeLabelingAlgorithm(Layouter)
public void setNonSeriesParallelEdgeLabelingAlgorithm(Layouter nonSeriesParallelEdgeLabelingAlgorithm)
edge label selection key
to determine which
edge labels it should place. Otherwise, the labeling algorithm might place all
labels, including those that belong to actual series-parallel edges.SALabeling
nonSeriesParallelEdgeLabelingAlgorithm
- the labeling algorithm used for edge labels of non-series-parallel edgessetGeneralGraphHandlingEnabled(boolean)
,
setNonSeriesParallelEdgeLabelSelectionKey(Object)
public java.lang.Object getNonSeriesParallelEdgeLabelSelectionKey()
DataProvider
that is used by the
non-series-parallel edge labeling algorithm
to determine
which edge labels it should place.
During the layout, a DataProvider
with this key will be registered with the graph. It will
mark all EdgeLabelLayout
s that belong to non-series-parallel edges.
A specified custom non-series-parallel edge labeling algorithm needs to obey this selection.
If using SALabeling
as labeling algorithm, set this key as value of
property AbstractLabelingAlgorithm.setSelection(Object)
.
The labeling algorithm set as default is already configured such that it uses the correct selection key.
non-series-parallel edge
labeling algorithm
but no edge label selection key, then the labeling algorithm might place all
labels, including those that belong to actual series-parallel edges.DataProvider
keysetNonSeriesParallelEdgeLabelSelectionKey(Object)
,
setNonSeriesParallelEdgeLabelingAlgorithm(Layouter)
public void setNonSeriesParallelEdgeLabelSelectionKey(java.lang.Object nonSeriesParallelEdgeLabelSelectionKey)
DataProvider
that is used by the
non-series-parallel edge labeling algorithm
to determine
which edge labels it should place.
During the layout, a DataProvider
with this key will be registered with the graph. It will
mark all EdgeLabelLayout
s that belong to non-series-parallel edges.
A specified custom non-series-parallel edge labeling algorithm needs to obey this selection.
If using SALabeling
as labeling algorithm, set this key as value of
property AbstractLabelingAlgorithm.setSelection(Object)
.
The labeling algorithm set as default is already configured such that it uses the correct selection key.
non-series-parallel edge
labeling algorithm
but no edge label selection key, then the labeling algorithm might place all
labels, including those that belong to actual series-parallel edges.NON_SERIES_PARALLEL_EDGE_LABELS_DPKEY
nonSeriesParallelEdgeLabelSelectionKey
- the non-series-parallel edge label selection DataProvider
keysetNonSeriesParallelEdgeLabelingAlgorithm(Layouter)
public PortAssignment getDefaultPortAssignment()
PortAssignment
used for those nodes that do not have their own specific instance.
A PortAssignment
instance is defined using a DataProvider
registered with the graph with key
PORT_ASSIGNMENT_DPKEY
.
setDefaultPortAssignment(PortAssignment)
public void setDefaultPortAssignment(PortAssignment defaultPortAssignment)
PortAssignment
used for those nodes that do not have their own specific instance.
A PortAssignment
instance is defined using a DataProvider
registered with the graph with key
PORT_ASSIGNMENT_DPKEY
.
DefaultPortAssignment
. All ports are
distributed
on the borders of the nodes.defaultPortAssignment
- the port assignment
java.lang.IllegalArgumentException
- if null
is specifiedpublic java.util.Comparator getDefaultOutEdgeComparator()
Comparator
used for sorting the outgoing edges incident to nodes that do not have a
specific Comparator
.
Such a comparator is defined using a DataProvider
registered with the graph with key
OUT_EDGE_COMPARATOR_DPKEY
.
null
.Comparator
for outgoing edgessetDefaultOutEdgeComparator(Comparator)
public void setDefaultOutEdgeComparator(java.util.Comparator defaultOutEdgeComparator)
Comparator
used for sorting the outgoing edges incident to nodes that do not have a
specific Comparator
.
Such a comparator is defined using a DataProvider
registered with the graph with key
OUT_EDGE_COMPARATOR_DPKEY
.
null
.DefaultOutEdgeComparator
. The order of the edges is used along with a special
PortConstraint
and edge group handling.defaultOutEdgeComparator
- the default Comparator
for outgoing edgespublic byte getRoutingStyle()
setGeneralGraphHandlingEnabled(boolean)
is enabled.public void setRoutingStyle(byte routingStyle)
setGeneralGraphHandlingEnabled(boolean)
is enabled.ROUTING_STYLE_ORTHOGONAL
routingStyle
- the routing style for the edgespublic double getMinimumPolylineSegmentLength()
routing style
is
ROUTING_STYLE_POLYLINE
.setMinimumPolylineSegmentLength(double)
,
setMinimumSlope(double)
,
setRoutingStyle(byte)
,
ROUTING_STYLE_POLYLINE
public void setMinimumPolylineSegmentLength(double minimumPolylineSegmentLength)
routing style
is
ROUTING_STYLE_POLYLINE
.minimumPolylineSegmentLength
- the given minimum vertical distance
java.lang.IllegalArgumentException
- if the specified length is smaller than 0
setMinimumSlope(double)
,
setRoutingStyle(byte)
,
ROUTING_STYLE_POLYLINE
![]() 30 | ![]() 60 |
public double getMinimumSlope()
routing style
is
ROUTING_STYLE_POLYLINE
.setMinimumSlope(double)
,
setMinimumPolylineSegmentLength(double)
,
setRoutingStyle(byte)
,
ROUTING_STYLE_POLYLINE
public void setMinimumSlope(double minimumSlope)
routing style
is
ROUTING_STYLE_POLYLINE
.minimumSlope
- the minimum slope for a non-orthogonal segment
java.lang.IllegalArgumentException
- if the specified slope is smaller than 0
setMinimumPolylineSegmentLength(double)
,
setRoutingStyle(byte)
,
ROUTING_STYLE_POLYLINE
![]() 0.25 | ![]() 1.5 |
public double getPreferredOctilinearSegmentLength()
routing style
is
ROUTING_STYLE_OCTILINEAR
.setPreferredOctilinearSegmentLength(double)
,
setRoutingStyle(byte)
,
ROUTING_STYLE_OCTILINEAR
public void setPreferredOctilinearSegmentLength(double preferredOctilinearSegmentLength)
routing style
is
ROUTING_STYLE_OCTILINEAR
.preferredOctilinearSegmentLength
- the preferred length for non-orthogonal segments in octilinear edge routes
java.lang.IllegalArgumentException
- if the specified length is smaller than 0
setRoutingStyle(byte)
,
ROUTING_STYLE_OCTILINEAR
![]() 10 | ![]() 20 |
public EdgeLayoutDescriptor getDefaultEdgeLayoutDescriptor()
EdgeLayoutDescriptor
instance used for all those edges that do not have a specific layout
descriptor assigned.
EdgeLayoutDescriptor
instancesetDefaultEdgeLayoutDescriptor(EdgeLayoutDescriptor)
,
EDGE_LAYOUT_DESCRIPTOR_DPKEY
public void setDefaultEdgeLayoutDescriptor(EdgeLayoutDescriptor descriptor)
EdgeLayoutDescriptor
instance used for all those edges that do not have a specific layout
descriptor assigned.
EdgeLayoutDescriptor
descriptor
- the current EdgeLayoutDescriptor
instance
java.lang.IllegalArgumentException
- if the specified EdgeLayoutDescriptor
is null
EDGE_LAYOUT_DESCRIPTOR_DPKEY
public double getMinimumNodeToNodeDistance()
setMinimumNodeToNodeDistance(double)
public void setMinimumNodeToNodeDistance(double minimumNodeToNodeDistance)
public double getMinimumNodeToEdgeDistance()
setMinimumNodeToEdgeDistance(double)
public void setMinimumNodeToEdgeDistance(double minimumNodeToEdgeDistance)
public double getMinimumEdgeToEdgeDistance()
setMinimumEdgeToEdgeDistance(double)
public void setMinimumEdgeToEdgeDistance(double minimumEdgeToEdgeDistance)
public void setFromSketchModeEnabled(boolean fromSketchModeEnabled)
comparators
will be ignored if From Sketch mode
is enabled.fromSketchModeEnabled
- true
if input coordinates are considered, false
otherwisepublic boolean isFromSketchModeEnabled()
comparators
will be ignored if From Sketch mode
is enabled.true
if input coordinates are considered, false
otherwisepublic void setComponentLayouterEnabled(boolean enabled)
LayoutStage
used for arranging the components of the graph is activated.
setComponentLayouterEnabled
in class CanonicMultiStageLayouter
SeriesParallelLayouter
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 setSelfLoopLayouterEnabled(boolean enabled)
LayoutStage
used for routing self-loops is activated.
setSelfLoopLayouterEnabled
in class CanonicMultiStageLayouter
SeriesParallelLayouter
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 |