Package ch.fusun.baron.basic.client.ui

Source Code of ch.fusun.baron.basic.client.ui.CreateUnitTileAction

package ch.fusun.baron.basic.client.ui;

import org.eclipse.jface.dialogs.IInputValidator;
import org.eclipse.jface.dialogs.InputDialog;
import org.eclipse.swt.widgets.Shell;

import ch.fusun.baron.basic.command.CreateUnitCommand;
import ch.fusun.baron.city.City;
import ch.fusun.baron.client.rmi.ClientService;
import ch.fusun.baron.client.ui.messages.Messages;
import ch.fusun.baron.core.injection.Inject;
import ch.fusun.baron.core.service.UserService;
import ch.fusun.baron.player.api.PlayerService;

/**
* Action to create a unit
*/
public class CreateUnitTileAction extends AbstractTileAction {

  @Inject
  private PlayerService playerService;
  @Inject
  private UserService userService;
  @Inject
  private ClientService clientService;

  /**
   * Injection constructor
   */
  public CreateUnitTileAction() {
  }

  @Override
  public Class<?> getReactionClass() {
    return City.class;
  }

  @Override
  public void execute(Object tile) {
    InputDialog inputDialog = new InputDialog(new Shell(),
        Messages.CreateUnitTileAction_NumerOfUnitsTitle,
        Messages.CreateUnitTileAction_NumberOfUnitsQuestion,
        Messages.CreateUnitTileAction_NumberOfUnitDefault,
        new IInputValidator() {
          @Override
          public String isValid(String newText) {
            try {
              int parseInt = Integer.parseInt(newText);
              if (parseInt <= 0) {
                return Messages.CreateUnitTileAction_Warning;
              }
            } catch (Exception e) {
              return Messages.CreateUnitTileAction_Warning2;
            }
            return null;
          }
        });
    if (inputDialog.open() == InputDialog.OK) {
      clientService.execute(new CreateUnitCommand(playerService
          .getDynasty(userService.getUser()), (City) tile, Integer
          .parseInt(inputDialog.getValue())));
    }
  }

  @Override
  public String getText() {
    return Messages.CreateUnitTileAction_CreateUnitTitle;
  }

}
TOP

Related Classes of ch.fusun.baron.basic.client.ui.CreateUnitTileAction

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.