package fr.iutfbleau.papillon;

import java.util.ArrayList;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.List;

/**
 * La classe <code>BtnModifier</code> représente un bouton permettant
 * de modifier un rappel existant dans l’application <b>Papillon</b>.
 * <p>
 * Lorsqu’un utilisateur clique sur ce bouton, il vérifie qu’un seul rappel
 * est sélectionné. Si c’est le cas, la fenêtre de modification
 * (<code>FenetreModif</code>) s’ouvre pour permettre à l’utilisateur
 * de modifier les informations du rappel choisi.
 * </p>
 *
 * @version 1.0
 * @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL
 */
public class BtnModifier extends JButton implements ActionListener {

    /**
     * Référence vers le rappel actuellement sélectionné.
     */
    private Rappel rappel;
    
    /**
     * Référence vers la fenêtre principale de l’application.
     * Elle permet de gérer la visibilité des fenêtres lors de la modification d’un rappel.
     */
    private final Main main;

    /**
     * Construit un bouton "Modifier" associé à la fenêtre principale.
     * <p>
     * Ce bouton est configuré avec une taille fixe et un écouteur d’action
     * pour réagir aux clics de l’utilisateur.
     * </p>
     *
     * @param main la fenêtre principale de l’application <b>Papillon</b>
     */
    public BtnModifier(Main main) {
        super("Modifier");
        this.main = main;
        setPreferredSize(new Dimension(120, 25));
        addActionListener(this);

        setFocusPainted(false);
    }


    @Override
    public void actionPerformed(ActionEvent e){

        if (e.getSource() == this) {            
            
            int count = 0;
            List<PanelRappel> listRpl = new ArrayList<>();
            PanelRappel pr;

            listRpl = main.getPanelRpl();
            for(int i = 0; i<listRpl.size();i++){
                pr = listRpl.get(i);
                if(pr.getSelection()==true){
                    count++;
                    rappel=pr.getRappel();
                }
            }
            
            if(count==0){
                JOptionPane.showMessageDialog(main, "Sélectionnez 1 rappel à modifier");
                return;
            }
            if(count==1){
                FenetreModif f = new FenetreModif(main,rappel);
                f.setVisible(true);
                main.dispose();
            }

            if(count>1){
                JOptionPane.showMessageDialog(main, "Sélectionnez seulement 1 rappel à modifier");
                return;
            }
            return;
        }
    }




}
