Constructs a new hierarchical layout algorithm.
Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result. Default is true.
The cell width of any dummy vertices inserted
A cache of edges whose source terminal is the key
A cache of edges whose source terminal is the key
A cache of edges whose source terminal is the key
The style to apply between cell layers to edge segments. Default is HierarchicalEdgeStyle#POLYLINE.
Whether or not to perform local optimisations and iterate multiple times through the algorithm. Default is true.
Reference to the enclosing Graph.
The spacing buffer between unconnected hierarchies. Default is 60.
The spacing buffer added between cell on adjacent layers. Default is 100.
The spacing buffer added between cells on the same layer. Default is 30.
Specifies if the parent location should be maintained, so that the top, left corner stays the same before and after execution of the layout. Default is false for backwards compatibility.
The internal SwimlaneModel formed of the layout.
Specifies if the parent should be moved if
The position of the root node(s) relative to the laid out graph in. Default is Constants#DIRECTION_NORTH.
The distance between each parallel edge on each ranks for long edges. Default is 10.
The parent cell of the layout, if any
The border to be added around the children if the parent is to be
resized using
Specifies if the parent should be resized after the layout so that it
contains all the child cells. Default is false. See also
Holds the array of
Holds the array of
Whether or not to tighten the assigned ranks of vertices up towards the source cells. Default is true.
Whether or not to drill into child cells and layout in reverse group order. This also cause the layout to navigate edges whose terminal vertices have different parents but are in the same ancestry chain. Default is true.
Boolean indicating if the bounding box of the label should be used if it iss available.
Shortcut to Graph#updateGroupBounds with moveGroup set to true.
Executes the crossing stage using mxMedianHybridCrossingReduction.
Executes the cycle stage using mxMinimumCycleRemover.
Returns all visible children in the given parent which do not have incoming edges. If the result is empty then the children with the maximum difference between incoming and outgoing edges are returned. This takes into account edges that are being promoted to the given root due to invisible children or collapsed cells.
Returns the constraint for the given key and cell. The optional edge and source arguments are used to return inbound and outgoing routing- constraints for the given edge and vertex. This implementation always returns the value for the given key in the style of the given cell.
Key of the constraint to be returned.
Cell whose constraint should be returned.
Optional
edge: CellOptional Cell that represents the connection whose constraint should be returned. Default is null.
Optional
source: booleanOptional boolean that specifies if the connection is incoming or outgoing. Default is null.
Returns the internal SwimlaneModel for this layout algorithm.
Returns an Rectangle that defines the bounds of the given cell or the bounding box if useBoundingBox is true.
Returns a boolean indicating if the given Cell should be ignored by the algorithm. This implementation returns false for all vertices.
Returns true if the given cell is a "port", that is, when connecting to it, its parent is the connecting vertex in terms of graph traversal
Returns a boolean indicating if the given Cell should be ignored by the algorithm. This implementation returns false for all vertices.
Returns a boolean indicating if the given Cell is movable or bendable by the algorithm. This implementation returns true if the given cell is movable in the graph.
Executes the placement stage using mxCoordinateAssignment.
The API method used to exercise the layout upon the graph description and produce a separate description of the vertex position and edge routing changes made. It runs each stage of the layout that has been created.
Disables or enables the edge style of the given edge.
Disables or enables orthogonal end segments of the given edge.
Sets the new position of the given cell taking into account the size of the bounding box if useBoundingBox is true. The change is only carried out if the new location is not equal to the existing location, otherwise the geometry is not replaced with an updated instance. The new or old bounds are returned (including overlapping labels).
Traverses the (directed) graph invoking the given function for each visited vertex and edge. The function is invoked with the current vertex and the incoming edge as a parameter. This implementation makes sure each vertex is only visited once. The function may return false if the traversal should stop at the given vertex.
A hierarchical layout algorithm.