import java.awt.*;
import java.io.File;
import javax.swing.*;
/**
 * Projet :PaintRevolution
 * <p>Titre :Ouvrir.java </p>
 * <p>Description : Classe permettant d'ouvrir un document enregistré ou 
 * d'ouvrir une image</p>
 * <p>Copyright : Copyright (c) 2005</p>
 * <p>Société : IUT CHARLEMAGNE NANCY II</p>
 * @author VIGNERON GEOFFROY && GANGANELLI DORIAN
 * @version 3.0
 */
public class Ouvrir extends JFileChooser{
    /**
     * Fenetre principale contenant l 'appel à l'ouverture
     */
    private JFramePrincipale fenetre;
    
    /**
     * Constructeur permettant l'ouverture d'une image
     * @param jf la fenetre de l'application
     */
    public  Ouvrir(JFramePrincipale jf){
        fenetre=jf;
        
        //détermination extension fichier
        ExtensionFichier all = new ExtensionFichier(new String[] { "gif", "jpeg", "jpg","png" }, "Toutes les photos (*.gif, *.jpeg, *.jpg, *.png)");
        ExtensionFichier gif = new ExtensionFichier(new String[] { "gif" },"Image GIF (*.gif)");
        ExtensionFichier jpg = new ExtensionFichier(new String[] { "jpeg", "jpg" },"Image JPEG (*.jpeg, *.jpg)");
        ExtensionFichier png = new ExtensionFichier(new String[] { "png" },"Image PNG (*.png)");
        //ajout extension au JFileChooser
        this.addChoosableFileFilter(gif);
        this.addChoosableFileFilter(jpg);
        this.addChoosableFileFilter(png);
        this.addChoosableFileFilter(all);
        //selection fichier et dossier
        this.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
        //traitement sur l'ouverture
        try{
            int test = showOpenDialog(fenetre);
            if (test == JFileChooser.APPROVE_OPTION) {
                File photo = this.getSelectedFile();
                String nomPhoto = photo.getName();
                String chemin = photo.getPath();
                if (!all.accept(photo)){
                    JOptionPane.showMessageDialog(fenetre,"Le format du fichier n'est pas une image","Erreur chargement",JOptionPane.WARNING_MESSAGE);
                }else{
                    ImageIcon i_photo = new ImageIcon(chemin);
                    int larg = i_photo.getIconWidth();
                    int haut = i_photo.getIconHeight();
                    DessinFigures dessin = new DessinFigures();
                    PanelJFramePrincipale jp = new PanelJFramePrincipale(fenetre,new BarreOutils(fenetre,dessin,Color.white,Color.red,Color.orange),Color.white);
                    dessin=jp.getDessin();
                    dessin.setBackground(Color.white);
                    dessin.ajoute(new UnePhoto(dessin,i_photo.getImage()));
                    fenetre.setContentPane(jp);
                    fenetre.getMenu().setCreation(true);
                    fenetre.getMenu().setOuverture(true);
                    fenetre.getMenu().setEnabledBarre(true);
                    fenetre.setTitle("PaintRevolution-"+nomPhoto);
                    JOptionPane.showMessageDialog(fenetre, "Creation en cours"); 
                }
            }
        }catch(Exception e){
            JOptionPane.showMessageDialog(fenetre,"Impossible d'ouvrir ce fichier","Erreur chargement",JOptionPane.WARNING_MESSAGE);
        }
    }
}
