package client.control.probleme;

import client.view.member.PanelMembre;
import client.view.respoGroup.PanelRespoGroupe;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;

/** <u><b>Explication générale de la classe :</b></u>
 * <P>Cette classe permet de créer le controleur instancié dans PanelProbleme du bouton Annuler
 *
 * @author Dream Team - ING2
 */
public class ControleurBoutonAnnulerProb implements ActionListener {

    /**<u><i>Explication générale du constructeur :</i></u>
     * <P> Constructeur de la classe permettant de créer le Controleur du bouton Annuler et de récuperer le Panel Problème
     *
     */
    public ControleurBoutonAnnulerProb() {}

    /**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode est l'ecouteur du bouton Annuler. Si l'utilisateur accepte d'annuler,
     * les differents panels disparaissent. Il ne peut plus que creer ou selectionner un problème
     *
     */
    public void actionPerformed(ActionEvent e) {

        Component c = (Component) e.getSource();

        PanelRespoGroupe prg = null;
        PanelMembre pm = null;

        while (c != null) {
            if (c instanceof PanelRespoGroupe) {
                prg = (PanelRespoGroupe) c;
            } else if (c instanceof PanelMembre) {
                pm = (PanelMembre) c;
            }
            c = c.getParent();
        }

        int option = JOptionPane.showConfirmDialog(null, "Voulez-vous arrêter ?", "Arrêt", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);

        if (option != JOptionPane.NO_OPTION && option != JOptionPane.CLOSED_OPTION) {

            if (prg != null) {
                if (prg.getProbleme().getPanCreerPb().isVisible()) {

                    prg.getProbleme().getPanCreerPb().ViderPanelCreer();

                    //On met les panels invisbles
                    prg.getProbleme().getPanCreerPb().setVisible(false);
                    prg.getProbleme().getPanModifPb().setVisible(false);
                    prg.getProbleme().getPanConsultPb().setVisible(false);
                    prg.getProbleme().getPanChoixPb().setVisible(true);
                    prg.getProbleme().getPanChoixPb().getProblemeBox().setSelectedIndex(0);
                }

                if (prg.getProbleme().getPanModifPb().isVisible()) {

                    prg.getProbleme().getPanModifPb().ViderPanelModif();

                    //On met les panels invisbles
                    prg.getProbleme().getPanCreerPb().setVisible(false);
                    prg.getProbleme().getPanModifPb().setVisible(false);
                    prg.getProbleme().getPanConsultPb().setVisible(false);
                    prg.getProbleme().getPanChoixPb().setVisible(true);
                }
            } else if (pm != null) {
                if (pm.getProbleme().getPanCreerPb().isVisible()) {

                    pm.getProbleme().getPanCreerPb().ViderPanelCreer();

                    //On met les panels invisbles
                    pm.getProbleme().getPanCreerPb().setVisible(false);
                    pm.getProbleme().getPanModifPb().setVisible(false);
                    pm.getProbleme().getPanConsultPb().setVisible(false);
                    pm.getProbleme().getPanChoixPb().setVisible(true);
                    pm.getProbleme().getPanChoixPb().getProblemeBox().setSelectedIndex(0);
                }

                if (pm.getProbleme().getPanModifPb().isVisible()) {

                    pm.getProbleme().getPanModifPb().ViderPanelModif();

                    //On met les panels invisbles
                    pm.getProbleme().getPanCreerPb().setVisible(false);
                    pm.getProbleme().getPanModifPb().setVisible(false);
                    pm.getProbleme().getPanConsultPb().setVisible(false);
                    pm.getProbleme().getPanChoixPb().setVisible(true);
                }
            }
        }
    }
}
