package client.view;

//------------------------------------Importations des différentes bibliothèques---------------------------------//
import client.control.Command;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

//-----------------------------------Fin Importations des différentes bibliothèques------------------------------//





//-------------------------------------------------Début de la classe------------------------------------------------//
/**<u><b>Explication générale de la classe :</b></u>
 * <P>Cette classe permet de gérer le panel générale.
 *
 * @author Dream Team - ING2
 */
public class PanelGenerale extends JPanel implements ActionListener {

    //Déclaration des variables.
    private static PanelGenerale panSingleton;
    private JTabbedPane vueOnglet;

    public static PanelGenerale getInstance(){
        if(panSingleton == null){
            panSingleton = new PanelGenerale();
        }
        return panSingleton;
    }

    /**<u><i>Explication de la méthode :</i></u>
     * <P> Constructeur du panel général.
     */
    private PanelGenerale() {

    	//Layout du panel
        this.setLayout(new GridLayout(1, 1));

        //Couleur de fond
        this.setBackground(new Color(234, 232, 233));

        //Positionnement et taille
        this.setBounds(0, 0, 880, 500);

        //Panel des Onglets
        vueOnglet = new JTabbedPane();
        vueOnglet.setBounds(15, 0, 860, 490);
        this.add(vueOnglet);
    }

    /**<u><i>Explication de la méthode :</i></u>
    * <P> Cette méthode permet de récupérer la référence de l'ensemble des onglets
    * 
    * @return l'ensemble des onglets
    * 
    */
    public JTabbedPane getVueOnglet() {
        return vueOnglet;
    }

    /**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode permet de mettre une nouvelle référence de l'ensemble des onglets
     * 
     * @param vueOnglet nouvelle référence de l'ensemble des onglets
     * 
     */
    public void setVueOnglet(JTabbedPane vueOnglet) {
        this.vueOnglet = vueOnglet;
    }

    /**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode permet de mettre une nouvelle référence de singleton du panel général
     * 
     * @param panSingleton nouvelle référence de singleton du panel général
     * 
     */
	public static void setPanSingleton(PanelGenerale panSingleton) {
		PanelGenerale.panSingleton = panSingleton;
	}

	/**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode permet d'effectuer la fonction "execute" lorsqu'il y a une action
     * 
     * @param e Evènement souris
     * 
     */
    public void actionPerformed(ActionEvent e) {
        Command c = (Command)e.getSource();
        c.execute();
    }

}

//-------------------------------------------------Fin de la classe-------------------------------------------------//
