execute method
void
execute({
- required PlutoKeyManagerEvent keyEvent,
- required PlutoGridStateManager stateManager,
override
Implement actions to be mapped to shortcut keys.
Implementation
@override
void execute({
required PlutoKeyManagerEvent keyEvent,
required PlutoGridStateManager stateManager,
}) {
switch (direction) {
case PlutoMoveDirection.left:
case PlutoMoveDirection.right:
if (!stateManager.isPaginated) return;
final currentColumn = stateManager.currentColumn;
final previousPosition = stateManager.currentCellPosition;
int toPage =
direction.isLeft ? stateManager.page - 1 : stateManager.page + 1;
if (toPage < 1) {
toPage = 1;
} else if (toPage > stateManager.totalPage) {
toPage = stateManager.totalPage;
}
stateManager.setPage(toPage);
_restoreCurrentCellPosition(
stateManager: stateManager,
currentColumn: currentColumn,
previousPosition: previousPosition,
);
break;
case PlutoMoveDirection.up:
case PlutoMoveDirection.down:
final int moveCount =
(stateManager.rowContainerHeight / stateManager.rowTotalHeight)
.floor();
int rowIdx = stateManager.currentRowIdx!;
rowIdx += direction.isUp ? -moveCount : moveCount;
stateManager.moveCurrentCellByRowIdx(rowIdx, direction);
break;
}
}