NodeFlowExtension class abstract
Interface for extensions that add behavior and state to the node flow editor.
Extensions are purely additive - they observe events and provide additional capabilities without modifying core behavior. Each extension manages its own state and reacts to graph events.
Lifecycle
- Extension is created with its configuration
- attach is called with the controller reference
- onEvent is called for each graph event
- detach is called when the extension is removed
Example Implementation
class LoggingExtension extends NodeFlowExtension {
NodeFlowController? _controller;
@override
String get id => 'logging';
@override
void attach(NodeFlowController controller) {
_controller = controller;
print('Logging extension attached');
}
@override
void detach() {
_controller = null;
print('Logging extension detached');
}
@override
void onEvent(GraphEvent event) {
print('Event: $event');
}
}
Usage
final controller = NodeFlowController<MyData>();
controller.addExtension(LoggingExtension());
Constructors
Properties
Methods
-
attach(
NodeFlowController controller) → void - Called when the extension is attached to a controller.
-
detach(
) → void - Called when the extension is detached from the controller.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onEvent(
GraphEvent event) → void - Called when a graph event occurs.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited