TreeViewController class
Defines the controller needed to display the TreeView.
Used by TreeView to display the nodes and selected node.
This class also defines methods used to manipulate data in the TreeView. The methods (addNode, updateNode, and deleteNode) are non-mutilating, meaning they will not modify the tree but instead they will return a mutilated copy of the data. You can then use your own logic to appropriately update the TreeView. e.g.
TreeViewController controller = TreeViewController(children: nodes);
Node node = controller.getNode('unique_key')!;
Node updatedNode = node.copyWith(
key: 'another_unique_key',
label: 'Another Node',
);
List<Node> newChildren = controller.updateNode(node.key, updatedNode);
controller = TreeViewController(children: newChildren);
Constructors
-
TreeViewController({List<
Node> children = const [], String? selectedKey})
Properties
-
asMap
→ List<
Map< String, dynamic> > -
Map representation of this object
no setter
-
children
→ List<
Node> -
The data for the TreeView.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- selectedKey → String?
-
The key of the select node in the TreeView.
final
- selectedNode → Node?
-
Get the current selected node. Returns null if there is no selectedKey
no setter
Methods
-
addNode<
T> (String key, Node< T> newNode, {Node? parent, int? index, InsertMode mode = InsertMode.append}) → List<Node> - Adds a new node to an existing node identified by specified key. It optionally accepts an InsertMode and index. If no InsertMode is specified, it appends the new node as a child at the end. This method returns a new list with the added node.
-
collapseAll(
{Node? parent}) → List< Node> - Collapses all node that are children of the parent node parameter. If no parent is passed, uses the root node as the parent.
-
collapseToNode(
String key) → List< Node> - Collapses a node and all of the node's ancestors without the need to manually collapse each node.
-
copyWith<
T> ({List< Node< ? children, String? selectedKey}) → TreeViewControllerT> > - Creates a copy of this controller but with the given fields replaced with the new values.
-
deleteNode<
T> (String key, {Node? parent}) → List< Node> - Deletes an existing node identified by specified key. This method returns a new list with the specified node removed.
-
expandAll(
{Node? parent}) → List< Node> - Expands all node that are children of the parent node parameter. If no parent is passed, uses the root node as the parent.
-
expandToNode(
String key) → List< Node> - Expands a node and all of the node's ancestors so that the node is visible without the need to manually expand each node.
-
getNode<
T> (String key, {Node? parent}) → Node< T> ? - Gets the node that has a key value equal to the specified key.
-
getParent<
T> (String key, {Node? parent}) → Node< T> ? - Gets the parent of the node identified by specified key.
-
loadJSON<
T> ({String json = '[]'}) → TreeViewController - Loads this controller with data from a JSON String This method expects the user to properly update the state
-
loadMap<
T> ({List< Map< list = const []}) → TreeViewControllerString, dynamic> > - Loads this controller with data from a Map. This method expects the user to properly update the state
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toggleNode<
T> (String key, {Node? parent}) → List< Node> - Toggles an existing node identified by specified key. This method returns a new list with the specified node toggled.
-
toString(
) → String -
A string representation of this object.
override
-
updateNode<
T> (String key, Node< T> newNode, {Node? parent}) → List<Node> - Updates an existing node identified by specified key. This method returns a new list with the updated node.
-
withAddNode<
T> (String key, Node< T> newNode, {Node? parent, int? index, InsertMode mode = InsertMode.append}) → TreeViewController - Adds a new node to an existing node identified by specified key. It returns a new controller with the new node added. This method expects the user to properly place this call so that the state is updated.
-
withCollapseAll(
{Node? parent}) → TreeViewController - Collapses all nodes down to parent Node. It returns a new controller with the nodes collapsed. This method expects the user to properly place this call so that the state is updated.
-
withCollapseToNode(
String key) → TreeViewController - Collapses all nodes down to Node identified by specified key. It returns a new controller with the nodes collapsed. This method expects the user to properly place this call so that the state is updated.
-
withDeleteNode<
T> (String key, {Node? parent}) → TreeViewController - Removes an existing node identified by specified key. It returns a new controller with the node removed. This method expects the user to properly place this call so that the state is updated.
-
withExpandAll(
{Node? parent}) → TreeViewController - Expands all nodes down to parent Node. It returns a new controller with the nodes expanded. This method expects the user to properly place this call so that the state is updated.
-
withExpandToNode(
String key) → TreeViewController - Expands all nodes down to Node identified by specified key. It returns a new controller with the nodes expanded. This method expects the user to properly place this call so that the state is updated.
-
withToggleNode<
T> (String key, {Node? parent}) → TreeViewController - Toggles the expanded property of an existing node identified by specified key. It returns a new controller with the node toggled. This method expects the user to properly place this call so that the state is updated.
-
withUpdateNode<
T> (String key, Node< T> newNode, {Node? parent}) → TreeViewController - Replaces an existing node identified by specified key with a new node. It returns a new controller with the updated node replaced. This method expects the user to properly place this call so that the state is updated.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited