/**
   * An interface action has been performed. Find out what it was and handle it.
   *
   * @param event The event that has occured.
   */
  public void actionPerformed(ActionEvent event) {
    String command = event.getActionCommand();

    if (command.equals("0")
        || command.equals("1")
        || command.equals("2")
        || command.equals("3")
        || command.equals("4")
        || command.equals("5")
        || command.equals("6")
        || command.equals("7")
        || command.equals("8")
        || command.equals("9")) {
      int number = Integer.parseInt(command);
      calc.numberPressed(number);
    } else if (command.equals("A")
        || command.equals("B")
        || command.equals("C")
        || command.equals("D")
        || command.equals("E")
        || command.equals("F")) {
      int number = getNumberFromHexString(command);
      calc.numberPressed(number);
    } else if (command.equals("+")) {
      calc.plus();
    } else if (command.equals("-")) {
      calc.minus();
    } else if (command.equals("=")) {
      calc.equals();
    } else if (command.equals("C")) {
      calc.clear();
    } else if (command.equals("?")) {
      showInfo();
    }
    // Exercise 1 multi
    else if (command.equals("*")) {
      calc.multiplication();
    }
    // Exercise 1 division
    else if (command.equals("/")) {
      calc.division();
    } else if (command.equals("Cl")) {
      // had to change this, so it works in hexadecimal mode
      calc.clear();
    } else if (command.equals("Hexadecimal mode")) {
      calc.flipHexSwitch(); // flip the switch
    }

    // else unknown command.

    redisplay();
  }