TreeController<T extends Object> constructor
TreeController<T extends Object> ({
- required Iterable<
T> roots, - required ChildrenProvider<
T> childrenProvider, - ParentProvider<
T> ? parentProvider, - bool defaultExpansionState = false,
Creates a TreeController.
The roots
parameter should contain all nodes that occupy the level 0
of the tree, these nodes are going to be used as a starting point when
traversing the tree and building tree views.
The parentProvider
callback should return the direct parent of the tree
node that's given to it or null when given a root node. Some methods like
checkNodeHasAncestor require this callback to be defined and will throw
an AssertionError in debug mode. When parentProvider
is not defined,
TreeController.parentProvider
is set to a callback that always returns
null.
Implementation
TreeController({
required Iterable<T> roots,
required this.childrenProvider,
ParentProvider<T>? parentProvider,
this.defaultExpansionState = false,
}) : _roots = roots {
assert(() {
_debugHasParentProvider = parentProvider != null;
return true;
}());
this.parentProvider = parentProvider ?? (T node) => null;
}