package client.control.membre;

import client.Application;
import client.ApplicationHelper;
import client.model.user.Droits;
import client.model.user.Role;
import client.model.user.Utilisateur;
import client.view.accueil.PanelAccueil;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import client.view.admin.PanelAdmin;
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 des membres
 * 
 * @author Dream Team - ING2
 */
public class EcouteurMembre implements ActionListener {

	public EcouteurMembre() {}

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

		//On récupère le rôle
		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 de modification de membre
		if (ApplicationHelper.ARoleCan(idRole, Droits.MODIFIER_MEMBRE)) {
			if (PanelAdmin.getInstance().getPanUser().getUserBox()
					.getSelectedIndex() != 0
					&& PanelAdmin.getInstance().getPanUser().getUserBox()
							.getSelectedIndex() != Application.getInstance()
							.sizeOfArrayUser() + 1) {

				// On recupère l'user concerné
				Utilisateur userRecup = Application.getInstance().getUser(
						PanelAdmin.getInstance().getPanUser().getUserBox()
								.getSelectedItem().toString());

				PanelAdmin.getInstance().getPmu().getLogin().setText(
						userRecup.getLogin());
				PanelAdmin.getInstance().getPmu().getPassword().setText(
						userRecup.getPassword());

				PanelAdmin.getInstance().getPmu().setUserModifier(userRecup);
				PanelAdmin.getInstance().getPmu().updateUI();

				// On MAJ les activités récentes
				Application.getInstance().getUser(Application.idSelect)
						.addActivity(userRecup + " à été modifié");
				PanelAccueil.getInstance().getListOfActivite().setListData(
						Application.getInstance().getUser(Application.idSelect)
								.displayActivities());
				PanelAccueil.getInstance().updateUI();
			}
		} else {
			JOptionPane.showMessageDialog(PanelAdmin.getInstance(),
					"Vous n'avez pas le droit de modifier un utilisateur",
					"Erreur", JOptionPane.ERROR_MESSAGE);
		}
	}

}
