package fr.iutfbleau.projetIHM2022FI2.MP.ROOT.View;


import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.GridLayout;
import fr.iutfbleau.projetIHM2022FI2.API.Etudiant;
import fr.iutfbleau.projetIHM2022FI2.API.Model;
import fr.iutfbleau.projetIHM2022FI2.MP.ROOT.Controller.ListenerFindBar;

import java.awt.Dimension;
import java.awt.BorderLayout;
import java.util.Set;

/**
 * barre de recherche d'etudiant
 *
 */
public class FindBarFenetre {
	// panel de la barre de recherche
    private JPanel mypanel;
		// model 
    private Model m;
		//liste des étudiants trouvés
    private Set<Etudiant> liste;

		/**
		 * constructeur de la barre de recherche
		 * @param m le model
		 */
    public FindBarFenetre(Model m){
        this.liste=null;
        this.m=m;
        this.mypanel=new JPanel();
        this.draw();
    }
		/**
		 * gère l'affichage de la barre de recherche
		 */
    private void draw(){
        JTextField searchField = new JTextField(30);
        searchField.setLayout(new BorderLayout());
        JButton label = new JButton("->");
        label.addActionListener(new ListenerFindBar(this, null));
        searchField.add(label, BorderLayout.LINE_END);
        if(this.liste!=null && this.liste.size()>0){
            this.mypanel.setLayout(new GridLayout(this.liste.size()+1, 1));
            this.mypanel.add(searchField);
            for(Etudiant e: this.liste){
                JButton etu=new JButton(e.getNom()+" "+e.getPrenom()+" "+e.getId());
                etu.addActionListener(new ListenerFindBar(this, e));
                this.mypanel.add(etu);
            }
        }else{
            this.mypanel.setLayout(new GridLayout(4, 1));
            this.mypanel.add(searchField);
            JLabel text=new JLabel("Aucun Etudiant Selectionné");
            this.mypanel.add(text);
        }
        mypanel.setSize(new Dimension(500, 500));
    }
		/**
		 * retourne le panel de la barre de recherche
		 * @return le panel de la barre de recherche
		 */
    public JPanel getPanel() {
        return mypanel;
    }
	/**
	 * recherche un étudiant par son nom
	 * @param name le nom de l'étudiant
	 */
    public void search(String name){
        this.liste=this.m.getEtu(name);
        this.mypanel.removeAll();
        this.draw();
        this.mypanel.revalidate();
    }

    public void showGroupe(Etudiant toshow){
        this.m.showGroupOfEtudiant(toshow);
    }
}
