package client.control.admin;

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

import javax.swing.JOptionPane;

import client.Application;
import client.ApplicationHelper;
import client.model.user.Droits;
import client.model.user.Role;
import client.view.admin.PanelAdmin;
import client.view.admin.gestionUser.PanelAssignerUser;

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

	public EcouteurAssignerMembre() {}

	/**<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) {
		Role role = Application.getInstance().getUser(Application.idSelect)
				.getRolePersonne();

		// idRole du role en question
		int idRole = Application.getInstance().getIdRole(role);

		System.out.println("idRole : " + idRole);
		// On test si ce role possède le droit d'assigner un role
		if (ApplicationHelper.ARoleCan(idRole, Droits.ASSIGNER_ROLE)) {

			// On évite les tirets
			if (PanelAdmin.getInstance().getPanUser().getUserBox()
					.getSelectedIndex() != 0
					&& PanelAdmin.getInstance().getPanUser().getUserBox()
							.getSelectedIndex() != Application.getInstance()
							.sizeOfArrayUser() + 1) {

				// On récupère l'id du membre choisi
				PanelAssignerUser.getInstance().setMembreChoisi(
						Application.getInstance().getIdUser(
								PanelAdmin.getInstance().getPanUser()
										.getUserBox().getSelectedItem()
										.toString()));

				// On met à jour les Groupes
				PanelAssignerUser.getInstance().remplirGroupeBox();
				PanelAssignerUser.getInstance().updateUI();
			}
		} else {
			JOptionPane.showMessageDialog(PanelAdmin.getInstance(),
					"Vous n'avez pas les droits pour assigner un membre",
					"Erreur", JOptionPane.ERROR_MESSAGE);
		}
	}
}
