invertSelection method

void invertSelection()

Inverts the current node selection.

All currently selected nodes become deselected, and all deselected nodes become selected.

Example:

controller.invertSelection();

Implementation

void invertSelection() {
  runInAction(() {
    final currentlySelected = Set.from(_selectedNodeIds);
    _selectedNodeIds.clear();

    for (final node in _nodes.values) {
      if (currentlySelected.contains(node.id)) {
        node.selected.value = false;
      } else {
        _selectedNodeIds.add(node.id);
        node.selected.value = true;
      }
    }
  });
}