Panel_CreationVague.java :  » Game » asd-tower-defense » vues » reseau » Java Open Source

Java Open Source » Game » asd tower defense 
asd tower defense » vues » reseau » Panel_CreationVague.java
/*
  Copyright (C) 2010 Aurelien Da Campo
  
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 3 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/

package vues.reseau;

import i18n.Langue;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

import vues.GestionnaireDesPolices;
import vues.LookInterface;
import vues.commun.Panel_Table;

import exceptions.ArgentInsuffisantException;
import models.creatures.*;
import models.jeu.Jeu;
import models.joueurs.GestionnaireDeRevenu;
import models.joueurs.Joueur;

/**
 * Panel de cration d'une vague de crature
 * 
 * @author Aurelien Da Campo
 * @version 1.0 | juin 2010
 * @since jdk1.6.0_16
 */
public class Panel_CreationVague extends JPanel
{
    private static final long serialVersionUID = 1L;
    private Panel_Table tb = new Panel_Table();
   
    private Creature[] creatures = new Creature[]
    {
        TypeDeCreature.getCreature(0,1,true),
        TypeDeCreature.getCreature(1,1,true),
        TypeDeCreature.getCreature(2,1,true),
        TypeDeCreature.getCreature(3,1,true),
        TypeDeCreature.getCreature(4,1,true),
        TypeDeCreature.getCreature(5,1,true),
        TypeDeCreature.getCreature(6,1,true)
    };
    
    Jeu jeu;
    
    private JButton[] bLancers = new JButton[creatures.length];
    /*
    private JComboBox[] cbNbCreatures = new JComboBox[creatures.length];
    */
    public Panel_CreationVague(final Jeu jeu, final Joueur cible, 
            final EcouteurDeLanceurDeVagues edlv)                          
    {
        super(new BorderLayout());
        
        this.jeu = jeu;
        setBackground(LookInterface.COULEUR_DE_FOND_PRI);
        
        /*
        JLabel titre = new JLabel("Lancement des creatures");
        titre.setFont(GestionnaireDesPolices.POLICE_SOUS_TITRE);
        add(titre,BorderLayout.NORTH);
        */
        
        tb.setBackground(LookInterface.COULEUR_DE_FOND_SEC);
        tb.add(new JLabel(Langue.getTexte(Langue.ID_TXT_CREATURE)),0,0);
        tb.add(new JLabel(Langue.getTexte(Langue.ID_TXT_PRIX)),1,0);
        tb.add(new JLabel(Langue.getTexte(Langue.ID_TXT_REVENU)),2,0);
        
        for(int i=0;i < creatures.length;i++)
        {
            final Creature creature = creatures[i];
            
            ImageIcon image = new ImageIcon(creature.getImage());
            /*
            final JComboBox cbNbCreatures = new JComboBox();
            
            this.cbNbCreatures[i] = cbNbCreatures;
            cbNbCreatures.addItem("1");
            cbNbCreatures.addItem("2");
            cbNbCreatures.addItem("3");
            cbNbCreatures.addItem("4");
            cbNbCreatures.addItem("5");
            cbNbCreatures.addItem("10");
            cbNbCreatures.addItem("15");
            cbNbCreatures.addItem("20");
            cbNbCreatures.addItem("30");
            */
            /*
            cbNbCreatures.addActionListener(new ActionListener()
            {
                @Override
                public void actionPerformed(ActionEvent e)
                {
                   miseAJour();
                }
            });
            */
            
            JPanel p = new JPanel(new FlowLayout());
            p.setOpaque(false);
            p.add(new JLabel(image));
            //p.add(new JLabel(" x "));
            //p.add(cbNbCreatures);
            tb.add(p,0,i+1);    
            
            tb.add(new JLabel(""+creature.getNbPiecesDOr()),1,i+1);    
            tb.add(new JLabel(""+creature.getNbPiecesDOr() * 
                    GestionnaireDeRevenu.POURCENTAGE_NB_PIECES_OR_CREATURE),2,i+1); 
               
            JButton bLancer = new JButton(Langue.getTexte(Langue.ID_TXT_BTN_LANCER));
            bLancers[i] = bLancer;
            tb.add(bLancer,3,i+1);
            
            GestionnaireDesPolices.setStyle(bLancer);
            
            bLancer.addActionListener(new ActionListener()
            {
                @Override
                public void actionPerformed(ActionEvent e)
                {
                    VagueDeCreatures vague = new VagueDeCreatures(1/*Integer.parseInt((String) cbNbCreatures.getSelectedItem())*/, creature, VagueDeCreatures.getTempsLancement(creature.getVitesseNormale()));
                    
                    try
                    {
                        edlv.lancerVague(vague);
                        miseAJour();
                    } 
                    catch (ArgentInsuffisantException e1)
                    {
                        edlv.erreurPasAssezDArgent();
                    } 
                }
            });
            
        }
        
        add(tb,BorderLayout.CENTER);
    }
    
    public void miseAJour()
    {
       double nbPiecesDOr = jeu.getJoueurPrincipal().getNbPiecesDOr();
       JButton bouton;
       for(int i=0; i < bLancers.length; i++)
       {
           bouton = bLancers[i];
           
           int nbCreatures = 1;//Integer.parseInt((String) cbNbCreatures[i].getSelectedItem());

           bouton.setEnabled(nbPiecesDOr >= creatures[i].getNbPiecesDOr() * nbCreatures);
       }
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.