コード例 #1
0
  @Override
  public void actionPerformed(ActionEvent e) {
    if (upgrade != null && checkBox != null) {
      if (upgrade.removeGearList.isEmpty()) {
        if (upgrade.maxInSquad == -1) {
          upgrade.updateCostBasedOnSize();
          upgrade.setActive(checkBox.isSelected());
        } else upgrade.setActive(checkBox.isSelected());
      } else {
        if (!upgrade.isActive()) {
          for (String s : upgrade.removeGearList) {
            if (s.contains("/")) {
              new GUI.UpgradeChoiceDialog(upgrade);
              return;
            }
          }
        } else if (upgrade.maxInSquad == -1) {
          upgrade.updateCostBasedOnSize();
          upgrade.setActive(checkBox.isSelected());
        } else upgrade.setActive(checkBox.isSelected());
      }
    }
    if (e.getSource() == GUI.loadButton) {
      int returnVal = Main.fileChooser.showOpenDialog(GUI.saveLoad);

      if (returnVal == JFileChooser.APPROVE_OPTION) {
        File file = Main.fileChooser.getSelectedFile();
        Main.loadArmy(file);
        GUI.changeOption.setEnabled(true);
      }
    }
    if (e.getSource() == GUI.createButton || e.getSource() == GUI.changeOption) {
      new GUI.PointsDialog();
    }
    if (e.getSource() == GUI.saveAsOption) {
      int returnVal = Main.fileChooser.showSaveDialog(GUI.saveLoad);

      if (returnVal == JFileChooser.APPROVE_OPTION) {
        File f = Main.fileChooser.getSelectedFile();
        Main.saveArmy(f, true);
      }
    }
    if (e.getSource() == GUI.saveOption) {
      int returnVal;
      if (!Main.loadedArmy) returnVal = Main.fileChooser.showSaveDialog(GUI.saveLoad);
      else returnVal = -1;
      if (returnVal == -1) {
        File f = new File(Main.currentArmy.fileName);
        Main.saveArmy(f, false);
      } else if (returnVal == JFileChooser.APPROVE_OPTION) {
        File f = Main.fileChooser.getSelectedFile();
        Main.saveArmy(f, true);
      }
    }
    if (e.getSource() == GUI.newOption) {
      Main.currentArmy = null;
      Main.loadedArmy = false;
    }
    if (e.getSource() == GUI.openOption) {
      if (Main.currentArmy != null) {
        String[] options = {"Continue", "Save army", "Cancel"};
        int n =
            JOptionPane.showOptionDialog(
                new JPanel(),
                "Any unsaved changes will be lost!"
                    + Main.lb
                    + "Are you sure you want to load an army?",
                "Warning!",
                JOptionPane.YES_NO_CANCEL_OPTION,
                JOptionPane.WARNING_MESSAGE,
                null,
                options,
                options[2]);

        if (n == JOptionPane.YES_OPTION) {
          int returnVal = Main.fileChooser.showOpenDialog(GUI.saveLoad);

          if (returnVal == JFileChooser.APPROVE_OPTION) {
            File file = Main.fileChooser.getSelectedFile();
            Main.loadArmy(file);
          }
        } else if (n == JOptionPane.NO_OPTION) {
          int returnVal;
          if (!Main.loadedArmy) returnVal = Main.fileChooser.showSaveDialog(GUI.saveLoad);
          else returnVal = -1;
          if (returnVal == -1) {
            File f = new File(Main.currentArmy.fileName);
            Main.saveArmy(f, false);
          } else if (returnVal == JFileChooser.APPROVE_OPTION) {
            File f = Main.fileChooser.getSelectedFile();
            Main.saveArmy(f, true);
          }

          int returnVal1 = Main.fileChooser.showOpenDialog(GUI.saveLoad);

          if (returnVal1 == JFileChooser.APPROVE_OPTION) {
            File file = Main.fileChooser.getSelectedFile();
            Main.loadArmy(file);
          }
        }
      } else {
        int returnVal = Main.fileChooser.showOpenDialog(GUI.saveLoad);

        if (returnVal == JFileChooser.APPROVE_OPTION) {
          File file = Main.fileChooser.getSelectedFile();
          Main.loadArmy(file);
        }
      }
    }
    if (affected.equalsIgnoreCase("racecombo")) {
      if (!((String) GUI.raceCombo.getSelectedItem()).equalsIgnoreCase("Pick a race!")) {
        GUI.raceList.setModel(Main.raceListModels.get((String) GUI.raceCombo.getSelectedItem()));
        CardLayout cl1 = (CardLayout) (GUI.cardPanel.getLayout());
        cl1.show(GUI.cardPanel, "blank");
        GUI.raceCombo.removeItem("Pick a race!");
      }
    } else if (affected.equalsIgnoreCase("addUnit")) {
      Unit u1;
      if (GUI.raceList.getSelectedValue() != null) {
        u1 = new Unit(GUI.raceList.getSelectedValue());
        if (Main.currentArmy != null) {
          Main.currentArmy.addUnit(u1);
          if (u1.addsUnit) {
            for (Unit u2 : u1.unitsToAdd) {
              Main.currentArmy.addUnit(new Unit(u2));
            }
          }
        } else {
          GUI.saveOption.setEnabled(true);
          GUI.saveAsOption.setEnabled(true);
          Army newArmy = new Army(u1.getRace()).addUnit(u1);
          Main.currentArmy = newArmy;
          if (u1.addsUnit) {
            for (Unit u2 : u1.unitsToAdd) {
              newArmy.addUnit(new Unit(u2));
            }
          }
          GUI.lblCurrentArmy.setVisible(true);
        }
      } else return;
      Main.currentArmy.update();
    } else if (affected.equalsIgnoreCase("remove")) {
      Unit u = (Unit) GUI.armyList.getSelectedValue();
      if (u.addsUnit) for (Unit u1 : u.unitsToAdd) Main.getCurrentArmy().removeUnit(u1);
      Main.getCurrentArmy().removeUnit(u);
      if (Main.getCurrentArmy().isEmpty()) {
        CardLayout cl1 = (CardLayout) (GUI.bottomPanel.getLayout());
        cl1.show(GUI.bottomPanel, "blank");
      }
    } else if (affected.equalsIgnoreCase("upgrade1")) {
      button.setSelected(false);
      upgrade.dialog.setVisible(false);
    } else if (affected.equalsIgnoreCase("edit")) {
      Unit w = (Unit) GUI.armyList.getSelectedValue();
      if (w != null) {
        CardLayout cl1 = (CardLayout) (GUI.bottomPanel.getLayout());
        cl1.show(GUI.bottomPanel, "add");
        CardLayout cl2 = (CardLayout) (GUI.statsCard.getLayout());
        cl2.show(GUI.statsCard, String.valueOf(w.getType()));
        GUI.modelNameLabel.setText(w.getName());
        int[] stats = w.getStats();
        int i = 0;
        for (JLabel l : GUI.statLabelList) {
          if (i < 8) l.setText(String.valueOf(stats[i++]));
          else l.setText(String.valueOf(stats[i++]) + "+");
        }
        CardLayout cl = (CardLayout) (GUI.cardPanel.getLayout());
        cl.show(GUI.cardPanel, w.getCardName());
        GUI.rulesList.setModel(w.getRulesModel());
        GUI.gearList.setModel(w.getGearModel());
        GUI.costLabel.setText(w.getCost());
        GUI.numberSpinner.setModel(w.getNumberModel());
        w.update();
        for (ChangeListener s : GUI.numberSpinner.getChangeListeners())
          if (s instanceof SpinnerListener) ((SpinnerListener) s).setUnit(w);
      }
    }
  }