NodeFlowAction<T> class
abstract
Base class for actions that can be triggered in the node flow editor.
An action represents a user operation that can be executed via keyboard shortcuts, menu items, or programmatically. Actions encapsulate both the operation logic and metadata for UI presentation.
Each action has:
- Unique id for identification and mapping to shortcuts
- Human-readable label for menus and command palettes
- Optional description for tooltips
- category for grouping in menus
- execute method that performs the operation
- canExecute method for conditional enabling
Example implementation:
class MyCustomAction<T> extends NodeFlowAction<T> {
const MyCustomAction()
: super(
id: 'my_custom_action',
label: 'My Custom Action',
description: 'Does something custom',
category: 'Custom',
);
@override
bool execute(NodeFlowController<T> controller, BuildContext? context) {
// Perform the action
controller.selectAllNodes();
return true; // Return true if action succeeded
}
@override
bool canExecute(NodeFlowController<T> controller) {
return controller.nodes.isNotEmpty;
}
}
Constructors
- NodeFlowAction({required String id, required String label, String? description, String category = 'General'})
-
const
Properties
- category → String
-
Category for organizing actions in menus.
final
- description → String?
-
Optional description providing additional context.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- id → String
-
Unique identifier for this action.
final
- label → String
-
Human-readable label for UI presentation.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
canExecute(
NodeFlowController< T> controller) → bool - Checks if this action can be executed in the current state.
-
execute(
NodeFlowController< T> controller, BuildContext? context) → bool - Executes the action's operation.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited