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

public class FermetureFenetre implements WindowListener {

	private JPanel panneau;
	private JFrame fenetre;

	public FermetureFenetre(JFrame fenetre, JPanel panneau) {
		super();
		this.fenetre = fenetre;
		this.panneau = panneau;
	}

	public void windowActivated(WindowEvent evenement) {

	}   // premier plan

	public void windowClosed(WindowEvent evenement) {

	}        
	public void windowClosing(WindowEvent evenement) {
		try {
			Dimension dims = this.fenetre.getSize();
			Point loc = this.fenetre.getLocation();
			Color color = this.panneau.getBackground();
			FileOutputStream fichier = new FileOutputStream("windowlocation.bin");
			DataOutputStream flux = new DataOutputStream(fichier);

			try {
				flux.writeInt((int) loc.getX());
				flux.writeInt((int) loc.getY());
				flux.writeInt((int) dims.getWidth());
				flux.writeInt((int) dims.getHeight());
				flux.writeInt(color.getRed());
				flux.writeInt(color.getGreen());
				flux.writeInt(color.getBlue());
			} catch (IOException e2){
				System.out.println("Erreur d'écriture");
			}

			try {
				flux.close();
			} catch (IOException e3) {
				System.out.println("Erreur de fermeture");
			}
		} catch (IOException e) {
			System.out.println("Erreur d'ouverture");
		}
	}      // avant fermeture

	public void windowDeactivated(WindowEvent evenement) {

	}   // arrière-plan

	public void windowDeiconified(WindowEvent evenement) {

	} // restauration

	public void windowIconified(WindowEvent evenement){

	}    // minimisation

	public void windowOpened(WindowEvent evenement) {
		try {
			FileInputStream fichier = new FileInputStream("windowlocation.bin");
			DataInputStream flux = new DataInputStream(fichier);

			try {

				if (flux.available() >= 28) {
					this.fenetre.setLocation(flux.readInt(), flux.readInt());
					this.fenetre.setSize(flux.readInt(), flux.readInt());
					this.panneau.setBackground(new Color(flux.readInt(), flux.readInt(), flux.readInt()));
					System.out.println(this.panneau.getBackground() + "");
				}


			} catch (IOException e5) {
				System.out.println("Erreur de lecture");
			}

			try {
				flux.close();
			} catch (IOException e6) {
				System.out.println("Erreur de fermeture");
			}
			
		} catch (IOException e4) {
			System.out.println("Erreur d'ouverture");
		}
	} 
}