package client.control.admin;

import client.Application;
import client.ApplicationHelper;
import client.model.user.Droits;
import client.model.user.Role;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import client.view.admin.PanelAdmin;
import client.view.admin.gestionUser.PanelExclureUser;
import client.view.admin.gestionUser.PanelGestionUser;
import javax.swing.JOptionPane;

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

	public EcouteurExclureMembre() {}

	/**
	 * <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);

		// On test si ce role possède le droit d'exclure un membre
		if (ApplicationHelper.ARoleCan(idRole, Droits.EXCLURE_MEMBRE)) {
			if (PanelAdmin.getInstance().getPanUser().getUserBox()
					.getSelectedIndex() != 0
					&& PanelAdmin.getInstance().getPanUser().getUserBox()
							.getSelectedIndex() != Application.getInstance()
							.sizeOfArrayUser() + 1) {

				PanelExclureUser.getInstance().setUserSelected(
						Application.getInstance().getIdUser(
								PanelGestionUser.getInstance().getUserBox()
										.getSelectedItem().toString()));
				PanelExclureUser.getInstance().remplirGroupeBox();
				PanelExclureUser.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(),
					"Vous n'avez pas les droits pour exclure un membre",
					"Erreur", JOptionPane.ERROR_MESSAGE);
		}
	}
}
