|
Search this API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object y.layout.tree.AbstractNodePlacer y.layout.tree.DefaultNodePlacer
public class DefaultNodePlacer
DefaultNodePlacer
is the default implementation of interface NodePlacer
.
With its default settings, this placer generates tree layouts with orthogonal edge routes and child nodes that are placed next to each other and below their parent node.
Example layout using default settings
The layout style can be customized in several ways. Subtrees sharing the same local root node are either placed above or below each other.
Example using customized settings: each layer in the tree uses different configurations of DefaultNodePlacer
GenericTreeLayouter.SubtreeShape
s can be arranged in each main direction specified in setChildPlacement(byte)
. That
way, the subtrees of the same graph can have different directions.
This node placer aligns the local root node according to a chosen alignment
.
There are various routing styles
that result in different edge routes.
Field Summary | |
---|---|
static byte |
ALIGNMENT_CENTER
Alignment specifier which defines that the root node is placed aligned with the center of its subtrees. |
static byte |
ALIGNMENT_LEADING
Alignment specifier which defines that the root node is placed aligned with its first subtree. |
static byte |
ALIGNMENT_LEADING_OFFSET
Alignment specifier which defines that the root node is placed ahead of all its child subtrees. |
static byte |
ALIGNMENT_LEADING_ON_BUS
Alignment specifier which defines that the root is placed ahead of all its subtrees, centered on the bus. |
static byte |
ALIGNMENT_MEDIAN
Alignment specifier which defines that the root node is placed at the median of the connection points to its subtrees. |
static byte |
ALIGNMENT_TRAILING
Alignment specifier which defines that the root node is placed aligned with its last subtree. |
static byte |
ALIGNMENT_TRAILING_OFFSET
Alignment specifier which defines that the root is placed after all its subtree. |
static byte |
ALIGNMENT_TRAILING_ON_BUS
Alignment specifier which defines that the root is placed after all its subtrees, centered on the bus. |
static byte |
PLACEMENT_HORIZONTAL_DOWNWARD
Placement specifier which defines that subtrees are placed horizontally next to each other and below the root node. |
static byte |
PLACEMENT_HORIZONTAL_UPWARD
Placement specifier which defines that subtrees are placed horizontally next to each other and above the root node. |
static byte |
PLACEMENT_VERTICAL_TO_LEFT
Placement specifier which defines that subtrees are placed one below the other and left of the root node. |
static byte |
PLACEMENT_VERTICAL_TO_RIGHT
Placement specifier which defines that subtrees are placed one below the other and right of the root node. |
static byte |
ROUTING_FORK
Routing style specifier which defines that edge paths are routed orthogonally with the bends located in the channel between the root node and the child nodes. |
static byte |
ROUTING_FORK_AT_ROOT
Routing style specifier which defines that edge paths are routed orthogonally with just one bend. |
static byte |
ROUTING_POLY_LINE
Routing style constant which defines that edge paths are routed with a straight segment to the connector of the GenericTreeLayouter.SubtreeShape of the child nodes. |
static byte |
ROUTING_STRAIGHT
Routing style specifier which defines that edge paths are routed with a straight segment to the center of the child nodes. |
Fields inherited from class y.layout.tree.AbstractNodePlacer |
---|
graph |
Fields inherited from interface y.layout.tree.NodePlacer |
---|
DIRECTION_ANY, DIRECTION_EAST, DIRECTION_NONE, DIRECTION_NORTH, DIRECTION_SOUTH, DIRECTION_WEST |
Constructor Summary | |
---|---|
DefaultNodePlacer()
Creates a new DefaultNodePlacer instance with default settings. |
|
DefaultNodePlacer(byte childPlacement,
byte rootAlignment,
byte routingStyle,
double verticalDistance,
double horizontalDistance)
Creates a new DefaultNodePlacer instance with customized child placement ,
root alignment , routing style ,
vertical and horizontal distance . |
|
DefaultNodePlacer(byte childPlacement,
byte rootAlignment,
byte routingStyle,
double verticalDistance,
double horizontalDistance,
double minFirstSegmentLength,
double minLastSegmentLength,
double minSlope,
double minSlopeHeight)
Creates a new DefaultNodePlacer instance with custom settings. |
|
DefaultNodePlacer(byte childPlacement,
byte rootAlignment,
double verticalDistance,
double horizontalDistance)
Creates a new DefaultNodePlacer instance with customized child placement ,
root alignment , vertical and
horizontal distance . |
|
DefaultNodePlacer(byte childPlacement,
double verticalDistance,
double horizontalDistance)
Creates a new DefaultNodePlacer instance with customized child placement ,
vertical and horizontal distance . |
Method Summary | |
---|---|
protected void |
calcParentConnector(LayoutGraph graph,
Node localRoot,
NodeLayout rootLayout,
GenericTreeLayouter.SubtreeShape subtreeShape,
Edge parentEdge,
EdgeLayout parentEdgeLayout,
byte direction)
Calculates the bends for the connector to the parent node. |
protected void |
calcSlopedSourceEdgeLayout(NodeLayout rootLayout,
GenericTreeLayouter.SubtreeShape childShape,
Edge edge,
double childForkCoordinate,
double rootForkCoordinate)
Calculates the routing of the source side of the edge to the given child node. |
protected void |
calcSourceEdgeLayout(NodeLayout rootLayout,
GenericTreeLayouter.SubtreeShape childShape,
Edge edge)
Calculates the routing of the source side of the edge to the given child node. |
protected void |
calcTargetEdgeLayout(NodeLayout rootLayout,
GenericTreeLayouter.SubtreeShape childShape,
Edge edge)
Calculates the routing of the target side of the edge to the given child node. |
java.util.Comparator |
createComparator()
Creates a Comparator for outgoing edges which takes the initial coordinates of the edges' targets into
account. |
java.util.Comparator |
createFromSketchComparator()
Delegates to createComparator() . |
protected byte |
determineChildConnector(Node child)
Determines a connector direction for the given child node depending on the selected child placement . |
byte |
getChildPlacement()
Returns the direction in which the child nodes are placed with respect to their parent node. |
double |
getHorizontalDistance()
Returns the horizontal distance between nodes or GenericTreeLayouter.SubtreeShape s. |
double |
getMinFirstSegmentLength()
Returns the minimum length for the first segment of an edge. |
double |
getMinimumChannelSegmentDistance()
Returns the minimum (non-negative) distance between edge segments that are routed orthogonally in the channel between the root node and the child nodes (see ROUTING_FORK ). |
double |
getMinLastSegmentLength()
Returns the minimum length for the last segment of an edge. |
double |
getMinSlope()
Returns the minimum slope of the edge segments. |
double |
getMinSlopeHeight()
Returns the minimum height for sloped edge segments. |
byte |
getRootAlignment()
Returns how the root node is aligned with its children and their GenericTreeLayouter.SubtreeShape s. |
byte |
getRoutingStyle()
Returns the style in which edge paths are routed. |
double |
getVerticalAlignment()
Returns the relative vertical alignment of nodes with the same parent. |
double |
getVerticalDistance()
Returns the vertical distance between nodes or GenericTreeLayouter.SubtreeShape s. |
protected GenericTreeLayouter.SubtreeShape |
placeSubtree(Node localRoot,
byte parentConnectorDirection)
Arranges the root node and its children. |
void |
setChildPlacement(byte childPlacement)
Specifies the direction in which the child nodes are placed with respect to their parent node. |
void |
setHorizontalDistance(double horizontalDistance)
Specifies the horizontal distance between nodes or GenericTreeLayouter.SubtreeShape s. |
void |
setMinFirstSegmentLength(double minFirstSegmentLength)
Specifies the minimum length for the first segment of an edge. |
void |
setMinimumChannelSegmentDistance(double minimumChannelSegmentDistance)
Specifies the minimum (non-negative) distance between edge segments that are routed orthogonally in the channel between the root node and the child nodes (see ROUTING_FORK ). |
void |
setMinLastSegmentLength(double minLastSegmentLength)
Specifies the minimum length for the last segment of an edge. |
void |
setMinSlope(double minSlope)
Specifies the minimum slope of the edge segments. |
void |
setMinSlopeHeight(double minSlopeHeight)
Specifies the minimum height for sloped edge segments. |
void |
setRootAlignment(byte rootAlignment)
Specifies how the root node is aligned with its children and their GenericTreeLayouter.SubtreeShape s. |
void |
setRoutingStyle(byte routingStyle)
Specifies the style in which edge paths are routed. |
void |
setVerticalAlignment(double verticalAlignment)
Specifies the relative vertical alignment of nodes with the same parent. |
void |
setVerticalDistance(double verticalDistance)
Specifies the vertical distance between nodes or GenericTreeLayouter.SubtreeShape s. |
Methods inherited from class y.layout.tree.AbstractNodePlacer |
---|
clone, createProcessor, determineChildConnectors, getNodeShape, getSubtreeShape, placeSubtree |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface y.layout.tree.NodePlacer |
---|
createProcessor, determineChildConnectors, placeSubtree |
Field Detail |
---|
public static final byte PLACEMENT_VERTICAL_TO_LEFT
public static final byte PLACEMENT_VERTICAL_TO_RIGHT
public static final byte PLACEMENT_HORIZONTAL_UPWARD
public static final byte PLACEMENT_HORIZONTAL_DOWNWARD
public static final byte ALIGNMENT_LEADING_OFFSET
Depending on the child placement
, the root node is placed ahead
(e.g. PLACEMENT_HORIZONTAL_DOWNWARD
: left) of the combined bounding box of all subtrees without labels.
public static final byte ALIGNMENT_LEADING
Depending on the child placement
, the root node is placed aligned with the bounding
box of its first (e.g. PLACEMENT_HORIZONTAL_DOWNWARD
: left) subtree.
public static final byte ALIGNMENT_CENTER
public static final byte ALIGNMENT_MEDIAN
public static final byte ALIGNMENT_TRAILING
Depending on the child placement
, the root node is placed aligned with the bounding
box of its last (e.g. PLACEMENT_HORIZONTAL_DOWNWARD
: right) subtree.
public static final byte ALIGNMENT_TRAILING_OFFSET
Depending on the child placement
, the root node is placed after
(e.g. PLACEMENT_HORIZONTAL_DOWNWARD
: right) of the combined bounding box of all subtrees without labels.
public static final byte ALIGNMENT_TRAILING_ON_BUS
Depending on the child placement
, the root node is placed after
(e.g. PLACEMENT_HORIZONTAL_DOWNWARD
: right) of the combined bounding box of all subtrees without labels.
The bus leaves directly from the root node.
public static final byte ALIGNMENT_LEADING_ON_BUS
Depending on the child placement
, the root node is placed ahead
(e.g. PLACEMENT_HORIZONTAL_DOWNWARD
: left) of the combined bounding box of all subtrees without labels.
The bus leaves directly from the root node.
public static final byte ROUTING_FORK
public static final byte ROUTING_FORK_AT_ROOT
Edges will leave the root node at its sides and bend exactly above the according child node. If the child node is placed directly below the root node, the edge will bend inside of the root node and leave it at the bottom.
public static final byte ROUTING_STRAIGHT
public static final byte ROUTING_POLY_LINE
GenericTreeLayouter.SubtreeShape
of the child nodes.
setRoutingStyle(byte)
,
Constant Field ValuesEdges connect straight to the connector of the GenericTreeLayouter.SubtreeShape |
Constructor Detail |
---|
public DefaultNodePlacer()
DefaultNodePlacer
instance with default settings.
public DefaultNodePlacer(byte childPlacement, double verticalDistance, double horizontalDistance)
DefaultNodePlacer
instance with customized child placement
,
vertical
and horizontal distance
.
childPlacement
- the child placement specifier describing the style of the arrangementverticalDistance
- the vertical distance between the GenericTreeLayouter.SubtreeShape
shorizontalDistance
- the horizontal distance between the GenericTreeLayouter.SubtreeShape
s
java.lang.IllegalArgumentException
- if the placement specifier is unknown or
if the horizontal/vertical distance is negativesetChildPlacement(byte)
,
setVerticalDistance(double)
,
setHorizontalDistance(double)
public DefaultNodePlacer(byte childPlacement, byte rootAlignment, double verticalDistance, double horizontalDistance)
DefaultNodePlacer
instance with customized child placement
,
root alignment
, vertical
and
horizontal distance
.
childPlacement
- the child placement specifier describing the style of the arrangementrootAlignment
- the alignment specifier describing how the root node is aligned with its child nodesverticalDistance
- the vertical distance between the GenericTreeLayouter.SubtreeShape
shorizontalDistance
- the horizontal distance between the GenericTreeLayouter.SubtreeShape
s
java.lang.IllegalArgumentException
- if the placement specifier or the root alignment specifier is unknown or
if the horizontal/vertical distance is negativesetChildPlacement(byte)
,
setRootAlignment(byte)
,
setVerticalDistance(double)
,
setHorizontalDistance(double)
public DefaultNodePlacer(byte childPlacement, byte rootAlignment, byte routingStyle, double verticalDistance, double horizontalDistance)
DefaultNodePlacer
instance with customized child placement
,
root alignment
, routing style
,
vertical
and horizontal distance
.
childPlacement
- the child placement specifier describing the style of the arrangementrootAlignment
- the alignment specifier describing how the root node is aligned with its child nodesroutingStyle
- the routing style specifierverticalDistance
- the vertical distance between the GenericTreeLayouter.SubtreeShape
shorizontalDistance
- the horizontal distance between the GenericTreeLayouter.SubtreeShape
s
java.lang.IllegalArgumentException
- if the placement specifier or the root alignment or the routing style is unknown or
if the horizontal/vertical distance is negativesetChildPlacement(byte)
,
setRootAlignment(byte)
,
setRoutingStyle(byte)
,
setVerticalDistance(double)
,
setHorizontalDistance(double)
public DefaultNodePlacer(byte childPlacement, byte rootAlignment, byte routingStyle, double verticalDistance, double horizontalDistance, double minFirstSegmentLength, double minLastSegmentLength, double minSlope, double minSlopeHeight)
DefaultNodePlacer
instance with custom settings.
childPlacement
- the child placement specifier describing the style of the arrangementrootAlignment
- the alignment specifier describing how the root node is aligned with its child nodesroutingStyle
- the routing style specifierverticalDistance
- the vertical distance between the GenericTreeLayouter.SubtreeShape
shorizontalDistance
- the horizontal distance between the GenericTreeLayouter.SubtreeShape
sminFirstSegmentLength
- the minimum length of the first edge segment (connected to the root node)minLastSegmentLength
- the minimum length of the last edge segment (connected to the child node)minSlope
- the minimum slope between the root node and the GenericTreeLayouter.SubtreeShape
sminSlopeHeight
- the minimum vertical height of sloped edge segments
java.lang.IllegalArgumentException
- if the placement specifier or the root alignment or the routing style is unknown or
if the horizontal/vertical distance or the minimum first/last segment length or the minimum slope
or the minimum vertical height is negativesetChildPlacement(byte)
,
setRootAlignment(byte)
,
setRoutingStyle(byte)
,
setVerticalDistance(double)
,
setHorizontalDistance(double)
,
setMinFirstSegmentLength(double)
,
setMinLastSegmentLength(double)
,
setMinSlope(double)
,
setMinSlopeHeight(double)
Method Detail |
---|
public double getMinimumChannelSegmentDistance()
ROUTING_FORK
).
If this distance is set to 0
, all segments are routed in a bus-like style.
setMinSlope(double)
is equal to 0
,
setMinSlopeHeight(double)
is equal to 0
, setRoutingStyle(byte)
is
ROUTING_FORK
and setRootAlignment(byte)
is not equal to ALIGNMENT_LEADING_ON_BUS
or ALIGNMENT_TRAILING_ON_BUS
.setMinimumChannelSegmentDistance(double)
public void setMinimumChannelSegmentDistance(double minimumChannelSegmentDistance)
ROUTING_FORK
).
If this distance is set to 0
, all segments are routed in a bus-like style.
setMinSlope(double)
is equal to 0
,
setMinSlopeHeight(double)
is equal to 0
, setRoutingStyle(byte)
is
ROUTING_FORK
and setRootAlignment(byte)
is not equal to ALIGNMENT_LEADING_ON_BUS
or ALIGNMENT_TRAILING_ON_BUS
.minimumChannelSegmentDistance
- the minimum distance between edge segments
java.lang.IllegalArgumentException
- if the specified distance is smaller than 0
Minimum edge distance 0 with centered ports | Minimum edge distance 0 with border-distributed ports | Minimum edge distance 5 with centered ports | Minimum edge distance 5 with border-distributed ports |
protected GenericTreeLayouter.SubtreeShape placeSubtree(Node localRoot, byte parentConnectorDirection)
placeSubtree
in class AbstractNodePlacer
localRoot
- the local root nodeparentConnectorDirection
- the direction of the connector
GenericTreeLayouter.SubtreeShape
containing the local root and all its subtreesprotected void calcParentConnector(LayoutGraph graph, Node localRoot, NodeLayout rootLayout, GenericTreeLayouter.SubtreeShape subtreeShape, Edge parentEdge, EdgeLayout parentEdgeLayout, byte direction)
This implementation adds bends to the connector for edges that route the edges around the child node in case
there are PortConstraint
s that conflict with the direction of the
child placement
.
This method is called in placeSubtree(Node, byte)
to route the edges after the GenericTreeLayouter.SubtreeShape
s are
arranged. It may be overridden to customize the routing style.
graph
- the input graphlocalRoot
- the local root node whose connector is calculated and stored in the given subtree shaperootLayout
- the NodeLayout
of the root nodesubtreeShape
- the shape of the whole subtree of the local rootparentEdge
- the incoming edge of the local root node that will be the connector for the given subtree shapeparentEdgeLayout
- the current EdgeLayout
of the connector edgedirection
- the direction specifier as defined in the NodePlacer
interface which should be used
for the connectorAbstractNodePlacer.determineChildConnectors(Node, DataMap)
protected void calcTargetEdgeLayout(NodeLayout rootLayout, GenericTreeLayouter.SubtreeShape childShape, Edge edge)
This implementation just resets the current EdgeLayout
.
This method is called by placeSubtree(Node, byte)
after the shapes
of the local
root's children are placed. It may be overridden to add some
target points
to the edge.
rootLayout
- the NodeLayout
of the local root nodechildShape
- the GenericTreeLayouter.SubtreeShape
of the child's subtree that is connected through the given edgeedge
- the edgeprotected void calcSlopedSourceEdgeLayout(NodeLayout rootLayout, GenericTreeLayouter.SubtreeShape childShape, Edge edge, double childForkCoordinate, double rootForkCoordinate)
This method delegates to calcSourceEdgeLayout(NodeLayout, GenericTreeLayouter.SubtreeShape, Edge)
if the
routing style
is not ROUTING_FORK
.
It may be overridden to implement a custom routing style.
rootLayout
- the NodeLayout
of the local root nodechildShape
- the GenericTreeLayouter.SubtreeShape
instance of the corresponding child's subtreeedge
- the edgerootForkCoordinate
- the y-coordinate of the first bend of the edge if the placement is horizontal,
the x-coordinate otherwisechildForkCoordinate
- the y-coordinate of the second (= last) bend of the edge if the placement is horizontal,
the x-coordinate otherwiseprotected void calcSourceEdgeLayout(NodeLayout rootLayout, GenericTreeLayouter.SubtreeShape childShape, Edge edge)
This implementation adds bends to the EdgeLayout
of the given edge according to the specified
routing style
and child placement
. It also updates the
target points in the GenericTreeLayouter.SubtreeShape
.
This method is called by calcSlopedSourceEdgeLayout(NodeLayout, GenericTreeLayouter.SubtreeShape, Edge, double, double)
to route the edges. It may be overridden to implement a custom edge routing style.
rootLayout
- the NodeLayout
of the local root nodechildShape
- the GenericTreeLayouter.SubtreeShape
of the child's subtree that is connected through the given edgeedge
- the edgepublic byte getChildPlacement()
Subtrees can be placed below, above, left or right of their roots.
setChildPlacement(byte)
public void setChildPlacement(byte childPlacement)
Subtrees can be placed below, above, left or right of their roots.
PLACEMENT_HORIZONTAL_DOWNWARD
childPlacement
- one of the valid placement specifiers
java.lang.IllegalArgumentException
- if an unknown placement specifier is setpublic byte getRootAlignment()
GenericTreeLayouter.SubtreeShape
s.
setRootAlignment(byte)
public void setRootAlignment(byte rootAlignment)
GenericTreeLayouter.SubtreeShape
s.
ALIGNMENT_CENTER
rootAlignment
- one of the valid root alignment specifiers
java.lang.IllegalArgumentException
- if an unknown root alignment specifier is setpublic double getVerticalAlignment()
0
and 1
result in a valid alignment.
0
- nodes are top-aligned0.5
- nodes are center-aligned1
- nodes are bottom-aligned[0,1]
will result in a more compact node placement with unaligned nodes.
setVerticalAlignment(double)
public void setVerticalAlignment(double verticalAlignment)
0
and 1
result in a valid alignment.
0
- nodes are top-aligned0.5
- nodes are center-aligned1
- nodes are bottom-aligned[0,1]
will result in a more compact node placement with unaligned nodes.
protected byte determineChildConnector(Node child)
child placement
.
If the child nodes are placed below
the root node, the edge should
connect north
. If they are placed above
the root
node it should connect south
. The vertical placements are handled analogous.
determineChildConnector
in class AbstractNodePlacer
child
- the child node
child placement
getChildPlacement()
public byte getRoutingStyle()
setRoutingStyle(byte)
public void setRoutingStyle(byte routingStyle)
ROUTING_FORK
routingStyle
- the routing style specifier
java.lang.IllegalArgumentException
- if the specified routing style is unknownpublic double getVerticalDistance()
GenericTreeLayouter.SubtreeShape
s.
The distance needs to be non-negative.
setVerticalDistance(double)
public void setVerticalDistance(double verticalDistance)
GenericTreeLayouter.SubtreeShape
s.
The distance needs to be non-negative.
public double getMinFirstSegmentLength()
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.
routing style
is set to ROUTING_FORK
.setMinFirstSegmentLength(double)
public void setMinFirstSegmentLength(double minFirstSegmentLength)
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.
routing style
is set to ROUTING_FORK
.minFirstSegmentLength
- the non-negative minimum segment length
java.lang.IllegalArgumentException
- if the minimum segment length is negative15 | 30 |
public double getMinLastSegmentLength()
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.
routing style
is set to ROUTING_FORK
.setMinLastSegmentLength(double)
public void setMinLastSegmentLength(double minLastSegmentLength)
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.
routing style
is set to ROUTING_FORK
.minLastSegmentLength
- the non-negative minimum segment length
java.lang.IllegalArgumentException
- if the minimum segment length is negative15 | 30 |
public double getMinSlope()
These sloped segments are between the vertical first and last segment of the edge.
The segments may become steeper but they will have at least the specified slope. Negative minimum slopes can lead to edge routes looking like spider legs.
vertical distance
slope segments
can have.setMinSlope(double)
,
setMinSlopeHeight(double)
public void setMinSlope(double minSlope)
These sloped segments are between the vertical first and last segment of the edge.
The segments may become steeper but they will have at least the specified slope. Negative minimum slopes can lead to edge routes looking like spider legs.
public double getMinSlopeHeight()
These sloped segments are between the vertical first and last segment of the edge.
The segments may become steeper to reach the specified height.
setMinSlope(double)
minimum slope} segments can have.setMinSlopeHeight(double)
,
setMinSlope(double)
public void setMinSlopeHeight(double minSlopeHeight)
These sloped segments are between the vertical first and last segment of the edge.
The segments may become steeper to reach the specified height.
public double getHorizontalDistance()
GenericTreeLayouter.SubtreeShape
s.
The distance needs to be non-negative.
setHorizontalDistance(double)
public void setHorizontalDistance(double horizontalDistance)
GenericTreeLayouter.SubtreeShape
s.
The distance needs to be non-negative.
public java.util.Comparator createComparator()
Comparator
for outgoing edges which takes the initial coordinates of the edges' targets into
account.
Child nodes are sorted in a way that the layout will resemble the current arrangement of the nodes. This is especially useful for interactive or incremental layout calculation.
Comparator
that considers the initial coordinates of the nodespublic java.util.Comparator createFromSketchComparator()
createComparator()
.
createFromSketchComparator
in interface FromSketchNodePlacer
Comparator
createComparator()
|
© Copyright 2000-2022, yWorks GmbH. All rights reserved. |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |