TreeModel Default model to use with FvTree component.
Implements fvaswing.components.FvTreeModel interface.
Based on on AsWing DefaultTreeModel implementation.
public function setSortingProcess(process:Function, options:Number):VoidDefines sorting process to use when childnodes are automatically reorder.
process | Sorting function |
options | Sorting options |
public function setAsksAllowsChildren(newValue:Boolean):VoidSets whether or not to test leafness by asking getAllowsChildren() or isLeaf() to the TreeNodes. If newvalue is true, getAllowsChildren() is messaged, otherwise isLeaf() is messaged.
public function asksAllowsChildren():BooleanTells how leaf nodes are determined.
true if only nodes which do not allow children are leaf nodes, false if nodes which have no children (even if allowed) are leaf nodes
public function setRoot(root:TreeNode):Void
Sets the root to root.
A null root implies the tree is to display
nothing, and is legal.
public function getRoot():ObjectReturns the root of the tree. Returns null only if the tree has no nodes.
the root of the tree
public function getIndexOfChild(parent:Object, child:Object):Number
Returns the index of child in parent.
If either the parent or child is null, returns -1.
parent | a note in the tree, obtained from this data source |
child | the node we are interested in |
the index of the child in the parent, or -1
if either the parent or the child is null
public function getChild(parent:Object, index:Number):ObjectReturns the child of parent at index index in the parent's child array. parent must be a node previously obtained from this data source. This should not return null if index is a valid index for parent (that is index >= 0 && index < getChildCount(parent)).
parent | a node in the tree, obtained from this data source |
the child of parent at index index
public function getChildCount(parent:Object):NumberReturns the number of children of parent. Returns 0 if the node is a leaf or if it has no children. parent must be a node previously obtained from this data source.
parent | a node in the tree, obtained from this data source |
the number of children of the node parent
public function isLeaf(node:Object):BooleanReturns whether the specified node is a leaf node.
node | the node to check |
true if the node is a leaf node
public function valueForPathChanged(path:TreePath, newValue:Object):VoidThis sets the user object of the TreeNode identified by path and posts a node changed.
If you use custom user objects in the TreeModel you're going to need to subclass this and set the user object of the changed node to something meaningful.
public function insertNodeInto(newChild:MutableTreeNode, parent:MutableTreeNode, index:Number):VoidInvoked this to insert newChild at location index in parents children.
This will then message nodesWereInserted to create the appropriate event.
This is the preferred way to add children as it will create the appropriate event.
public function removeNodeFromParent(node:MutableTreeNode):VoidMessage this to remove node from its parent. This will message nodesWereRemoved to create the appropriate event. This is the preferred way to remove a node as it handles the event creation for you.
public function nodeChanged(node:TreeNode):VoidInvoke this method after you've changed how node is to be represented in the tree.
public function reload(node:TreeNode):Void
Invoke this method if you've modified the TreeNodes upon which this
model depends. The model will notify all of its listeners that the
model has changed below the node node (PENDING).
node | (optional). Default is root. |
public function setAutoSortingEnabled(b:Boolean):VoidSets if childnodes are automatically reorder ( sort ).
public function getAutoSortingEnabled():Boolean
Returns true if auto sorting is enabled.
public function sort():VoidSorts full tree childnodes.
Use
FvTree keep expandable tree state.
public function nodesWereInserted(node:TreeNode, childIndices:Array):VoidInvoke this method after you've inserted some TreeNodes into node. childIndices should be the index of the new elements and must be sorted in ascending order.
public function nodesWereRemoved(node:TreeNode, childIndices:Array, removedChildren:Array):VoidInvoke this method after you've removed some TreeNodes from node. childIndices should be the index of the removed elements and must be sorted in ascending order. And removedChildren should be the array of the children objects that were removed.
public function nodesChanged(node:TreeNode, childIndices:Array):VoidInvoke this method after you've changed how the children identified by childIndicies are to be represented in the tree.
public function nodeStructureChanged(node:TreeNode):VoidInvoke this method if you've totally changed the children of node and its childrens children.
This will post a treeStructureChanged event.
public function addTreeModelListener(listener:TreeModelListener):Void
Addspassed-in listener listener for the TreeModelEvent posted after the tree changes.
listener | the listener to add |