package client.control.admin;

import client.Application;
import client.ApplicationHelper;
import client.view.accueil.PanelAccueil;
import client.view.admin.PanelAdmin;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Level;

import client.view.admin.gestionUser.PanelExclureUser;
import javax.swing.JOptionPane;

import reseau.UnauthorizedOperationException;

/**<u><b>Explication générale de la classe :</b></u>
 * <P> Cette classe permet de gérer l'évènement lié au bouton de l'exclusion
 *
 * @author Dream Team - ING2
 */
public class EcouteurExclusion implements ActionListener {

	//Variables permettant de définir les ActionCommand
    public static final String VALIDER = "VALIDER";
    public static final String ANNULER = "ANNULER";

    public EcouteurExclusion() {}

    /**<u><i>Explication générale de la méthode :</i></u>
     * <P> Cette méthode permet de gérer les évènements liés à la souris
     * 
     * @param e Evènement souris
     * 
     */
    public void actionPerformed(ActionEvent e) {
        if(e.getActionCommand().equals(VALIDER)){

        	//On recupère le nom de l'utilisateur et du groupe
            String nomUser = PanelAdmin.getInstance().getPanUser().getUserBox().getSelectedItem().toString();
            String nomGroup = PanelExclureUser.getInstance().getGroupBox().getSelectedItem().toString();

            //On récupère les id utiles !
            int idUser = PanelExclureUser.getInstance().getUserSelected();
            int idGroup = Application.getInstance().getIdGroupe(nomGroup);

            System.out.println("idGroup : "+idGroup);
            System.out.println("idUser : "+idUser);

            if(ApplicationHelper.CanKickUser(idUser, idGroup)){
            		
            	ApplicationHelper.RemoveUserFromGroup(idUser, idGroup);

                //On MAJ les activités récentes
                Application.getInstance().getUser(Application.idSelect).addActivity(nomUser+" exclue "+nomGroup);
                PanelAccueil.getInstance().getListOfActivite().setListData(Application.getInstance().getUser(Application.idSelect).displayActivities());
                PanelAccueil.getInstance().updateUI();

                //TODO Un p'tit coup de réseau par là !
                throw new UnsupportedOperationException("Méthode kickUser pas encore implémenté");
                
            } else{
                JOptionPane.showMessageDialog(PanelAdmin.getInstance(), "Erreur, Un utilisateur se retrouverait sans groupe", "Erreur - Suppression du groupe...", JOptionPane.ERROR_MESSAGE);
            }
        }
    }
}
