import java.awt.*;
import javax.swing.*;
/**
 * Projet: PaintRevolution
 * <p>Title:PanelJFramePrincipale.java </p>
 * <p>Description:Classe qui représente le panel de la fenetre principale </p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Societe: IUT NANCY CHARLEMAGNE II</p>
 * @author VIGNERON GEOFFROY && GANGANELLI DORIAN
 * @version 3.0
 */
public class PanelJFramePrincipale extends JPanel {
    /**
     * Fenetre contenant le panel     
     */
    private JFramePrincipale fp;
    
    /**
     * Panel dessinable contenu dans le PanelPrincipale 
     */
    private DessinFigures dessin;
    
    /**
     * BarreOutils contenu dans le PanelPrincipale
     */
    private BarreOutils b;
    
    /**
     * BarreOperations contenu dans le PanelPrincipale
     */
    private BarreOperations barop;
    
    /**
     * Constructeur d'un Panel contenant une barre outils,une barre operations
     * et un panel dessinable
     * @param frame la fenetre principale
     * @param bo la barre outils qui permet de choisir la couleur et la figure
     * @param cfond la couleur du panel dessinable
     */
    public PanelJFramePrincipale(JFramePrincipale frame,BarreOutils bo,Color cfond) {
        fp = frame;
        dessin= new DessinFigures();
        b=bo;
        
        //Creation panel contenant le dessin
        JPanel pan=new JPanel();
        
        //Creation du menu ds operations
        barop=new BarreOperations(fp,this);
        
        // Choix du layout général
        this.setLayout(new BorderLayout());
        this.add(b,BorderLayout.EAST);
        this.add(barop, BorderLayout.WEST);
        
        //dimension du panel dessinable
        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
        int x = dim.getSize().width;
        int y = dim.getSize().height;
        dessin.setPreferredSize(new Dimension(800,680));
        
        //ajout du panel contenant le dessin
        this.add(pan,BorderLayout.CENTER);
        pan.add(dessin);
        dessin.setBackground(cfond);
        
        //visibilite des menus
        b.setVisible(true);
        barop.setVisible(true);
        
    }
    
    /**
     * Methode permettant de recuperer le panel dessinable
     * @return un DessinFigures
     */
    public DessinFigures getDessin() {
        return this.dessin;
    }
    
    /**
     * Methode permettant de recuperer la barre outils
     * @return une BarreOutils
     */
    public BarreOutils getBarreOutils() {
        return this.b;
    }
    
    /**
     * Méthode permettant de recuperer la barre operations
     * @return une BarreOperations
     */
    public BarreOperations getBarreOperations() {
        return this.barop;
    }
    
    /**
     * Méthode permettant de visualiser ou non la barre outils
     * @param visible un booléen à vrai si on desire visualiser la barre outils
     */
    public void setVisibleBarreOutils(boolean visible){
        b.setVisible(visible);
    }
    
    /**
     * Méthode permettant de visualiser ou non la barre opérations
     * @param visible un booléen à vrai si on desire visualiser la barre opérations
     */
    public void setVisibleBarreOperations(boolean visible){
        barop.setVisible(visible);
    }
}
