public boolean dispatchKeyEvent(final KeyEvent e) {
            if (e.isConsumed() || e.getID() == KeyEvent.KEY_RELEASED) return false;
            if (!boardHasFocus) return false;
            
            switch (e.getKeyCode()) {
            case KindleKeyCodes.VK_FIVE_WAY_RIGHT:
                if (controller != null) {
                    e.consume();
                    controller.nextMove();
                    progressBar.incrementTick();
                    commentComponent.setText(board.getComment());

                    progressBar.repaint();
                    boardComponent.repaint();
                    commentComponent.repaint();
                }
                return true;
            case KindleKeyCodes.VK_FIVE_WAY_LEFT:
                if (controller != null && controller.getCurrentMoveNumber() > 0) {
                    e.consume();
                    controller.previousMove();
                    progressBar.decrementTick();
                    commentComponent.setText(board.getComment());

                    progressBar.repaint();
                    boardComponent.repaint();
                    commentComponent.repaint();
                }
                return true;
            default:
                return false;
            }
        }