createGroupNode method
GroupNode<T>
createGroupNode({
- required String title,
- required Offset position,
- required Size size,
- required T data,
- String? id,
- Color color = const Color(0xFF2196F3),
- GroupBehavior behavior = GroupBehavior.bounds,
- Set<
String> ? nodeIds, - EdgeInsets padding = kGroupNodeDefaultPadding,
- List<
Port> inputPorts = const [], - List<
Port> outputPorts = const [],
Creates and adds a group node that visually groups multiple nodes.
Group nodes create visual boundaries that can contain nodes. The behavior determines how node membership is managed (see GroupBehavior).
Parameters:
title: Title displayed at the top of the groupposition: Position in graph coordinatessize: Size of the groupdata: Custom data of typeTassociated with this nodeid: Optional custom ID (auto-generated if not provided)color: Background color of the group (default: blue)behavior: How the group manages node membership (default: bounds)nodeIds: Initial set of node IDs for explicit/parent behaviorpadding: Padding around member nodes (default: kGroupNodeDefaultPadding)inputPorts: Optional input ports for subflow patternsoutputPorts: Optional output ports for subflow patterns
Returns the created GroupNode.
Example:
controller.createGroupNode(
title: 'Input Processing',
position: Offset(100, 100),
size: Size(400, 300),
data: MyNodeData(),
color: Colors.blue,
);
Implementation
GroupNode<T> createGroupNode({
required String title,
required Offset position,
required Size size,
required T data,
String? id,
Color color = const Color(0xFF2196F3), // Blue
GroupBehavior behavior = GroupBehavior.bounds,
Set<String>? nodeIds,
EdgeInsets padding = kGroupNodeDefaultPadding,
List<Port> inputPorts = const [],
List<Port> outputPorts = const [],
}) {
final node = GroupNode<T>(
id: id ?? 'group-${DateTime.now().millisecondsSinceEpoch}',
title: title,
position: position,
size: size,
data: data,
color: color,
behavior: behavior,
nodeIds: nodeIds,
padding: padding,
inputPorts: inputPorts,
outputPorts: outputPorts,
);
addNode(node);
return node;
}