/**
   * Creates new form SystemMonitor
   *
   * @param lever
   * @param wheels
   * @param doors
   * @param light
   */
  public SystemMonitor(Lever lever, Wheel wheels[], Door doors[], Light light) {

    super("Landing System Monitor");

    this.lever = lever;
    this.wheels = wheels;
    this.doors = doors;
    this.light = light;

    ActionListener pullListener =
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent event) {
            lever.endPull();
            repaint();
          }
        };
    ActionListener pushListener =
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent event) {
            lever.endPush();
            repaint();
          }
        };
    Timer timerPull = new Timer(2000, pullListener);
    timerPull.setRepeats(false);
    Timer timerPush = new Timer(2000, pushListener);
    timerPush.setRepeats(false);

    initComponents();
    // Add Listener on toggle button
    upDownToggleButton.addItemListener(
        (ItemEvent ev) -> {
          if (ev.getStateChange() == ItemEvent.SELECTED) {
            lever.startPull();
            repaint();
            timerPull.start();
            upDownToggleButton.setText("PUSH");
          } else if (ev.getStateChange() == ItemEvent.DESELECTED) {
            lever.startPush();
            repaint();
            timerPush.start();
            upDownToggleButton.setText("PULL");
          }
        });

    pack();
    setVisible(true);
  }