configureRowSelection method

void configureRowSelection({
  1. required TreeDataTableRowSelectionMode mode,
  2. Set<Object>? selectedRowIds,
  3. Set<Object> initialSelectedRowIds = const <Object>{},
  4. TreeDataTableRowSelectionChanged? onSelectionChanged,
  5. bool showCheckboxes = false,
  6. bool selectRowsOnTap = false,
  7. bool initializeUncontrolledSelection = false,
})

Configures row selection, supporting both controlled and uncontrolled use.

Implementation

void configureRowSelection({
  required TreeDataTableRowSelectionMode mode,
  Set<Object>? selectedRowIds,
  Set<Object> initialSelectedRowIds = const <Object>{},
  TreeDataTableRowSelectionChanged? onSelectionChanged,
  bool showCheckboxes = false,
  bool selectRowsOnTap = false,
  bool initializeUncontrolledSelection = false,
}) {
  rowSelectionMode = mode;
  _onRowSelectionChanged = onSelectionChanged;
  _selectionIsControlled = selectedRowIds != null;
  showSelectionCheckboxes = showCheckboxes;
  _selectRowsOnTap = selectRowsOnTap;

  if (mode == TreeDataTableRowSelectionMode.none) {
    _lastSelectionAnchorId = null;
    _setSelectedRowIds(const <Object>{}, notifyCallback: false);
    return;
  }

  if (selectedRowIds != null) {
    _setSelectedRowIds(_normalizedSelection(selectedRowIds), notifyCallback: false);
  } else if (initializeUncontrolledSelection) {
    _setSelectedRowIds(_normalizedSelection(initialSelectedRowIds), notifyCallback: false);
  }
}