| 
 | Search this API | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objecty.layout.tree.AbstractRotatableNodePlacer
y.layout.tree.AssistantPlacer
public class AssistantPlacer
The AssistantPlacer places nodes that are marked as assistants left and right of their parents and all other
 nodes below the assistant nodes.
 
 
 This NodePlacer delegates the placement of all assistant nodes to an instance of LeftRightPlacer. The
 non-assistant nodes are handled by another node placer. To be able to do this,
 AssistantPlacer uses a Processor which prepares the graph for node placing.
 
   A DataProvider that is registered using ASSISTANT_DPKEY returns true
   for assistant nodes and false for all other nodes.
 
PortAssignment that starts all edges at the same
         port. If the ports are distributed along the border, edge crossings may occur.| Nested Class Summary | 
|---|
| Nested classes/interfaces inherited from class y.layout.tree.AbstractRotatableNodePlacer | 
|---|
| AbstractRotatableNodePlacer.Matrix, AbstractRotatableNodePlacer.RootAlignment | 
| Field Summary | |
|---|---|
| static java.lang.Object | ASSISTANT_DPKEYA DataProviderkey for marking which nodes are placed as assistants | 
| Fields inherited from class y.layout.tree.AbstractRotatableNodePlacer | 
|---|
| createdChildren, graph, modificationMatrix, nodeShapeProvider, spacing, subtreeShapeProvider | 
| Fields inherited from interface y.layout.tree.NodePlacer | 
|---|
| DIRECTION_ANY, DIRECTION_EAST, DIRECTION_NONE, DIRECTION_NORTH, DIRECTION_SOUTH, DIRECTION_WEST | 
| Constructor Summary | |
|---|---|
| AssistantPlacer()Creates a new AssistantPlacerinstance with default settings. | |
| AssistantPlacer(AbstractRotatableNodePlacer.Matrix modificationMatrix)Creates a new AssistantPlacerinstance that uses the transformation defined by the given matrix. | |
| Method Summary | |
|---|---|
|  java.util.Comparator | createComparator()Delegates the creation of from-sketch comparatorsto the twoNodePlacers handling assistant and non-assistant nodes. | 
| static java.util.Comparator | createCompoundComparator(java.util.Comparator assistantComparator,
                         java.util.Comparator childComparator)Creates a Comparatorthat compares outgoing edges connecting to assistant nodes and edges connecting to
 non-assistant nodes separately. | 
|  Processor | createProcessor(GenericTreeLayouter layouter,
                LayoutGraph graph,
                Node currentRoot)Creates a Processorthat prepares the graph for placing assistant node. | 
| protected  byte | determineChildConnector(Node child)Determines a connector direction for the given child node. | 
|  void | determineChildConnectors(Node localRoot,
                         DataMap connectorMap)Delegates the calculation of the child connectors to the LeftRightPlacerwhich arranges the assistant nodes. | 
|  NodePlacer | getChildNodePlacer()Returns the NodePlacerinstance that places the non-assistant children. | 
| protected  GenericTreeLayouter.SubtreeShape | getNodeShape(Node node)Returns the GenericTreeLayouter.SubtreeShapefor the given node. | 
|  double | getSpacing()Returns the spacing between subtrees for the delegate NodePlacer. | 
|  GenericTreeLayouter.SubtreeShape | placeSubtree(DataProvider nodeShapeProvider,
             DataProvider subtreeShapeProvider,
             LayoutGraph graph,
             Node localRoot,
             byte parentConnectorDirection)Delegates the arrangement of GenericTreeLayouter.SubtreeShapes to an instance ofLeftRightPlacer. | 
| protected  y.layout.tree.SubtreeShapeRotated | placeSubtree(Node localRoot,
             byte parentConnectorDirection)Arranges the local root relative to the subtree shape of its children. | 
|  void | setChildNodePlacer(NodePlacer childNodePlacer)Specifies the NodePlacerinstance that places the non-assistant children. | 
|  void | setSpacing(double spacing)Specifies the spacing between subtrees for the delegate NodePlacer. | 
| Methods inherited from class y.layout.tree.AbstractRotatableNodePlacer | 
|---|
| createFromSketchComparator, createRootNodeShape, createSubtreeShape, getModificationMatrix, getPortConstraint, getSourcePointAbs, isPortAlignmentEnabled, setPortAlignmentEnabled, translateDirectionToModel, translateDirectionToReal, translatePoint | 
| 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.Object ASSISTANT_DPKEY
DataProvider key for marking which nodes are placed as assistants
| Constructor Detail | 
|---|
public AssistantPlacer()
AssistantPlacer instance with default settings.
public AssistantPlacer(AbstractRotatableNodePlacer.Matrix modificationMatrix)
AssistantPlacer instance that uses the transformation defined by the given matrix.
modificationMatrix - the transformation matrix
java.lang.IllegalArgumentException - if the given transformation matrix is null| Method Detail | 
|---|
protected byte determineChildConnector(Node child)
determineChildConnector in class AbstractRotatableNodePlacerNodePlacer for the assistant nodes
            by determineChildConnectors(Node, DataMap).child - the child node
NodePlacer interface
java.lang.IllegalStateException - if this method is called
public void determineChildConnectors(Node localRoot,
                                     DataMap connectorMap)
LeftRightPlacer which arranges the assistant nodes.
determineChildConnectors in interface NodePlacerdetermineChildConnectors in class AbstractRotatableNodePlacerlocalRoot - the local root nodeconnectorMap - the map that must be used for storing the direction specifiers of the child nodesAbstractRotatableNodePlacer.determineChildConnector(Node)protected GenericTreeLayouter.SubtreeShape getNodeShape(Node node)
GenericTreeLayouter.SubtreeShape for the given node.
 
   This is a convenience method that retrieves a GenericTreeLayouter.SubtreeShape for a single node from the corresponding
   DataProvider.
 
   This method is used in placeSubtree(Node, byte) for retrieving the GenericTreeLayouter.SubtreeShapes for the 
   local root nodes. It may be overridden to return a custom implementation of GenericTreeLayouter.SubtreeShape.
 
placeSubtree(Node, byte).
             Otherwise, the DataProvider for querying results will not have been initialized yet.node - the node
GenericTreeLayouter.SubtreeShape for the given node
public Processor createProcessor(GenericTreeLayouter layouter,
                                 LayoutGraph graph,
                                 Node currentRoot)
Processor that prepares the graph for placing assistant node.
 
   The pre-processing step adds a dummy node as a child to the current root and changes all edges of non-assistant 
   children such that they start at this dummy node. That way, AssistantPlacer is able to delegate the
   assistant nodes to a NodePlacer different from the one used for placing non-assistant nodes. The
   child node placer is assigned to the dummy node. So the non-assistant children are
   placed by this delegate placer.
 
All changes will be cleaned up during the post-processing step.
createProcessor in interface NodePlacercreateProcessor in class AbstractRotatableNodePlacerlayouter - the current GenericTreeLayouter instancegraph - the input graphcurrentRoot - the root node handled by this NodePlacer
Processor instance that prepares the graph for AssistantPlacer, or null
 if the out-degree of the given root node is zeropublic void setSpacing(double spacing)
NodePlacer.
 The spacing needs to be non-negative.
setSpacing in class AbstractRotatableNodePlacerspacing - the distance between subtrees
java.lang.IllegalArgumentException - if the given spacing is negative|  Spacing 20usingSimpleNodePlacer |  Spacing 50usingSimpleNodePlacer | 
public double getSpacing()
NodePlacer.
 The spacing needs to be non-negative.
getSpacing in class AbstractRotatableNodePlacersetSpacing(double)
public GenericTreeLayouter.SubtreeShape placeSubtree(DataProvider nodeShapeProvider,
                                                     DataProvider subtreeShapeProvider,
                                                     LayoutGraph graph,
                                                     Node localRoot,
                                                     byte parentConnectorDirection)
GenericTreeLayouter.SubtreeShapes to an instance of LeftRightPlacer.
 
   The LeftRightPlacer places all assistant nodes left and right of the local root node. The
   GenericTreeLayouter.SubtreeShape associated with the dummy node which contains GenericTreeLayouter.SubtreeShapes of the non-assistant 
   nodes is placed below the assistant nodes, center-aligned with respect to the local root node.
 
placeSubtree in interface NodePlacerplaceSubtree in class AbstractRotatableNodePlacernodeShapeProvider - the DataProvider for obtaining an initial shape of the root nodesubtreeShapeProvider - the DataProvider for accessing the pre-calculated shapes of the subtreesgraph - the input graphlocalRoot - the root of the subtree that should be arranged by this methodparentConnectorDirection - the direction specifier for the connector of the local root node to its parent node
GenericTreeLayouter.SubtreeShape containing the local root and all assistant nodes and non-assistant nodesAbstractRotatableNodePlacer.placeSubtree(Node, byte)
protected y.layout.tree.SubtreeShapeRotated placeSubtree(Node localRoot,
                                                         byte parentConnectorDirection)
placeSubtree in class AbstractRotatableNodePlacerNodePlacer for the assistant nodes and the
            placer for non-assistant nodes by method
            placeSubtree(DataProvider, DataProvider, LayoutGraph, Node, byte).localRoot - the local root nodeparentConnectorDirection - the direction specifier for the connector of the local root node to its parent node
java.lang.IllegalStateException - if this method is calledpublic void setChildNodePlacer(NodePlacer childNodePlacer)
NodePlacer instance that places the non-assistant children.
 
   These non-assistant child nodes will be placed below the assistant child nodes and are arranged by
   the given NodePlacer.
   Non-assistant child nodes are the ones that are not marked in the DataProvider
   registered with ASSISTANT_DPKEY.
 
CompactNodePlacer as placer for non-assistant children is not supported. Instead,
 CompactNodePlacer itself allows to define assistant nodes and in that case places sub-trees using
 the same style as AssistantPlacer does.SimpleNodePlacer.  A SimpleNodePlacer with
 centered local roots is used.childNodePlacer - the child node placer for the non-assistant children
java.lang.IllegalArgumentException - if the given child placer is null or an instance of class
 CompactNodePlacer.ASSISTANT_DPKEYpublic NodePlacer getChildNodePlacer()
NodePlacer instance that places the non-assistant children.
 
   These non-assistant child nodes will be placed below the assistant child nodes and are arranged by
   the given NodePlacer.
   Non-assistant child nodes are the ones that are not marked in the DataProvider
   registered with ASSISTANT_DPKEY.
 
CompactNodePlacer as placer for non-assistant children is not supported. Instead,
 CompactNodePlacer itself allows to define assistant nodes and in that case places sub-trees using
 the same style as AssistantPlacer does.setChildNodePlacer(NodePlacer), 
ASSISTANT_DPKEYpublic java.util.Comparator createComparator()
from-sketch comparators
 to the two NodePlacers handling assistant and non-assistant nodes.
 
   The from-sketch Comparators are combined
   into a compound comparator.
   The one for the edges connecting to assistant nodes is retrieved from a LeftRightPlacer while the other one
   is provided by the child placer.
 
createComparator in class AbstractRotatableNodePlacerComparator to compare edges, considering the initial locations of their target nodessetChildNodePlacer(NodePlacer), 
createCompoundComparator(Comparator, Comparator), 
FromSketchNodePlacer.createFromSketchComparator()
public static java.util.Comparator createCompoundComparator(java.util.Comparator assistantComparator,
                                                            java.util.Comparator childComparator)
Comparator that compares outgoing edges connecting to assistant nodes and edges connecting to
 non-assistant nodes separately.
assistantComparator - the Comparator for edges connecting to assistant nodeschildComparator - the Comparator for edges connecting to non-assistant nodes
Comparator that compares edges to assistant nodes separately from edges to non-assistant nodes| 
 | © Copyright 2000-2025, yWorks GmbH. All rights reserved. | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||