import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class RecupereSauvegarde{
    public static JFrame recupereFenetre(String cheminSauvegarde){
	JFrame fenetre = null;
	try{
	    FileInputStream fichier = new FileInputStream(cheminSauvegarde);
	    ObjectInputStream source = new ObjectInputStream(fichier);
	    try{
	        fenetre = (JFrame) source.readObject();
	    }
	    catch(ClassNotFoundException e){
	        System.err.println("impossible de trouver la classe sauvegarder");
		return RecupereSauvegarde.fenetreParDefault();
	    }
	    catch (IOException e){
	        System.err.println("echec dans la lecture du fichier");
		return RecupereSauvegarde.fenetreParDefault();
	    }
	    try{
	        source.close();
	    }
	    catch (IOException e){
	        System.err.println("echec dans la fermeture du fichier");
	    }
	}
        catch (IOException e){
            System.err.println("echec dans l'ouverture du fichier");
	    return RecupereSauvegarde.fenetreParDefault();
        }
	return fenetre;
    }

    public static JFrame fenetreParDefault(){
	JFrame fenetre = new JFrame();
	fenetre.setSize(500, 300);
	fenetre.setLocation(0, 0);
        fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	
	JButton boutonCyan = new JButton("Cyan");
	JButton boutonMagenta = new JButton("Magenta");
	JButton boutonJaune = new JButton("Jaune");
	
	JPanel contenu = new JPanel();
	contenu.add(boutonCyan);
	contenu.add(boutonMagenta);
	contenu.add(boutonJaune);
	
	FondEvent evenementBouton = new FondEvent(contenu);

	boutonCyan.addActionListener(evenementBouton);
	boutonMagenta.addActionListener(evenementBouton);
	boutonJaune.addActionListener(evenementBouton);

	fenetre.add(contenu);

	return fenetre;
    }

    public static void sauvegardeJFrame(JFrame fenetre, String cheminSauvegarde){
	try{
	    FileOutputStream fichier = new FileOutputStream(cheminSauvegarde);
	    ObjectOutputStream source = new ObjectOutputStream(fichier);
	    try{
	        source.writeObject(fenetre);
	    }
	    catch (IOException e){
	        System.err.println("echec dans l'ecriture du fichier");
	    }
	    try{
	        source.close();
	    }
	    catch (IOException e){
                System.err.println("echec dans la fermeture du fichier");
	    }
	}
	catch (IOException e){
	    System.err.println("echec dans l'ouverture du fichier");
	}
    }
}
