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

Source Code of net.alteiar.campaign.player.gui.centerViews.map.tools.PanelToolFilter

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

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JSpinner;
import javax.swing.JToolBar;
import javax.swing.SpinnerNumberModel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

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.campaign.CampaignClient;
import net.alteiar.campaign.player.gui.centerViews.map.MapEditableInfo;
import net.alteiar.campaign.player.gui.centerViews.map.tools.actions.filter.AddRemoveElementToView;
import net.alteiar.campaign.player.gui.centerViews.map.tools.actions.filter.ChooseFilterAction;
import net.alteiar.campaign.player.gui.centerViews.map.tools.actions.filter.ShowHideAllAction;
import net.alteiar.campaign.player.gui.centerViews.map.tools.actions.filter.ShowHideAreaAction;

public class PanelToolFilter extends JToolBar {
  private static final long serialVersionUID = 1L;

  private final MapEditableInfo mapInfo;

  public PanelToolFilter(final MapEditableInfo mapInfo) {
    this.mapInfo = mapInfo;

    this.mapInfo.getMap().addPropertyChangeListener(
        MapBean.PROP_FILTER_PROPERTY, new PropertyChangeListener() {
          @Override
          public void propertyChange(PropertyChangeEvent evt) {
            initFilter();
          }
        });
    initFilter();
  }

  private void initFilter() {
    this.removeAll();

    MapFilter filter = CampaignClient.getInstance().getBean(
        mapInfo.getMap().getFilter());

    if (filter instanceof CharacterMapFilter) {
      initAutomatiqueMapFilter();
    } else if (filter instanceof ManualMapFilter) {
      initManualFilter();
    } else {
      // no filter
    }
  }

  private void initManualFilter() {

    JButton showMap = new JButton(new ShowHideAreaAction(mapInfo, true));
    this.add(showMap);

    JButton hideMap = new JButton(new ShowHideAreaAction(mapInfo, false));
    this.add(hideMap);

    JButton showAll = new JButton(new ShowHideAllAction(mapInfo, true));
    this.add(showAll);

    JButton hideAll = new JButton(new ShowHideAllAction(mapInfo, false));
    this.add(hideAll);
  }

  private void initAutomatiqueMapFilter() {
    JButton btnAddElementToView = new JButton(new AddRemoveElementToView(
        mapInfo, true, "Ajouter vision"));

    JButton btnRemoveElementToView = new JButton(
        new AddRemoveElementToView(mapInfo, false, "Enlever vision"));

    final CharacterMapFilter filter = CampaignClient.getInstance().getBean(
        mapInfo.getMap().getFilter());

    JLabel lblVision = new JLabel("Vision max:");
    final JSpinner spinnerVision = new JSpinner(new SpinnerNumberModel(
        filter.getMaxVision().intValue(), 1, Integer.MAX_VALUE, 1));
    spinnerVision.addChangeListener(new ChangeListener() {
      @Override
      public void stateChanged(ChangeEvent arg0) {
        Integer val = (Integer) spinnerVision.getValue();
        filter.setMaxVision(val);
      }
    });

    JButton btnLoadFilter = new JButton(new ChooseFilterAction(mapInfo));

    this.add(btnLoadFilter);
    this.addSeparator();
    this.add(btnAddElementToView);
    this.add(btnRemoveElementToView);
    this.addSeparator();
    this.add(lblVision);
    this.add(spinnerVision);

  }
}
TOP

Related Classes of net.alteiar.campaign.player.gui.centerViews.map.tools.PanelToolFilter

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.