renameNode method

void renameNode(
  1. String id,
  2. String newName
)

Submits a rename action for a specific node. If the node was new, it resets the isNew flag after renaming.

Implementation

void renameNode(String id, String newName) {
  final node = findNodeById(id);
  if (node != null) {
    final wasNew = node.isNew;
    node.isNew = false;
    onNodeRenamed?.call(node, newName);
    _eventController.add(
      TreeNodeRenamedEvent<T>(node: node, newName: newName),
    );
    setRenamingNodeId(null);

    // If it was new, we might need to re-sort as the name changed
    if (wasNew && _sortComparator != null) {
      if (node.isRoot) {
        _roots.sort(_sortComparator!);
      } else {
        node.parent?.internalSortChildren(_sortComparator!);
      }
      _rebuildFlatList();
      notifyListeners();
    }
  }
}