TreeNodeScope class

An implementation of InheritedWidget to manage the state of TreeNodes throughout the subtree of this widget.

Each TreeNode in the TreeView have its own TreeNodeScope widget to make it possible to update (expand / collapse) the node attached to this widget from anywhere in it's subtree.

This implementation also makes it possible to have constant constructors in NodeWidget or any widget chosen as an entry of TreeView to improve performance as it usually doesn't need to be rebuilt when the nodes around it change.

Inheritance

Constructors

TreeNodeScope({Key? key, required TreeNode node, required TreeViewTheme theme, bool isExpanded = false, bool shouldRefresh = false, required Widget child})
Creates a TreeNodeScope.

Properties

child Widget
The widget below this widget in the tree.
finalinherited
hashCode int
The hash code for this object.
no setterinherited
indentation double
Calculates the amount of indentation of this node. depth * [indent]
no setter
isExpanded bool
Whether TreeNodeScope.node is currently expanded or not.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
node TreeNode
The TreeNode provided to the widget subtree of this TreeNodeScope.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
theme TreeViewTheme
The instance of TreeViewTheme that controls the theme of the TreeView.
final

Methods

collapse(BuildContext context) → void
Notifies TreeViewController to collapse this node.
createElement() InheritedElement
Inflates this configuration to a concrete instance.
inherited
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
expand(BuildContext context) → void
Notifies TreeViewController to expand this node.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toggleExpanded(BuildContext context) → void
Toggles isExpanded to the opposite state.
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited
updateShouldNotify(covariant TreeNodeScope oldWidget) bool
Whether the framework should notify widgets that inherit from this widget.
override

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

of(BuildContext context) TreeNodeScope
Finds the nearest TreeNodeScope and subscribes context to state changes.