Package xapc.gui

Source Code of xapc.gui.ArtefactsBoniToBuildings

package xapc.gui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
import javax.swing.SwingUtilities;
import javax.swing.border.EtchedBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import net.miginfocom.swing.MigLayout;

public class ArtefactsBoniToBuildings extends JPanel
{
  private static final long serialVersionUID = -3903826267544257992L;
  private ButtonGroup artefacts = new ButtonGroup();
  private JRadioButton suleankristall = new JRadioButton("Sul�ankristall");
  private JRadioButton hountropfen = new JRadioButton("Ho�ntropfen");
  private JRadioButton naelastein = new JRadioButton("Na�lastein");
  private JCheckBox none = new JCheckBox("-keinen-");
  private JSpinner liga = null;
  private JSpinner day = null;
  private JSpinner numGildMembers = null;
  private int limit = 999;
  private PalastPanel palastPanel = null;
  private ActionListener alArtefacts = new ActionListener()
  { 
    @Override
    public void actionPerformed(ActionEvent e)
    {
      palastPanel.calculateBuildings();
    }
  };
  private MouseWheelListener mwlLiga = new MouseWheelListener()
  { 
    @Override
    public void mouseWheelMoved(MouseWheelEvent e)
    {
      int val = 0;
      if(e.getWheelRotation() > 0 && (Integer)liga.getValue() > 0)
      {
        val = -1;
      }
      else if(e.getWheelRotation() < 0)
      {
        val = 1;
      }
     
      if(e.isShiftDown())
      {
        if(val > 0) val = 10;
        else if(val < 1) val = -10;
      }
      else if(e.isControlDown())
      {
        if(val > 0) val = 100;
        else if(val < 1) val = -100;
      }
     
      final int value = val;
      SwingUtilities.invokeLater(new Runnable()
      { 
        @Override
        public void run()
        {
          liga.setValue((Integer)liga.getValue() + value);
        }
      });
      SwingUtilities.invokeLater(new Runnable()
      {
        @Override
        public void run()
        {
          if((Integer)liga.getValue() < 0)
          {
            liga.setValue(0);
          }
          if((Integer)liga.getValue() > limit)
          {
            liga.setValue(limit);
          }
        }
      });
    }
  };
 
  public ArtefactsBoniToBuildings(PalastPanel pp)
  {
    super(new MigLayout(
      "",
      "0[]0[]0[]0[]127[]2[]5[]2[]0",
      "-8[]0"));
    setOpaque(false);
    palastPanel = pp;
    setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), "Artefakte"));
    addMouseWheelListener(mwlLiga);
   
    suleankristall.setOpaque(false);
    hountropfen.setOpaque(false);
    naelastein.setOpaque(false);
    none.setOpaque(false);
   
    artefacts.add(suleankristall);
    artefacts.add(hountropfen);
    artefacts.add(naelastein);
    none.addActionListener(new ActionListener()
    { 
      @Override
      public void actionPerformed(ActionEvent e)
      {
        init();       
        palastPanel.calculateBuildings();
      }
    });
    suleankristall.addActionListener(alArtefacts);
    hountropfen.addActionListener(alArtefacts);
    naelastein.addActionListener(alArtefacts);
    suleankristall.setSelected(true);
    suleankristall.setEnabled(false);
    hountropfen.setSelected(false);
    hountropfen.setEnabled(false);
    naelastein.setSelected(false);
    naelastein.setEnabled(false);
    none.setSelected(true);
   
    String tooltip = "Bonus auf %ress%:\n" +
      "Liga 1-10: 5%\n" +
      "Jede weitere Liga: 0.5%\n" +
      "Ab Liga 60: 30%";
    naelastein.setToolTipText(tooltip.replace("%ress%", "Mana"));
    suleankristall.setToolTipText(tooltip.replace("%ress%", "Essenzen und Kristallsplitter"));
    hountropfen.setToolTipText(tooltip.replace("%ress%", "Kraftsteine und Goldharz"));
   
    add(suleankristall);
    add(hountropfen);
    add(naelastein);
    add(none);
    add(new JLabel("Anz. Gildenmitgl."));
    add(getJSpinnerNumGildMembers());
    JLabel jLabelDay = new JLabel("Tag");
    jLabelDay.setEnabled(false);
    add(jLabelDay);
    add(getJSpinnerDay());
    add(new JLabel("Liga"));
    add(getJSpinnerLiga());
  }
 
  public void init()
  {
    if(none.isSelected())
    {
      SwingUtilities.invokeLater(new Runnable()
      { 
        @Override
        public void run()
        {
          suleankristall.setSelected(false);
          suleankristall.setEnabled(false);
          hountropfen.setSelected(false);
          hountropfen.setEnabled(false);
          naelastein.setSelected(false);
          naelastein.setEnabled(false);
        }
      });
    }
    else
    {
      SwingUtilities.invokeLater(new Runnable()
      { 
        @Override
        public void run()
        {
          suleankristall.setSelected(false);
          suleankristall.setEnabled(true);
          hountropfen.setSelected(false);
          hountropfen.setEnabled(true);
          naelastein.setSelected(false);
          naelastein.setEnabled(true);
        }
      });
    }
  }
 
  private JSpinner getJSpinnerLiga()
  {
    if(liga == null)
    {
      SpinnerNumberModel snm = new SpinnerNumberModel(17, 1, limit, 1);
      liga = new JSpinner(snm);
      liga.setOpaque(false);
      liga.addChangeListener(new ChangeListener()
      { 
        @Override
        public void stateChanged(ChangeEvent e)
        {
          palastPanel.calculateBuildings();
        }
      });
      liga.addMouseWheelListener(mwlLiga);
    }
   
    return liga;
  }
 
  private JSpinner getJSpinnerDay()
  {
    if(day == null)
    {
      SpinnerNumberModel snm = new SpinnerNumberModel(1, 1, limit, 1);
      day = new JSpinner(snm);
      day.setOpaque(false);
      day.setEnabled(false);
      day.addChangeListener(new ChangeListener()
      { 
        @Override
        public void stateChanged(ChangeEvent e)
        {
          palastPanel.calculateBuildings();
        }
      });
      day.addMouseWheelListener(new MouseWheelListener()
      { 
        @Override
        public void mouseWheelMoved(MouseWheelEvent e)
        {
          int val = 0;
          if(e.getWheelRotation() > 0 && (Integer)day.getValue() > 0)
          {
            val = -1;
          }
          else if(e.getWheelRotation() < 0)
          {
            val = 1;
          }
         
          if(e.isShiftDown())
          {
            if(val > 0) val = 10;
            else if(val < 1) val = -10;
          }
          else if(e.isControlDown())
          {
            if(val > 0) val = 100;
            else if(val < 1) val = -100;
          }
         
          final int value = val;
          SwingUtilities.invokeLater(new Runnable()
          { 
            @Override
            public void run()
            {
              day.setValue((Integer)day.getValue() + value);
            }
          });
          SwingUtilities.invokeLater(new Runnable()
          {
            @Override
            public void run()
            {
              if((Integer)day.getValue() < 0)
              {
                day.setValue(0);
              }
              if((Integer)day.getValue() > limit)
              {
                day.setValue(limit);
              }
            }
          });
        }
      });
    }
   
    return day;
  }
 
  private JSpinner getJSpinnerNumGildMembers()
  {
    if(numGildMembers == null)
    {
      SpinnerNumberModel snm = new SpinnerNumberModel(0, 0, limit, 1);
      numGildMembers = new JSpinner(snm);
      numGildMembers.setOpaque(false);
      numGildMembers.addChangeListener(new ChangeListener()
      { 
        @Override
        public void stateChanged(ChangeEvent e)
        {
          palastPanel.calculateBuildings();
        }
      });
      numGildMembers.addMouseWheelListener(new MouseWheelListener()
      { 
        @Override
        public void mouseWheelMoved(MouseWheelEvent e)
        {
          int val = 0;
          if(e.getWheelRotation() > 0 && (Integer)numGildMembers.getValue() > 0)
          {
            val = -1;
          }
          else if(e.getWheelRotation() < 0)
          {
            val = 1;
          }
         
          if(e.isShiftDown())
          {
            if(val > 0) val = 10;
            else if(val < 1) val = -10;
          }
          else if(e.isControlDown())
          {
            if(val > 0) val = 100;
            else if(val < 1) val = -100;
          }
         
          final int value = val;
          SwingUtilities.invokeLater(new Runnable()
          { 
            @Override
            public void run()
            {
              numGildMembers.setValue((Integer)numGildMembers.getValue() + value);
            }
          });
          SwingUtilities.invokeLater(new Runnable()
          {
            @Override
            public void run()
            {
              if((Integer)numGildMembers.getValue() < 0)
              {
                numGildMembers.setValue(0);
              }
              if((Integer)numGildMembers.getValue() > limit)
              {
                numGildMembers.setValue(limit);
              }
            }
          });
        }
      });
    }
   
    return numGildMembers;
  }
 
  public int getLiga()
  {
    return ((Integer)getJSpinnerLiga().getValue()).intValue();
  }
 
  public int getNumGildMembers()
  {
    return ((Integer)getJSpinnerNumGildMembers().getValue()).intValue();
  }
 
  public int getNumDays()
  {
    return ((Integer)getJSpinnerDay().getValue()).intValue();
  }
 
  public void setLiga(final int l)
  {
    SwingUtilities.invokeLater(new Runnable()
    { 
      @Override
      public void run()
      {
        getJSpinnerLiga().setValue(l);
      }
    });
  }
 
  public void setDay(final int d)
  {
    SwingUtilities.invokeLater(new Runnable()
    { 
      @Override
      public void run()
      {
        getJSpinnerDay().setValue(d);
      }
    });
  }
 
  public void setGM(final int g)
  {
    SwingUtilities.invokeLater(new Runnable()
    { 
      @Override
      public void run()
      {
        getJSpinnerNumGildMembers().setValue(g);
      }
    });
  }
 
  public void setArtifactEnabled(boolean val)
  {
    none.setSelected(val);
  }
 
  public void setEssAndKriArtifactActivated(boolean val)
  {
    suleankristall.setSelected(val);
  }
 
  public void setKraAndGolArtifactActivated(boolean val)
  {
    hountropfen.setSelected(val);
  }
 
  public void setManArtifactActivated(boolean val)
  {
    naelastein.setSelected(val);
  }
 
  public boolean isArtifactEnabled()
  {
    return none.isSelected();
  }
 
  public boolean isEssAndKriArtefactActivated()
  {
    return !none.isSelected() && suleankristall.isSelected();
  }
 
  public boolean isKraAndGolArtefactActivated()
  {
    return !none.isSelected() &&  hountropfen.isSelected();
  }
 
  public boolean isManaArtefactActivated()
  {
    return !none.isSelected() && naelastein.isSelected();
  }
}
TOP

Related Classes of xapc.gui.ArtefactsBoniToBuildings

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.