public void mouseClicked(MouseEvent e) {

    Object source = e.getSource();
    if (!(source instanceof JLabel)) return;

    if (tokenMode) {
      if (tokenLabels.contains(source)) {
        orUIManager.tokenSelected((LayToken) ((ActionLabel) source).getPossibleActions().get(0));
        setDoneEnabled(true);
      } else {
        orUIManager.tokenSelected(null);
      }
      setSelectedToken();
    } else if (correctionTokenMode) {
      int id = correctionTokenLabels.indexOf(source);
      selectedTokenIndex = id;
      log.info("Correction Token index = " + selectedTokenIndex + " selected");
    } else {

      int id = ((HexLabel) e.getSource()).getInternalId();

      orUIManager.tileSelected(id);
    }
  }