private JPanel makeHistoryPanel() {
    // mother Panel
    JPanel historyPanel = new JPanel ();
    historyPanel.setLayout (new BorderLayout ());
    // Button Panel
    continueButton = new JButton (CONTINUE_BUTTON_TEXT);
    undoUntilButton = new JButton (UNDO_UNTIL_BUTTON_TEXT);
    undoButton = new JButton (UNDO_BUTTON_TEXT);

    buttonPanel = new JPanel ();
    // Are not put in the code by default -yet
    buttonPanel.add (undoButton);
    buttonPanel.add (continueButton);
    buttonPanel.add (undoUntilButton);

    continueButton.setVisible (false);
    undoUntilButton.setVisible (false);
    undoButton.setVisible (true);
    list = new JList (); // data has type Object[]

    list.setSelectionMode (ListSelectionModel.SINGLE_SELECTION);
    list.setLayoutOrientation (JList.HORIZONTAL_WRAP);
    list.setVisibleRowCount (-1);
    listScroller = new JScrollPane (list);
    listScroller
        .setVerticalScrollBarPolicy (ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
    listScroller.setOpaque (true);
    list.setOpaque (true);
    ListCellRenderer myHistRenderer = new HistoryCellRenderingDefinition ();
    list.setCellRenderer (myHistRenderer);
    list.setBackground (HISTORY_LIST_BACKGROUND_COLOR);
    list.addListSelectionListener (new ListSelectionListener () {

      @Override
      public void valueChanged(ListSelectionEvent arg0) {
        if ( !myThread.isPaused () ) {
          synchronized (myThread) {
            myThread.pause ();
          }
        }
        boolean adjust = arg0.getValueIsAdjusting ();
        int a = moveStorage.size ();
        if ( adjust ) {
          JList list = (JList) arg0.getSource ();
          int selections[] = list.getSelectedIndices ();
          for (int i = 0, n = selections.length; i < n; i++) {
            a = selections[i];
          }
          myBoard.setActivePosition (null);
          myBoard.setPossibleMoves (null);
          synchronized (myBoard) {
            historyBack (a);
          }
        }
      }
    });
    moveHistoryPanel = new JPanel ();
    historyPanel.add (BorderLayout.CENTER, moveHistoryPanel);
    historyPanel.add (BorderLayout.SOUTH, buttonPanel);
    return historyPanel;
  }