Package net.alteiar.campaign.player.gui.centerViews.map.tools.actions.filter

Source Code of net.alteiar.campaign.player.gui.centerViews.map.tools.actions.filter.ChangeMapFilterAction$FilterAdapter

package net.alteiar.campaign.player.gui.centerViews.map.tools.actions.filter;

import java.awt.event.ActionEvent;
import java.util.ArrayList;

import net.alteiar.beans.map.MapBean;
import net.alteiar.beans.map.filter.CharacterMapFilter;
import net.alteiar.beans.map.filter.ManualMapFilter;
import net.alteiar.beans.map.filter.MapFilter;
import net.alteiar.beans.map.filter.NoMapFilter;
import net.alteiar.campaign.CampaignClient;
import net.alteiar.campaign.player.gui.MainFrame;
import net.alteiar.campaign.player.gui.centerViews.map.MapEditableInfo;
import net.alteiar.campaign.player.gui.centerViews.map.tools.actions.MapAction;
import net.alteiar.campaign.player.tools.Threads;
import net.alteiar.dialog.DialogOkCancel;
import net.alteiar.dialog.list.PanelSelectList;
import net.alteiar.thread.MyRunnable;

public class ChangeMapFilterAction extends MapAction {
  private static final long serialVersionUID = 1L;

  public ChangeMapFilterAction(MapEditableInfo info) {
    super(info);

    // putValue(SMALL_ICON, Helpers.getIcon(icon));
    putValue(NAME, "Changer le type filtre");
  }

  private static final String MANUAL_MAP_FILTER = "Filtre manuel";
  private static final String AUTOMATIC_MAP_FILTER = "Filtre automatique";
  private static final String NO_MAP_FILTER = "Aucun filtre";

  private class FilterAdapter {
    private final String name;

    public FilterAdapter(String name) {
      super();
      this.name = name;
    }

    public String getName() {
      return name;
    }

    @Override
    public String toString() {
      return name;
    }
  }

  @Override
  public void actionPerformed(ActionEvent arg0) {
    // select filter
    ArrayList<FilterAdapter> adapters = new ArrayList<FilterAdapter>();
    adapters.add(new FilterAdapter(MANUAL_MAP_FILTER));
    adapters.add(new FilterAdapter(AUTOMATIC_MAP_FILTER));
    adapters.add(new FilterAdapter(NO_MAP_FILTER));

    final PanelSelectList<FilterAdapter> panel = new PanelSelectList<FilterAdapter>(
        adapters, false);

    DialogOkCancel<PanelSelectList<FilterAdapter>> dlg = new DialogOkCancel<PanelSelectList<FilterAdapter>>(
        MainFrame.FRAME, "Choisir le type de filtre", true, panel);

    dlg.setLocationRelativeTo(null);
    dlg.setVisible(true);

    if (dlg.getReturnStatus() == DialogOkCancel.RET_OK) {

      Threads.execute(new MyRunnable() {

        @Override
        public void run() {
          MapBean map = getMapInfo().getMap();

          MapFilter newFilter = null;

          FilterAdapter adapter = panel.getSelectedValue();

          if (MANUAL_MAP_FILTER.equals(adapter.getName())) {
            newFilter = new ManualMapFilter(map.getId());
          } else if (AUTOMATIC_MAP_FILTER.equals(adapter.getName())) {
            newFilter = new CharacterMapFilter(map);
          } else if (NO_MAP_FILTER.equals(adapter.getName())) {
            newFilter = new NoMapFilter();
          }

          CampaignClient.getInstance().addBean(newFilter);

          // set the new filter
          map.setFilter(newFilter.getId());

          // delete the old filter
          CampaignClient.getInstance().removeBean(map.getFilter());
        }

        @Override
        public String getTaskName() {
          return "create new map filter";
        }
      });
    }
  }
}
TOP

Related Classes of net.alteiar.campaign.player.gui.centerViews.map.tools.actions.filter.ChangeMapFilterAction$FilterAdapter

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.