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

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.GridLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import fr.iutfbleau.projetIHM2022FI2.API.AbstractChangementFactory;
import fr.iutfbleau.projetIHM2022FI2.API.Changement;
import fr.iutfbleau.projetIHM2022FI2.API.Model;
import fr.iutfbleau.projetIHM2022FI2.MP.ROOT.Controller.ActionChangement;
/**
 * Affichage des changements
 *
 */
public class FenetreChangement extends JPanel{
	// les changements a afficher
    private AbstractChangementFactory change;
	// le modèle
    private Model m;

		/**
		 * Constructeur de l'affichage des changements
		 * @param list la liste des changements
		 * @param m le mlodèle
		 */
    public FenetreChangement(AbstractChangementFactory list, Model m){
        this.change=list;
        this.m=m;
        this.draw();
    }

		/**
		 * gère l'affichage des changements
		 */
    public void draw(){
        if(this.change==null || this.change.getAllChangements().size()==0){
            this.setBackground(Color.RED);
            this.setLayout(new FlowLayout());
            JLabel text=new JLabel("Aucune Demande de changement effectuer");
            text.setMinimumSize(this.getSize());
            this.add(text);
        }else{
            this.setLayout(new GridLayout(this.change.getAllChangements().size(), 6, 20, 0));
            for(Changement ch: this.change.getAllChangements()){
                this.add(new JLabel("L'etudiant "+ch.getEtu().getNom()+" "+ch.getEtu().getPrenom()));
                this.add(new JLabel("veut passer du groupe "+ch.getA().getName()));
                this.add(new JLabel(" au groupe "+ch.getB().getName()));
                JButton raison;
                if(ch.getRaison()==null){
                    raison=new JButton("Type 1");
                }else{
                    raison=new JButton("Raison");
                    raison.addActionListener(new ActionChangement(this.m, ch));
                }
                this.add(raison);
                JButton supr=new JButton("Supprimer");
                supr.addActionListener(new ActionChangement(this.m, ch));
                JButton val=new JButton("Valider");
                val.addActionListener(new ActionChangement(this.m, ch));
                supr.setBackground(Color.RED);
                val.setBackground(Color.GREEN);
                this.add(val);
                this.add(supr);
            }
        }
    }
		/**
		 * rafraichit l'affichage
		 */
    public void refresh(){
        this.removeAll();
        this.draw();
        this.revalidate();
    }

}
