arrangeNodesHierarchically method
void
arrangeNodesHierarchically()
Arranges nodes hierarchically by type.
Groups nodes by their type property and arranges each type group in rows, with 200 pixels horizontal spacing and 150 pixels vertical spacing between groups.
Example:
controller.arrangeNodesHierarchically();
Implementation
void arrangeNodesHierarchically() {
// Simple implementation - arrange by type
final nodesByType = <String, List<Node<T>>>{};
for (final node in _nodes.values) {
nodesByType.putIfAbsent(node.type, () => []).add(node);
}
runInAction(() {
double y = 0;
for (final entry in nodesByType.entries) {
double x = 0;
for (final node in entry.value) {
final newPosition = Offset(x, y);
node.position.value = newPosition;
// Update visual position with snapping
node.setVisualPosition(_config.snapToGridIfEnabled(newPosition));
x += 200;
}
y += 150;
}
});
}