Package generic.actions

Source Code of generic.actions.ChangeHealthPoint

package generic.actions;

import generic.bean.unit.Unit;

import java.awt.FlowLayout;

import javax.swing.JTextField;

import net.alteiar.beans.map.elements.IAction;
import net.alteiar.campaign.player.gui.MainFrame;
import net.alteiar.dialog.DialogOkCancel;
import net.alteiar.dialog.PanelAlwaysValidOkCancel;

public abstract class ChangeHealthPoint extends IAction {
  private final Unit character;

  public ChangeHealthPoint(Unit character) {
    this.character = character;
  }

  @Override
  public final Boolean canDoAction() {
    return character != null;
  }

  protected final Unit getCharacter() {
    return character;
  }

  protected abstract void changeHealPoint(Integer healthPointModifier);

  @Override
  public final void doAction(int xOnScreen, int yOnScreen) throws Exception {
    final JTextField textFieldDegat = new JTextField(5);

    PanelAlwaysValidOkCancel panelDegat = new PanelAlwaysValidOkCancel() {
      private static final long serialVersionUID = 1L;

      @Override
      public Boolean isDataValid() {
        Boolean isValid = true;
        try {
          Integer.valueOf(textFieldDegat.getText());
        } catch (NumberFormatException ex) {
          isValid = false;
        }
        return isValid;
      }

      @Override
      public String getInvalidMessage() {
        return "les " + getName() + " doivents être des chiffres";
      }
    };
    panelDegat.setLayout(new FlowLayout());
    panelDegat.add(textFieldDegat);
    DialogOkCancel<PanelAlwaysValidOkCancel> dialog = new DialogOkCancel<PanelAlwaysValidOkCancel>(
        MainFrame.FRAME, getName(), true, panelDegat);
    dialog.setLocation(xOnScreen - (dialog.getWidth() / 2), yOnScreen
        - (dialog.getHeight() / 2));
    dialog.setVisible(true);

    if (dialog.getReturnStatus() == DialogOkCancel.RET_OK) {
      Integer damage = Integer.valueOf(textFieldDegat.getText());

      changeHealPoint(damage);
    }
  }
}
TOP

Related Classes of generic.actions.ChangeHealthPoint

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.