canReorderHeaderColumn method
bool
canReorderHeaderColumn(
{ - required int rowIndex,
- required int columnIndex,
- required int targetLogicalColumnIndex,
})
inherited
Implementation
bool canReorderHeaderColumn({
required int rowIndex,
required int columnIndex,
required int targetLogicalColumnIndex,
}) {
if (buildedHeaderRows.isEmpty ||
rowIndex < 0 ||
rowIndex >= buildedHeaderRows.length ||
columnIndex < 0 ||
columnIndex >= buildedHeaderRows[rowIndex].columns.length ||
targetLogicalColumnIndex < 0 ||
targetLogicalColumnIndex >= buildedHeaderRows.last.columns.length) {
return false;
}
final source = _reorderRange(rowIndex, columnIndex);
final target = (targetLogicalColumnIndex, targetLogicalColumnIndex);
if (target.$1 >= source.$1 && target.$1 <= source.$2) {
return false;
}
final draggedColumn = buildedHeaderRows[rowIndex].columns[columnIndex];
if (!draggedColumn.reorderable) {
return false;
}
final leafColumns = buildedHeaderRows.last.columns;
final sourcePinLeft = leafColumns[source.$1].pinLeft.value;
final sourcePinRight = leafColumns[source.$1].pinRight.value;
final targetPinLeft = leafColumns[target.$1].pinLeft.value;
final targetPinRight = leafColumns[target.$1].pinRight.value;
return sourcePinLeft == targetPinLeft && sourcePinRight == targetPinRight;
}