public class mxGraphHierarchyModel extends Object
| Modifier and Type | Class and 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 and Description |
|---|---|
protected int |
dfsCount
Count of the number of times the ancestor dfs has been used
|
protected Map<Object,mxGraphHierarchyEdge> |
edgeMapper
Map from graph edges to internal model edges
|
int |
maxRank
Stores the largest rank number allocated
|
Object |
parent
The parent cell whose children are being laid out
|
Map<Integer,mxGraphHierarchyRank> |
ranks
Mapping from rank number to actual rank
|
List<Object> |
roots
Store of roots of this hierarchy model, these are real graph cells, not
internal cells
|
protected Map<Object,mxGraphHierarchyNode> |
vertexMapper
Map from graph vertices to internal model nodes
|
| Constructor and Description |
|---|
mxGraphHierarchyModel(mxHierarchicalLayout layout,
Object[] vertices,
List<Object> roots,
Object parent)
Creates an internal ordered graph model using the vertices passed in.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
createInternalCells(mxHierarchicalLayout layout,
Object[] vertices,
mxGraphHierarchyNode[] internalVertices)
Creates all edges in the internal model
|
void |
dfs(mxGraphHierarchyNode parent,
mxGraphHierarchyNode root,
mxGraphHierarchyEdge connectingEdge,
mxGraphHierarchyModel.CellVisitor visitor,
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,
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() |
Map<Object,mxGraphHierarchyEdge> |
getEdgeMapper() |
Map<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(Map<Object,mxGraphHierarchyEdge> edgeMapper) |
void |
setVertexMapper(Map<Object,mxGraphHierarchyNode> vertexMapping) |
void |
visit(mxGraphHierarchyModel.CellVisitor visitor,
mxGraphHierarchyNode[] dfsRoots,
boolean trackAncestors,
Set<mxGraphHierarchyNode> seenNodes)
A depth first search through the internal hierarchy model
|
public int maxRank
protected Map<Object,mxGraphHierarchyNode> vertexMapper
protected Map<Object,mxGraphHierarchyEdge> edgeMapper
public Map<Integer,mxGraphHierarchyRank> ranks
public List<Object> roots
public Object parent
protected int dfsCount
public mxGraphHierarchyModel(mxHierarchicalLayout layout, Object[] vertices, List<Object> roots, Object parent)
layout - the enclosing layout objectvertices - the vertices for this hierarchyprotected void createInternalCells(mxHierarchicalLayout layout, 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, 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, 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, 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 Map<Object,mxGraphHierarchyNode> getVertexMapper()
public void setVertexMapper(Map<Object,mxGraphHierarchyNode> vertexMapping)
vertexMapping - The vertexMapping to set.public Map<Object,mxGraphHierarchyEdge> getEdgeMapper()
public void setEdgeMapper(Map<Object,mxGraphHierarchyEdge> edgeMapper)
edgeMapper - The edgeMapper to set.public int getDfsCount()
public void setDfsCount(int dfsCount)
dfsCount - The dfsCount to set.Copyright (c) 2010 Gaudenz Alder. All rights reserved.