setFilter method

  1. @override
void setFilter(
  1. FilteredListFilter<PlutoRow>? filter, {
  2. bool notify = true,
})
inherited

Implementation

@override
void setFilter(FilteredListFilter<PlutoRow>? filter, {bool notify = true}) {
  if (filter == null) {
    setFilterRows([]);
  }

  if (filterOnlyEvent) {
    eventManager!.addEvent(
      PlutoGridSetColumnFilterEvent(filterRows: filterRows),
    );
    return;
  }

  for (final row in iterateAllRowAndGroup) {
    row.setState(PlutoRowState.none);
  }

  var savedFilter = filter;

  if (filter != null) {
    savedFilter = (PlutoRow row) {
      return !row.state.isNone || filter(row);
    };
  }

  if (enabledRowGroups) {
    setRowGroupFilter(savedFilter);
  } else {
    refRows.setFilter(savedFilter);
  }

  resetCurrentState(notify: false);

  notifyListeners(notify, setFilter.hashCode);
}