package fr.iutfbleau.projetAgile.Puissance4.Controller;

import fr.iutfbleau.projetAgile.Puissance4.View.ColorChooserDialog;
import fr.iutfbleau.projetAgile.Puissance4.Utils.Constants;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * Classe qui implémente un ActionListener et qui "écoute" le bouton confirmé du ColorChooserDialog
 */
public class ColorActionListener implements ActionListener{
    private ColorChooserDialog dialog;
    /**
     * Constructeur du Listener
     * @param c le ColorChooserDialog qu'il écoute
     */
    public ColorActionListener(ColorChooserDialog c) {
        this.dialog = c;
    }

    /**
     * Exécuté lors de l'appuie sur le bouton confirmé. Vérifie si les entrées de l'utilisateur sont valides, puis valide son choix
     * @see fr.iutfbleau.projetAgile.Puissance4.View.ColorChooserDialog#isNameValid()
     * @see fr.iutfbleau.projetAgile.Puissance4.View.ColorChooserDialog#isColorValid()
     * @see fr.iutfbleau.projetAgile.Puissance4.View.ColorChooserDialog#setConfirm(boolean b)
     */
    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getActionCommand().equals(Constants.CONFIRM)) {
            if(this.dialog.isColorValid()) {
                if(this.dialog.isNameValid()) {
                    this.dialog.setConfirm(true);
                    this.dialog.setVisible(false);
                }
            }
            else {
                this.dialog.repaint();
            }
        }
        else {
            this.dialog.setConfirm(false);
            this.dialog.setVisible(false);
        }
        
    }
}
