nextFocusOfColumnFilter method

  1. @override
void nextFocusOfColumnFilter(
  1. PlutoColumn column, {
  2. bool reversed = false,
})
inherited

Implementation

@override
void nextFocusOfColumnFilter(
  PlutoColumn column, {
  bool reversed = false,
}) {
  if (!column.enableFilterMenuItem) {
    return;
  }

  final columnIndexes = reversed
      ? columnIndexesByShowFrozen.reversed.toList(growable: false)
      : columnIndexesByShowFrozen.toList(growable: false);

  final length = columnIndexes.length;

  bool found = false;

  for (int i = 0; i < length - 1; i += 1) {
    var current = refColumns[columnIndexes[i]];

    if (!found && current.key == column.key) {
      found = true;
    }

    if (!found) {
      continue;
    }

    var toMoveIndex = columnIndexes[i + 1];

    var toMove = refColumns[toMoveIndex];

    if (toMove.enableFilterMenuItem) {
      toMove.filterFocusNode?.requestFocus();

      moveScrollByColumn(
        reversed ? PlutoMoveDirection.left : PlutoMoveDirection.right,
        reversed ? length - 1 - i : i,
      );

      return;
    }
  }
}