Class LayoutVertex

A vertex represents a Node in a LayoutNetwork, along with its bounds and focus and collections of LayoutEdges that come into and go out of the vertex. The node property may be null for vertexes that represent "dummy" nodes, when the layout wants to work with a network that is not isomorphic with the collection of Nodes and Links being laid out.

This holds layout-specific data for the node. For each kind of layout that uses a LayoutNetwork there is a subclass of LayoutVertex and a subclass of LayoutEdge:

Modifying a LayoutNetwork or a LayoutVertex or a LayoutEdge does not invalidate the Layout or raise any changed events.

Constructor Summary Details

Name Description
LayoutVertex()

This constructs a vertex that does not know about any Node.

Properties Summary Details

Name, Value Type Description
bounds
{Rect}

Gets or sets the bounds of this vertex, in document coordinates.More... Setting this property does not directly modify the position of any Node, but it will modify the value of centerX and centerY, as well as the subsidiary convenience properties x, y, width, and height.

centerX
{number}

Gets or sets the center Point.x of this vertex, in document coordinates.More... This property depends on both bounds and focus. Setting this property does not modify the position of any Node, but it will modify the value of bounds.

centerY
{number}

Gets or sets the center Point.y of this vertex, in document coordinates.More... This property depends on both bounds and focus. Setting this property does not modify the position of any Node, but it will modify the value of bounds.

data
{Object} 1.6

Gets or sets the data object in the model that should be associated with this vertex, if any.More... The value will be non-null if this vertex is virtualized, not represented by a real Node in the Diagram. Each data object should have a 'bounds' property that is a Rect or any JavaScript Object with 'x', 'y', 'width', and 'height' properties that are real numbers, and non-negative numbers for the width and the height. Setting this data property will also set the bounds and focus properties.

destinationEdges
{Iterator.}

This read-only property returns an iterator for all of the edges that go out of this vertex.

destinationVertexes
{Iterator.}

This read-only property returns an iterator for all of the vertexes that are connected with edges going out of this vertex.

edges
{Iterator.}

This read-only property returns an iterator for all of the edges that are connected with this vertex in either direction.

edgesCount
{number}

This read-only property returns the total number of edges that are connected with this vertex in either direction.

focus
{Point}

Gets or sets the offset of the focusX and focusY from the bounds position.More... Setting this property does not directly modify the position of any Node, but it does affect the value of centerX and centerY.

The "focus" is normally the center of the Node's Part.locationObject.

focusX
{number}

Gets or sets the relative X position of the "center" point, the focus.

focusY
{number}

Gets or sets the relative Y position of the "center" point, the focus.

height
{number}

Gets or sets the height of this vertex.More... This is always the vertical distance reserved for the node.

network
{N}

Gets or sets the LayoutNetwork that owns this vertex.More... The default value is null. It is set automatically for you in LayoutNetwork.addVertex.

node
{Node}

Gets or sets the Node associated with this vertex, if any.More... The value may be null if this vertex is a "dummy" vertex, not represented by a real Node in the Diagram.

This property setter also sets the bounds and focus properties according to the value of the Node's actualBounds and its Part.locationObject's center point.

sourceEdges
{Iterator.}

This read-only property returns an iterator for all of the edges that come into this vertex.

sourceVertexes
{Iterator.}

This read-only property returns an iterator for all of the vertexes that are connected with edges coming into this vertex.

vertexes
{Iterator.}

This read-only property returns an iterator for all of the vertexes that are connected in either direction with this vertex.

width
{number}

Gets or sets the width of this vertex.More... This is always the horizontal distance reserved for the node.

x
{number}

Gets or sets the left point of this vertex.

y
{number}

Gets or sets the top point of this vertex.

Method Summary Details

Name, Return Type Description
addDestinationEdge(edge)

Adds a LayoutEdge to the list of successors (the edge will be going out from this vertex).More... Calling this method does not modify the LayoutEdge.fromVertex of the LayoutEdge.

Parameters:
{E} edge
addSourceEdge(edge)

Adds a LayoutEdge to the list of predecessors (the edge will be coming into this vertex).More... Calling this method does not modify the LayoutEdge.toVertex of the LayoutEdge.

Parameters:
{E} edge
commit()

Moves the Node corresponding to this vertex so that its position is at the current bounds point.More...

To make the most common cases look right, the Node's Part.locationObject is centered. Thus iconic nodes will have the center of the icon be positioned according to the center of this vertex, ignoring any labels. Please read the Introduction page on Extensions for how to override methods and how to call this base method.

deleteDestinationEdge(edge)

Deletes a LayoutEdge from the list of successors (the edge was going out from this vertex).More... Calling this method does not modify the LayoutEdge.fromVertex of the LayoutEdge.

Parameters:
{E} edge
deleteSourceEdge(edge)

Deletes a LayoutEdge from the list of predecessors (the edge was coming into this vertex).More... Calling this method does not modify the LayoutEdge.toVertex of the LayoutEdge.

Parameters:
{E} edge
<static>
LayoutVertex.smartComparer(m, n)
{number}

This static function is used to compare the Part.text values of the nodes of the argument LayoutVertexes.More... If the text ends in a number, the values are compared as numbers rather than lexicographically. Naturally this comparison is significantly slower than LayoutVertex.standardComparer.

Parameters:
{LayoutVertex} m
{LayoutVertex} n
Returns:
{number} int -1, 0, or 1, depending on whether the comparison between M and N is less than, equal, or greater than.
<static>
LayoutVertex.standardComparer(m, n)
{number}

This static function is used to compare the Part.text values of the nodes of the argument LayoutVertexes.More... This just does a simple case-sensitive string comparison. Alternatively you may wish to use LayoutVertex.smartComparer or write your own comparison function.

Parameters:
{LayoutVertex} m
{LayoutVertex} n
Returns:
{number} int -1, 0, or 1, depending on whether the comparison between M and N is less than, equal, or greater than.