mxGraphLayout

Base class for all layout algorithms in mxGraph.  Main public functions are <move> for handling a moved cell within a layouted parent, and execute for running the layout on a given parent cell.

Known Subclasses

mxCircleLayout, mxCompactTreeLayout, mxCompositeLayout, mxFastOrganicLayout, mxParallelEdgeLayout, mxPartitionLayout, mxStackLayout

Summary
mxGraphLayoutBase class for all layout algorithms in mxGraph.
Functions
mxGraphLayoutConstructs a new layout using the given layouts.
Variables
graphReference to the enclosing mxGraph.
useBoundingBoxBoolean indicating if the bounding box of the label should be used if its available.
parentThe parent cell of the layout, if any
Functions
moveCellNotified when a cell is being moved in a parent that has automatic layout to update the cell state (eg.
executeExecutes the layout algorithm for the children of the given parent.
getGraphReturns the graph that this layout operates on.
getConstraintReturns the constraint for the given key and cell.
traverseTraverses the (directed) graph invoking the given function for each visited vertex and edge.
isVertexMovableReturns a boolean indicating if the given mxCell is movable or bendable by the algorithm.
isVertexIgnoredReturns a boolean indicating if the given mxCell should be ignored by the algorithm.
isEdgeIgnoredReturns a boolean indicating if the given mxCell should be ignored by the algorithm.
setEdgeStyleEnabledDisables or enables the edge style of the given edge.
setOrthogonalEdgeDisables or enables orthogonal end segments of the given edge.
getParentOffsetDetermines the offset of the given parent to the parent of the layout
setEdgePointsReplaces the array of mxPoints in the geometry of the given edge with the given array of mxPoints.
setVertexLocationSets the new position of the given cell taking into account the size of the bounding box if useBoundingBox is true.
getVertexBoundsReturns an mxRectangle that defines the bounds of the given cell or the bounding box if useBoundingBox is true.
arrangeGroupsUpdates the bounds of the given groups to include all children.

Functions

mxGraphLayout

function mxGraphLayout(graph)

Constructs a new layout using the given layouts.

Arguments

graphEnclosing

Variables

graph

mxGraphLayout.prototype.graph

Reference to the enclosing mxGraph.

useBoundingBox

mxGraphLayout.prototype.useBoundingBox

Boolean indicating if the bounding box of the label should be used if its available.  Default is true.

parent

mxGraphLayout.prototype.parent

The parent cell of the layout, if any

Functions

moveCell

mxGraphLayout.prototype.moveCell = function(cell,
x,
y)

Notified when a cell is being moved in a parent that has automatic layout to update the cell state (eg. index) so that the outcome of the layout will position the vertex as close to the point (x, y) as possible.

Empty implementation.

Parameters

cellmxCell which has been moved.
xX-coordinate of the new cell location.
yY-coordinate of the new cell location.

execute

mxGraphLayout.prototype.execute = function(parent)

Executes the layout algorithm for the children of the given parent.

Parameters

parentmxCell whose children should be layed out.

getGraph

mxGraphLayout.prototype.getGraph = function()

Returns the graph that this layout operates on.

getConstraint

mxGraphLayout.prototype.getConstraint = function(key,
cell,
edge,
source)

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.

Parameters

keyKey of the constraint to be returned.
cellmxCell whose constraint should be returned.
edgeOptional mxCell that represents the connection whose constraint should be returned.  Default is null.
sourceOptional boolean that specifies if the connection is incoming or outgoing.  Default is null.

traverse

mxGraphLayout.traverse = function(vertex,
directed,
func,
edge,
visited)

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.

Example

mxLog.show();
var cell = graph.getSelectionCell();
graph.traverse(cell, false, function(vertex, edge)
{
  mxLog.debug(graph.getLabel(vertex));
});

Parameters

vertexmxCell that represents the vertex where the traversal starts.
directedOptional boolean indicating if edges should only be traversed from source to target.  Default is true.
funcVisitor function that takes the current vertex and the incoming edge as arguments.  The traversal stops if the function returns false.
edgeOptional mxCell that represents the incoming edge.  This is null for the first step of the traversal.
visitedOptional array of cell paths for the visited cells.

isVertexMovable

mxGraphLayout.prototype.isVertexMovable = function(cell)

Returns a boolean indicating if the given mxCell is movable or bendable by the algorithm.  This implementation returns true if the given cell is movable in the graph.

Parameters

cellmxCell whose movable state should be returned.

isVertexIgnored

mxGraphLayout.prototype.isVertexIgnored = function(vertex)

Returns a boolean indicating if the given mxCell should be ignored by the algorithm.  This implementation returns false for all vertices.

Parameters

vertexmxCell whose ignored state should be returned.

isEdgeIgnored

mxGraphLayout.prototype.isEdgeIgnored = function(edge)

Returns a boolean indicating if the given mxCell should be ignored by the algorithm.  This implementation returns false for all vertices.

Parameters

cellmxCell whose ignored state should be returned.

setEdgeStyleEnabled

mxGraphLayout.prototype.setEdgeStyleEnabled = function(edge,
value)

Disables or enables the edge style of the given edge.

setOrthogonalEdge

mxGraphLayout.prototype.setOrthogonalEdge = function(edge,
value)

Disables or enables orthogonal end segments of the given edge.

getParentOffset

mxGraphLayout.prototype.getParentOffset = function(parent)

Determines the offset of the given parent to the parent of the layout

setEdgePoints

mxGraphLayout.prototype.setEdgePoints = function(edge,
points)

Replaces the array of mxPoints in the geometry of the given edge with the given array of mxPoints.

setVertexLocation

mxGraphLayout.prototype.setVertexLocation = function(cell,
x,
y)

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).

Parameters

cellmxCell whose geometry is to be set.
xInteger that defines the x-coordinate of the new location.
yInteger that defines the y-coordinate of the new location.

getVertexBounds

mxGraphLayout.prototype.getVertexBounds = function(cell)

Returns an mxRectangle that defines the bounds of the given cell or the bounding box if useBoundingBox is true.

arrangeGroups

mxGraphLayout.prototype.arrangeGroups = function(groups,
border)

Updates the bounds of the given groups to include all children.  Call this with the groups in parent to child order, top-most group first, eg.

arrangeGroups(graph, mxUtils.sortCells(Arrays.asList( new Object[] { v1, v3 }), true).toArray(), 10);

function mxGraphLayout(graph)
Constructs a new layout using the given layouts.
mxGraphLayout.prototype.graph
Reference to the enclosing mxGraph.
Extends mxEventSource to implement a graph component for the browser.
mxGraphLayout.prototype.useBoundingBox
Boolean indicating if the bounding box of the label should be used if its available.
mxGraphLayout.prototype.parent
The parent cell of the layout, if any
mxGraphLayout.prototype.moveCell = function(cell,
x,
y)
Notified when a cell is being moved in a parent that has automatic layout to update the cell state (eg.
mxGraphLayout.prototype.execute = function(parent)
Executes the layout algorithm for the children of the given parent.
mxGraphLayout.prototype.getGraph = function()
Returns the graph that this layout operates on.
mxGraphLayout.prototype.getConstraint = function(key,
cell,
edge,
source)
Returns the constraint for the given key and cell.
mxGraphLayout.traverse = function(vertex,
directed,
func,
edge,
visited)
Traverses the (directed) graph invoking the given function for each visited vertex and edge.
mxGraphLayout.prototype.isVertexMovable = function(cell)
Returns a boolean indicating if the given mxCell is movable or bendable by the algorithm.
Cells are the elements of the graph model.
mxGraphLayout.prototype.isVertexIgnored = function(vertex)
Returns a boolean indicating if the given mxCell should be ignored by the algorithm.
mxGraphLayout.prototype.isEdgeIgnored = function(edge)
Returns a boolean indicating if the given mxCell should be ignored by the algorithm.
mxGraphLayout.prototype.setEdgeStyleEnabled = function(edge,
value)
Disables or enables the edge style of the given edge.
mxGraphLayout.prototype.setOrthogonalEdge = function(edge,
value)
Disables or enables orthogonal end segments of the given edge.
mxGraphLayout.prototype.getParentOffset = function(parent)
Determines the offset of the given parent to the parent of the layout
mxGraphLayout.prototype.setEdgePoints = function(edge,
points)
Replaces the array of mxPoints in the geometry of the given edge with the given array of mxPoints.
mxGraphLayout.prototype.setVertexLocation = function(cell,
x,
y)
Sets the new position of the given cell taking into account the size of the bounding box if useBoundingBox is true.
mxGraphLayout.prototype.getVertexBounds = function(cell)
Returns an mxRectangle that defines the bounds of the given cell or the bounding box if useBoundingBox is true.
Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.
mxGraphLayout.prototype.arrangeGroups = function(groups,
border)
Updates the bounds of the given groups to include all children.
Extends mxGraphLayout to implement a circluar layout for a given radius.
Extends mxGraphLayout to implement a compact tree (Moen) algorithm.
Allows to compose multiple layouts into a single layout.
Extends mxGraphLayout to implement a fast organic layout algorithm.
Extends mxGraphLayout for arranging parallel edges.
Extends mxGraphLayout for partitioning the parent cell vertically or horizontally by filling the complete area with the child cells.
Extends mxGraphLayout to create a horizontal or vertical stack of the child vertices.
Close