synchronizeGroupedHeaderPinning method

void synchronizeGroupedHeaderPinning()
inherited

Makes every grouped header reflect the pin state of its covered leaves.

Implementation

void synchronizeGroupedHeaderPinning() {
  if (buildedHeaderRows.isEmpty) {
    return;
  }
  final leafColumns = buildedHeaderRows.last.columns;
  for (final row in buildedHeaderRows.take(buildedHeaderRows.length - 1)) {
    var logicalColumnIndex = 0;
    for (final column in row.columns) {
      final span = column.combinedColumns ?? 1;
      final coveredLeaves = leafColumns.skip(logicalColumnIndex).take(span).toList();
      column.pinLeft.value = coveredLeaves.every((leaf) => leaf.pinLeft.value);
      column.pinRight.value = coveredLeaves.every((leaf) => leaf.pinRight.value);
      logicalColumnIndex += span;
    }
  }
}