Class TreeModel
Extends Model. TreeModels support tree-structured graphs of nodes and links. Each node can have at most one "tree parent"; cycles are not permitted. The reference to the parent node's key is a property of the child node data.
TreeModels, unlike GraphLinksModels, do not support arbitrary link relationships between nodes, nor is there a separate link data object for each parent-child relationship. Furthermore there is no support for grouping or label nodes.
The nodeParentKeyProperty property names the property on the node data whose value is the key of the "tree parent" node. The default value for this property is "parent".
For example, one can define a graph consisting of one parent node with two child nodes:
model.nodeDataArray = [ { key: "Alpha" }, { key: "Beta", parent: "Alpha" }, { key: "Gamma", parent: "Alpha" } ];
If you need to show a more complicated graph structure than a tree, use a GraphLinksModel. If you want to have multiple links between the same pair of nodes, or if you want to associate more information with each link and cannot put the information on the child node, you will need to have a separate link data object for each link, and that would require the use of GraphLinksModel.
Constructor Summary Details
Returns | Name | Description |
---|---|---|
TreeModel(nodedataarray)
|
This constructs an empty TreeModel unless one provides arguments as the initial data array values
for the Model.nodeDataArray property. More...
|
Properties Summary Details
Returns | Name | Description |
---|---|---|
{string|function(Object,(string|number)=):(string|number)}
|
nodeParentKeyProperty
|
Gets or sets the name of the property on node data that specifies
the string or number key of the node data that acts as the "parent" for this "child" node data,
or a function that takes a node data object and returns that parent key;
the default value is the name 'parent'. More...
The value must not be null nor an empty string.
See also:
|
{string|function(Object,string=):string}
|
parentLinkCategoryProperty
|
Gets or sets the name of the data property that returns a string describing that node data's parent link's category,
or a function that takes a node data object and returns its parent link's category string;
the default value is the name 'parentLinkCategory'. More...
This is used by the diagram to distinguish between different kinds of links.
The name must not be null.
If the value is an empty string,
getParentLinkCategoryForNodeData will return an empty string for all node data objects.
See also:
|
- Properties borrowed from class Model:
- copiesArrayObjects, copiesArrays, copyNodeDataFunction, dataFormat, isReadOnly, makeUniqueKeyFunction, modelData, name, nodeCategoryProperty, nodeDataArray, nodeKeyProperty, skipsUndoManager, undoManager
Method Summary Details
Returns | Name | Description |
---|---|---|
{Object}
|
copyNodeData(nodedata)
|
This override also makes sure any copied node data does not have a reference to a parent node. More...
See also:
|
{string|number|undefined}
|
getParentKeyForNodeData(nodedata)
|
If there is a parent node for the given node data, return the parent's key. More...
See also:
|
{string}
|
getParentLinkCategoryForNodeData(childdata)
|
|
setDataProperty(data, propname, val)
|
This override changes the value of some property of a node data or an item data, given a string naming the property
and the new value, in a manner that can be undone/redone and that automatically updates any bindings. More...
This gets the old value of the property; if the value is the same as the new value, no side-effects occur. See also:
|
|
setParentKeyForNodeData(nodedata, key)
|
Change the parent node for the given node data, given a key for the new parent, or undefined if there should be no parent. More...
See also:
|
|
setParentLinkCategoryForNodeData(childdata, cat)
|
Change the category for the parent link of a given child node data, a string naming the link template
that the Diagram should use to represent the link. More...
Changing the link template will cause any existing Link to be removed from the Diagram and replaced with a new Link created by copying the new link template and applying any data-bindings. See also:
|
- Methods borrowed from class Model:
- addArrayItem, addChangedListener, addNodeData, addNodeDataCollection, clear, commitTransaction, containsNodeData, findNodeDataForKey, getCategoryForNodeData, getKeyForNodeData, insertArrayItem, makeNodeDataKeyUnique, raiseChangedEvent, raiseDataChanged, removeArrayItem, removeChangedListener, removeNodeData, removeNodeDataCollection, rollbackTransaction, setCategoryForNodeData, setKeyForNodeData, startTransaction, toJson, updateTargetBindings