selectRow method
Select the row at index. additive toggles it (multi), range extends
from the anchor to index. Also moves the editing cursor onto the row.
Implementation
void selectRow(int index, {bool additive = false, bool range = false}) {
if (!selectionIsRowMode || index < 0 || index >= rowCount) return;
_sel = CellRef(index, _sel.col);
if (selectionMode == EditableSelectionMode.singleRow) {
_selRows
..clear()
..add(index);
_anchorRow = index;
} else if (range) {
final lo = index < _anchorRow ? index : _anchorRow;
final hi = index < _anchorRow ? _anchorRow : index;
if (!additive) _selRows.clear();
for (var r = lo; r <= hi; r++) {
_selRows.add(r);
}
} else if (additive) {
_selRows.contains(index) ? _selRows.remove(index) : _selRows.add(index);
_anchorRow = index;
} else {
_selRows
..clear()
..add(index);
_anchorRow = index;
}
notifyListeners();
}