sort method
void
sort({
- required PlutoColumn column,
- required FilteredList<
PlutoRow> rows, - required int compare(),
override
Handle sorting of grouped rows.
Implementation
@override
void sort({
required PlutoColumn column,
required FilteredList<PlutoRow> rows,
required int Function(PlutoRow, PlutoRow) compare,
}) {
if (rows.originalList.isEmpty) return;
final depth = _columnDepth(column);
if (depth == 0) {
rows.sort(compare);
return;
}
final children = PlutoRowGroupHelper.iterateWithFilter(
rows.originalList,
filter: (r) => r.type.isGroup,
childrenFilter: (r) => _isFirstChildGroup(r)
? r.type.group.children.originalList.iterator
: null,
);
for (final child in children) {
if (_firstChildDepth(child) == depth) {
child.type.group.children.sort(compare);
}
}
}