@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();
  }