package client.control.benchmark;

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

import javax.swing.JOptionPane;

import client.view.member.PanelMembre;
import client.view.respoGroup.PanelRespoGroupe;

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

	//Déclaration des variables
	private PanelRespoGroupe prg = null;
	private PanelMembre pm = null;
	public static int idBenchmark;

	/**<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
     * 
     */
	@Override
	public void actionPerformed(ActionEvent e) {
		
		Component c = (Component) e.getSource();
		
		while (c != null) {
			if (c instanceof PanelRespoGroupe) {
				prg = (PanelRespoGroupe) c;
			} else if (c instanceof PanelMembre) {
				pm = (PanelMembre) c;
			}
			c = c.getParent();
		}
		
		//On affiche le panel pour les responsables de groupe
		if(prg != null){
			
			//On lance le fop pour imprimer
			try {
				Process p = Runtime.getRuntime().exec("fop -xml resources/XML/benchmark-n"+idBenchmark+".xml -xsl resources/XML/result-sample-benchmark.xsl -pdf resultatBenchmark"+idBenchmark+".pdf"); 
				p.waitFor(); 
				JOptionPane.showMessageDialog(prg, "Votre résultat a été imprimé",	"Impression effectuée", JOptionPane.INFORMATION_MESSAGE);
			} catch(Exception e1) { 
				System.out.println(e1.getStackTrace());
			}
		}
		
		//On affiche le panel pour les membres
		if(pm != null){
			
			//On lance le fop pour imprimer
			try {
				Process p = Runtime.getRuntime().exec("fop -xml resources/XML/benchmark-n"+idBenchmark+".xml -xsl resources/XML/result-sample-benchmark.xsl -pdf resources/resultatBenchmark"+idBenchmark+".pdf"); 
				p.waitFor();
				JOptionPane.showMessageDialog(pm, "Votre résultat a été imprimé",	"Impression effectuée", JOptionPane.INFORMATION_MESSAGE);
			} catch(Exception e1) { 
				System.out.println(e1.getStackTrace());
			}
		}
	}

}
