package main;
import javax.swing.*;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.*;

import java.util.List;
import java.util.ArrayList;

public class ChatIHM extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	FormulaireChat panneauFormulaire;
	PanneauListeContact panneauListeContact;
	JButton boutonEditer;
	JButton boutonModifier;
	JButton boutonAjouter;
	JButton boutonSupprimer;

	public ChatIHM(List<Contact> contacts) {
	
		
		setLayout(new BorderLayout());
		
		//Menu
				JMenuBar jmb = new JMenuBar();
				JMenu mFichier = new JMenu("Fichier");
				JMenu mInfo = new JMenu("A propos");
				
				JMenuItem mSauver = new JMenuItem ("Sauvegarder");
				JMenuItem mOuvrir = new JMenuItem ("Ouvrir");
				JMenuItem mQuitter = new JMenuItem ("Quitter");
				JMenuItem mAPropos = new JMenuItem("A propos");
				
				//Listeners
				mEtListener mel = new mEtListener();
				
				add(jmb,BorderLayout.NORTH);
				jmb.add(mFichier);
				jmb.add(mInfo);
				mFichier.add(mSauver);
				mSauver.addActionListener(mel);
				mFichier.add(mOuvrir);
				mOuvrir.addActionListener(mel);
				mFichier.addSeparator();
				mFichier.add(mQuitter);
				mQuitter.addActionListener(mel);
				mInfo.add(mAPropos);
				mAPropos.addActionListener(mel);
				
		
		

		// panneau contenant la liste des contacts Ã  l'Ouest
		panneauListeContact = new PanneauListeContact(contacts);
		add(panneauListeContact, BorderLayout.WEST);

		// panneau contenant le formulaire de saisie d'un etudiant
		panneauFormulaire = new FormulaireContact();
		add(panneauFormulaire, BorderLayout.EAST);

		// panneau des boutons d'action au centre
		JPanel panneauBoutons;
		
		//panneau à bouton
		panneauBoutons = new JPanel();
		panneauBoutons.setLayout(new GridLayout(0,1));
		boutonEditer = new JButton("Editer =>");
		boutonModifier = new JButton("<= Modifier");
		boutonAjouter = new JButton("<= Ajouter");
		boutonSupprimer = new JButton("X Supprimer X");
		panneauBoutons.add(boutonEditer);
		panneauBoutons.add(boutonModifier);
		panneauBoutons.add(boutonAjouter);
		panneauBoutons.add(boutonSupprimer);
		
		//panneauCentral.add(panneauBoutons, BorderLayout.CENTER);
		add(panneauBoutons, BorderLayout.CENTER);

		// Gestion des evenements
		boutonAjouter.addActionListener(new EcouteurBoutonAjouter(this));
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// Assemblage et affichage
		pack();
		setVisible(true);
	}

	public void ajouterContact() {
		// TODO : rÃ©cupÃ©rer les valeurs dans le formulaire
		// et ajouter le nouvel Ã©tudiant corrrespondant
		System.out.println("TODO AJOUTER");
		System.out.println(panneauFormulaire.getNom() + " "
			+ panneauFormulaire.getPrenom());
		// Correction :
		panneauListeContact.ajouterContact(panneauFormulaire.getContacts());
	}

	



	/**
 	 * application principale : lance l'IHM initialisÃ©e avec
 	 * une liste de quelques Ã©tudiants
 	 */ 
	public static void main(String[] args) {
	
		ChatIHM ihm;
		contacts = new ArrayList<Contact>();
		contacts.add(new Etudiant("lefou"));
		contacts.add(new Etudiant("Dupont"));
		contacts.add(new Etudiant("Durand"));
		ihm = new ChatIHM(Contact);
	}
}


// Ecouteurs mettant en relation les boutons d'action de l'IHM avec ses mÃ©thodes
// de modification de la liste d'Ã©tudiant



/******/
class EcouteurBoutonAjouter implements ActionListener {
	private ChatIHM ihm;

	public EcouteurBoutonAjouter(ChatIHM ihm) {
		this.ihm = ihm;
	}

	public void actionPerformed(ActionEvent e) {
		ihm.ajouterContact();
	}
}
