visibleRows static method
Returns expanded rows in display order and starts lazy child loading when needed.
Implementation
static List<TreeRow> visibleRows(
TreeDataTableProvider provider,
List<TreeRow> roots,
) {
final visibleRows = <TreeRow>[];
void appendRows(List<TreeRow> rows) {
for (final row in rows) {
visibleRows.add(row);
if (!row.isExpanded.value) {
continue;
}
if (!row.childrenLoaded.value && row.sourceNode != null && row.sourceNode!.hasChildren) {
provider.loadTreeRowChildren(
row,
provider.buildedHeaderRows,
level: row.level + 1,
parentIndexes: row.pathIndexes,
);
}
appendRows(row.rows);
}
}
appendRows(roots);
return visibleRows;
}