public class mxGraphHierarchyModel
extends java.lang.Object
Modifier and Type | Class | Description |
---|---|---|
static interface |
mxGraphHierarchyModel.CellVisitor |
Defines the interface that visitors use to perform operations upon the
graph information during depth first search (dfs) or other tree-traversal
strategies implemented by subclassers.
|
Modifier and Type | Field | Description |
---|---|---|
protected int |
dfsCount |
Count of the number of times the ancestor dfs has been used
|
protected java.util.Map<java.lang.Object,mxGraphHierarchyEdge> |
edgeMapper |
Map from graph edges to internal model edges
|
int |
maxRank |
Stores the largest rank number allocated
|
java.lang.Object |
parent |
The parent cell whose children are being laid out
|
java.util.Map<java.lang.Integer,mxGraphHierarchyRank> |
ranks |
Mapping from rank number to actual rank
|
java.util.List<java.lang.Object> |
roots |
Store of roots of this hierarchy model, these are real graph cells, not
internal cells
|
protected java.util.Map<java.lang.Object,mxGraphHierarchyNode> |
vertexMapper |
Map from graph vertices to internal model nodes
|
Constructor | Description |
---|---|
mxGraphHierarchyModel(mxHierarchicalLayout layout,
java.lang.Object[] vertices,
java.util.List<java.lang.Object> roots,
java.lang.Object parent) |
Creates an internal ordered graph model using the vertices passed in.
|
Modifier and Type | Method | Description |
---|---|---|
protected void |
createInternalCells(mxHierarchicalLayout layout,
java.lang.Object[] vertices,
mxGraphHierarchyNode[] internalVertices) |
Creates all edges in the internal model
|
void |
dfs(mxGraphHierarchyNode parent,
mxGraphHierarchyNode root,
mxGraphHierarchyEdge connectingEdge,
mxGraphHierarchyModel.CellVisitor visitor,
java.util.Set<mxGraphHierarchyNode> seen,
int layer) |
Performs a depth first search on the internal hierarchy model
|
void |
dfs(mxGraphHierarchyNode parent,
mxGraphHierarchyNode root,
mxGraphHierarchyEdge connectingEdge,
mxGraphHierarchyModel.CellVisitor visitor,
java.util.Set<mxGraphHierarchyNode> seen,
int[] ancestors,
int childHash,
int layer) |
Performs a depth first search on the internal hierarchy model.
|
void |
fixRanks() |
Fixes the layer assignments to the values stored in the nodes.
|
int |
getDfsCount() |
|
java.util.Map<java.lang.Object,mxGraphHierarchyEdge> |
getEdgeMapper() |
|
java.util.Map<java.lang.Object,mxGraphHierarchyNode> |
getVertexMapper() |
|
void |
initialRank() |
Basic determination of minimum layer ranking by working from from sources
or sinks and working through each node in the relevant edge direction.
|
void |
setDfsCount(int dfsCount) |
|
void |
setEdgeMapper(java.util.Map<java.lang.Object,mxGraphHierarchyEdge> edgeMapper) |
|
void |
setVertexMapper(java.util.Map<java.lang.Object,mxGraphHierarchyNode> vertexMapping) |
|
void |
visit(mxGraphHierarchyModel.CellVisitor visitor,
mxGraphHierarchyNode[] dfsRoots,
boolean trackAncestors,
java.util.Set<mxGraphHierarchyNode> seenNodes) |
A depth first search through the internal hierarchy model
|
public int maxRank
protected java.util.Map<java.lang.Object,mxGraphHierarchyNode> vertexMapper
protected java.util.Map<java.lang.Object,mxGraphHierarchyEdge> edgeMapper
public java.util.Map<java.lang.Integer,mxGraphHierarchyRank> ranks
public java.util.List<java.lang.Object> roots
public java.lang.Object parent
protected int dfsCount
public mxGraphHierarchyModel(mxHierarchicalLayout layout, java.lang.Object[] vertices, java.util.List<java.lang.Object> roots, java.lang.Object parent)
layout
- the enclosing layout objectvertices
- the vertices for this hierarchyprotected void createInternalCells(mxHierarchicalLayout layout, java.lang.Object[] vertices, mxGraphHierarchyNode[] internalVertices)
layout
- reference to the layout algorithmvertices
- the vertices whom are to have an internal representation
createdinternalVertices
- the blank internal vertices to have their information filled
in using the real verticespublic void initialRank()
public void fixRanks()
public void visit(mxGraphHierarchyModel.CellVisitor visitor, mxGraphHierarchyNode[] dfsRoots, boolean trackAncestors, java.util.Set<mxGraphHierarchyNode> seenNodes)
visitor
- the visitor pattern to be called for each nodetrackAncestors
- whether or not the search is to keep track all nodes directly
above this one in the search pathpublic void dfs(mxGraphHierarchyNode parent, mxGraphHierarchyNode root, mxGraphHierarchyEdge connectingEdge, mxGraphHierarchyModel.CellVisitor visitor, java.util.Set<mxGraphHierarchyNode> seen, int layer)
parent
- the parent internal node of the current internal noderoot
- the current internal nodeconnectingEdge
- the internal edge connecting the internal node and the parent
internal node, if anyvisitor
- the visitor pattern to be called for each nodeseen
- a set of all nodes seen by this dfs a set of all of the
ancestor node of the current nodelayer
- the layer on the dfs tree ( not the same as the model ranks )public void dfs(mxGraphHierarchyNode parent, mxGraphHierarchyNode root, mxGraphHierarchyEdge connectingEdge, mxGraphHierarchyModel.CellVisitor visitor, java.util.Set<mxGraphHierarchyNode> seen, int[] ancestors, int childHash, int layer)
parent
- the parent internal node of the current internal noderoot
- the current internal nodeconnectingEdge
- the internal edge connecting the internal node and the parent
internal node, if anyvisitor
- the visitor pattern to be called for each nodeseen
- a set of all nodes seen by this dfsancestors
- the parent hash codechildHash
- the new hash code for this nodelayer
- the layer on the dfs tree ( not the same as the model ranks )public java.util.Map<java.lang.Object,mxGraphHierarchyNode> getVertexMapper()
public void setVertexMapper(java.util.Map<java.lang.Object,mxGraphHierarchyNode> vertexMapping)
vertexMapping
- The vertexMapping to set.public java.util.Map<java.lang.Object,mxGraphHierarchyEdge> getEdgeMapper()
public void setEdgeMapper(java.util.Map<java.lang.Object,mxGraphHierarchyEdge> edgeMapper)
edgeMapper
- The edgeMapper to set.public int getDfsCount()
public void setDfsCount(int dfsCount)
dfsCount
- The dfsCount to set.Copyright (c) 2010-2017 Gaudenz Alder, JGraph Ltd. All rights reserved.