Class LayoutNetwork
This provides an abstract view of a diagram as anetwork (graph) of vertexes and directed edges.The network contains vertexes and edges corresponding to Nodes and Links.
This class provides a framework for manipulating thestate of nodes and links without modifying the structure of the diagram.Having a separate representation also permits adding or removing vertexes or edgesfrom the network so that the graph that is laid out is not isomorphic to the diagram's graph.
For each kind of layout that uses a LayoutNetwork there is a subclass of LayoutVertex and a subclass of LayoutEdge:
- CircularLayout: CircularVertex and CircularEdge
- ForceDirectedLayout: ForceDirectedVertex and ForceDirectedEdge
- LayeredDigraphLayout: LayeredDigraphVertex and LayeredDigraphEdge
- TreeLayout: TreeVertex and TreeEdge
Modifying a LayoutNetwork or a LayoutVertex or a LayoutEdge does notinvalidate the Layout or raise any changed events.
Constructor Summary Details
Name | Description |
---|---|
LayoutNetwork()
|
Properties Summary Details
Name, Value Type | Description |
---|---|
edges
{Set.
|
Gets a collection of all of the LayoutEdges in this network.More... Do not modify this collection directly.Instead, call addEdge, deleteEdge, addLink, or deleteLink. |
layout
{Y}
|
Gets the Layout that uses this networkof LayoutVertexes and LayoutEdges.More... The default value is null.It is set automatically for you when this setting Layout.network. |
vertexes
{Set.
|
Gets a collection of all of the LayoutVertexes in this network.More... Do not modify this collection directly.Instead, call addVertex, deleteVertex, addNode, or deleteNode. |
Method Summary Details
Name, Return Type | Description |
---|---|
addEdge(edge)
|
Adds a LayoutEdge to the network.More... Although this method is provided for completeness,linkVertexes provides a more efficient manner of linkingvertexes already in the network.
|
addLink(link)
{E}
|
This convenience method makes sure there is a LayoutEdgein this network corresponding to a Link.More... If findEdge returns null, this method creates a new LayoutEdge,makes sure the Link.fromNode and Link.toNode havecorresponding LayoutVertexes in the network, and adds the edge itselfto the network.
|
addNode(node)
{V}
|
This convenience method makes sure there is a LayoutVertexin this network corresponding to a Node.More...
|
addParts(parts, toplevelonly, pred)
|
Creates a network of LayoutVertexes and LayoutEdgescorresponding to the given Nodes and Links.More... This is usually more convenient than repeatedly calling addNode and addLink.This method ignores all instances of Parts that are not Nodes or Links.This will recurse through Groups that have no Group.layout.
|
addVertex(vertex)
|
Adds a LayoutVertex to the network.More...
|
createEdge()
{E}
|
Allocate a new instance of LayoutEdge.More... This is overridden in LayoutNetwork subclasses to create instances of subclasses of LayoutEdge.Please read the Introduction page on Extensions for how to override methods and how to call this base method.
|
createVertex()
{V}
|
Allocate a new instance of LayoutVertex.More... This is overridden in LayoutNetwork subclasses to create instances of subclasses of LayoutVertex.Please read the Introduction page on Extensions for how to override methods and how to call this base method.
|
deleteArtificialVertexes()
|
Deletes all vertexes and edges that have no Part associated with them. |
deleteEdge(edge)
|
Removes a LayoutEdge from the network.More...
|
deleteLink(link)
|
This convenience method deletes from this network any LayoutEdgecorresponding to a Link.More...
|
deleteNode(node)
|
This convenience method deletes any LayoutVertexcorresponding to a Node.More...
|
deleteSelfEdges()
|
Deletes all LayoutEdges whose "to vertex" and "from vertex" are the same vertex. |
deleteVertex(vertex)
|
Removes a LayoutVertex from the network.More... This function also deletes all edges to or from the vertex.
|
findAllParts()
{Set.
|
Retrieve all of the Nodes and Links from theLayoutVertexes and LayoutEdges that are in this network.
|
findEdge(link)
{E}
|
Returns the LayoutEdge that was constructed for the Link.More...
|
findVertex(node)
{V}
|
Returns the LayoutVertex that was constructed for the Node.More...
|
linkVertexes(fromVertex, toVertex, link)
{E}
|
Links two vertexes already in the network and returns the created LayoutEdge.More...
|
reverseEdge(edge)
|
Reverses the direction of a LayoutEdge in the network.More...
|
splitIntoSubNetworks()
{List.
|
Modify this network by splitting it up into separate subnetworks,each of which has all of its vertexes connected to each other, but notto any vertexes in any other subnetworks.More... This method will first delete from this network all artificial vertexes andall edges that do not connect two different vertexes.Afterwards, this original network may be empty or may contain all of thesingleton vertexes, each of which had no edges connecting it to any other vertexes.
|