@Override public void updateLog() { // set the content of the pane to the current editorPane.setText(ReportBuffer.getReportItems()); scrollDown(); forwardButton.setEnabled(false); backwardButton.setEnabled(false); boolean haveRedo = false; List<GameAction> gameActions = PossibleActions.getInstance().getType(GameAction.class); boolean undoFlag = false; for (GameAction action : gameActions) { switch (action.getMode()) { case GameAction.UNDO: undoFlag = true; backwardButton.setPossibleAction(action); backwardButton.setEnabled(true); break; case GameAction.FORCED_UNDO: if (undoFlag) break; // only activate forced undo, if no other undo available backwardButton.setPossibleAction(action); backwardButton.setEnabled(true); break; case GameAction.REDO: forwardButton.setPossibleAction(action); forwardButton.setEnabled(true); haveRedo = true; break; } } if (!haveRedo) deactivateTimeWarp(); }