|
Search this API | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objecty.layout.grouping.Grouping
public class Grouping
This class provides convenient and efficient access to the hierarchic graph structure.
The grouping information is provided through DataProviders registered with the graph with keys
GroupingKeys.NODE_ID_DPKEY, GroupingKeys.PARENT_NODE_ID_DPKEY and GroupingKeys.GROUP_DPKEY.
It describes the hierarchy as a tree where a group node is the parent of the nodes that it contains.


virtual root.
Leaf nodes can either be normal nodes or empty groups.
Grouping is not needed anymore, it should be disposed of.![]() |
![]() |
| Field Summary |
|---|
| Fields inherited from interface y.layout.grouping.GroupingKeys |
|---|
GROUP_DPKEY, GROUP_NODE_INSETS_DPKEY, MINIMUM_NODE_SIZE_DPKEY, NODE_ID_DPKEY, PARENT_NODE_ID_DPKEY |
| Constructor Summary | |
|---|---|
Grouping(Graph graph)
Creates a new Grouping instance that represents the hierarchy of the graph. |
|
| Method Summary | |
|---|---|
protected NodeMap |
createInfoMap(Graph graph)
Creates a NodeMap to store hierarchy information for each node. |
void |
dispose()
Disposes of all internal data structures held by this instance. |
protected void |
disposeInfoMap(Graph graph,
NodeMap infoMap)
Disposes of the NodeMap created to store hierarchy information for each node. |
NodeList |
getChildren(Node parent)
Returns the direct children of the given group node. |
NodeList |
getDescendants(Node parent)
Returns all descendants of the given group node. |
EdgeList |
getEdgesGoingIn(Node group)
Returns all edges crossing the bounds of the given group node such that their targets are inside the group node while their sources lie outside the group node. |
EdgeList |
getEdgesGoingOut(Node group)
Returns all edges crossing the bounds of the given group node such that their sources are inside the group node while their targets lie outside the group node. |
Graph |
getGraph()
Returns the Graph instance for which this Grouping object provides hierarchy information. |
LayoutGraph |
getLayoutGraph()
Returns the LayoutGraph instance for which this Grouping object provides hierarchy information. |
Node |
getNearestCommonAncestor(Node node1,
Node node2)
Returns the nearest common ancestor of the given nodes in the hierarchy structure. |
Node |
getParent(Node node)
Returns the parent for the given node. |
Node |
getRepresentative(Node node,
Node group)
Returns an immediate child of the group node that represents the given node. |
Node |
getRoot()
Returns a Node instance associated with the virtual root of the hierarchy tree. |
boolean |
hasChildren(Node node)
Determines whether or not the given node is a group node with children. |
protected void |
init()
Initializes internal data structures. |
static boolean |
isFlat(Graph graph)
Returns whether or not the given graph is flat. |
static boolean |
isGrouped(Graph graph)
Returns whether or not the given graph is grouped. |
boolean |
isGroupNode(Node node)
Determines whether or not the given node is a group node. |
boolean |
isNormalEdge(Edge edge)
Determines whether or not the given edge is a normal edge as opposed to an edge that crosses any group node bounds. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public Grouping(Graph graph)
Grouping instance that represents the hierarchy of the graph.
The hierarchy information is cached during the constructor call. Later modifications to the graph are not
considered and may lead to errors when using this Grouping instance.
Grouping holds the current state of the graph instance, it should be
disposed of once it is not needed anymore.graph - the graph instance from which the hierarchy information is obtained| Method Detail |
|---|
protected void init()
This method is called from Grouping(Graph) and retrieves the state of the hierarchic graph at the moment
of invocation. It may be overridden to append additional information used for group handling.
disposed of if this instance of
Grouping is not needed anymore.dispose()public LayoutGraph getLayoutGraph()
LayoutGraph instance for which this Grouping object provides hierarchy information.
LayoutGraph is only possible if this Grouping is associated with an
instance of LayoutGraph class.public Graph getGraph()
Graph instance for which this Grouping object provides hierarchy information.
null if this instance was
already disposed of.protected NodeMap createInfoMap(Graph graph)
NodeMap to store hierarchy information for each node.
This method is called in init() and may be overridden to customize how the NodeMap is created.
graph - the current graph
NodeMapinit(),
disposeInfoMap(Graph, NodeMap)
protected void disposeInfoMap(Graph graph,
NodeMap infoMap)
NodeMap created to store hierarchy information for each node.
This method is called in dispose() and may be overridden to revert changes from
createInfoMap(Graph).
graph - the current graphinfoMap - the NodeMap which contains the hierarchy information for each nodedispose(),
createInfoMap(Graph)public Node getParent(Node node)
node - the node for which the parent is determined
null for a top-level node
java.lang.IllegalArgumentException - if the given node is nullgetChildren(Node),
getDescendants(Node),
getNearestCommonAncestor(Node, Node)public Node getRoot()
Node instance associated with the virtual root of the hierarchy tree.
This instance can be given to the getChildren(Node) to obtain the nodes of the top level of the
hierarchy.
Node instance is not part of the graph.getChildren(Node)public NodeList getChildren(Node parent)
If the virtual root of the hierarchy tree is passed, all top-level nodes are returned.
public NodeList getDescendants(Node parent)
If the virtual root of the hierarchy tree is passed, all nodes in the graph are returned.
parent - the group node
getRoot(),
getParent(Node),
getChildren(Node)![]() The marked nodes are descendants of group node 5 (grouped graph) | ![]() The marked nodes are descendants of group node 5(hierarchy tree) |
public boolean isGroupNode(Node node)
node - the potential group node
true if the given node is a group node or is null, false otherwisehasChildren(Node)public boolean hasChildren(Node node)
node - the potential parent
true if the given node has children, false otherwisegetChildren(Node),
isGroupNode(Node)public boolean isNormalEdge(Edge edge)
edge - the edge to check
true if the given edge is normal, false otherwisegetEdgesGoingIn(Node),
getEdgesGoingOut(Node)public EdgeList getEdgesGoingIn(Node group)
public EdgeList getEdgesGoingOut(Node group)
public Node getRepresentative(Node node,
Node group)
node - the node for which a representative is searchedgroup - the group node to which the representative should belong
null if the node is not a descendant of the group
java.lang.IllegalArgumentException - if the given node is null![]() Node 4 is the representative for node 2 in group node 5 (grouped graph) | ![]() Node 4 is the representative for node 2 in group node 5 (hierarchy tree) |
public void dispose()
instance.
Grouping should be disposed of when it is not needed anymore, or if the state of the graph changes (e.g.
new nodes are added).
Grouping instance needs to be created.public static boolean isGrouped(Graph graph)
DataProviders registered with the graph with keys
GroupingKeys.GROUP_DPKEY, GroupingKeys.NODE_ID_DPKEY and GroupingKeys.PARENT_NODE_ID_DPKEY.
graph - the input graph
true if the graph contains hierarchic information, false otherwiseisFlat(Graph)public static boolean isFlat(Graph graph)
graph - the input graph
true if there are no groups or only empty groups in the graph, false otherwiseisGrouped(Graph)
public Node getNearestCommonAncestor(Node node1,
Node node2)
The nearest common ancestor is the local root of the smallest subtree in the hierarchy tree that contains both
nodes. This group is the first node that contains these two nodes. If no such node exists, the
virtual root is returned.
node1 == node2: the parent of node1/node2node1 is parent of node2: the parent of node1node2 is parent of node1: the parent of node2
node1 - one of the two nodes whose common ancestor is determinednode2 - one of the two nodes whose common ancestor is determined
getRoot()![]() The nearest common ancestor of the nodes 1 and 2 is group node 5 (grouped graph) | ![]() The nearest common ancestor of the nodes 1 and 2 is group node 5 (hierarchy tree) |
|
© Copyright 2000-2025, yWorks GmbH. All rights reserved. |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||