toggleCheck method

void toggleCheck(
  1. TreeNodeId id
)

Toggle a node's check: cascades to every leaf beneath it (a lone leaf toggles itself). Pure state — not part of structural undo history.

Implementation

void toggleCheck(TreeNodeId id) {
  final n = node(id);
  if (n == null) return;
  final leaves = TreeOps.leafIds<T>(n);
  final targets = leaves.isEmpty ? [id] : leaves;
  final allOn = targets.every(_checked.contains);
  if (allOn) {
    _checked.removeAll(targets);
  } else {
    _checked.addAll(targets);
  }
  notifyListeners();
}