import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Menu;
import java.io.*;
import java.util.StringTokenizer;
import java.util.*;

class Espion{
    String nomUtilisateur;
    String type2="";
    String niveau2="";
    String fini2="";
    Frame popupEspion;
    JPanel panel;
    int cpt=0;
    int cpt2=0;
    int y =0;
    JLabel[] mesLabelsTypeExo;
    JLabel[] mesLabelsNomExo;
    JLabel[] mesLabelsNiveauExo;
    JLabel[] mesLabelsReussiteExo;
    JLabel[] mesLabelsFiniExo;
    JLabel labelTypeExo = new JLabel("Catégorie");
    JLabel labelNomExo = new JLabel("Nom de l'exercice");
    JLabel labelNiveau = new JLabel("Niveau");
    JLabel labelReussite = new JLabel("Réussite");
    JLabel labelFini = new JLabel("Etat"); 
    ImageIcon iconBad = new ImageIcon("smileyBad.gif");
    ImageIcon iconMoyen = new ImageIcon("smileyBad.gif");
    ImageIcon iconGood = new ImageIcon("smileyl_clin_doeil_ani.gif");
    ImageIcon iconTitre = new ImageIcon("resultat.gif");
    JLabel labelTitre = new JLabel(iconTitre,JLabel.CENTER);
    JLabel labelNom;
    public Espion(String nom){
	nomUtilisateur = nom;
	String fileName = "espion.txt";
	File f = new File(fileName);
	if(f.exists()){
	    f.delete();
	}
	PropsHandler handler = new PropsHandler(); 
	String propertiesFilePath = fileName; 
	Properties props = handler.loadProps(propertiesFilePath); 
	props.put("NOM ",nomUtilisateur); 
	handler.storeProps(propertiesFilePath,props); 
    } 


    public void insertData(String cleExo, String nomExo,int niveau, int reussite, int fini){
	String fileName = "espion.txt";
	PropsHandler handler = new PropsHandler(); 
	String propertiesFilePath = fileName; 
	Properties props = handler.loadProps(propertiesFilePath); 
	props.setProperty(cleExo, nomExo+"/"+niveau+"/"+reussite+"/"+fini); 
	handler.storeProps(propertiesFilePath,props); 
	    
}


    public void edite(){
	

	Vector mesClesValeurs = new Vector();
	PropsHandler handler = new PropsHandler(); 
	String propertiesFilePath = "espion.txt"; 
	Properties props = handler.loadProps(propertiesFilePath); 
	String nom=props.getProperty("NOM"); 
		
	for(Enumeration e = props.propertyNames() ; e.hasMoreElements() ;) {
	    String cle = (e.nextElement()).toString();
	    String valeur = props.getProperty(cle);
	   	    
	    if(!(cle.equals("NOM "))){
		mesClesValeurs.addElement(cle);
		mesClesValeurs.addElement(valeur);
		cpt++;
	    }
	}
	

	if(!(mesClesValeurs.isEmpty())){
	    mesLabelsTypeExo = new JLabel[cpt+1];
	    mesLabelsNomExo = new JLabel[cpt+1];
	    mesLabelsNiveauExo = new JLabel[cpt+1];
	    mesLabelsReussiteExo = new JLabel[cpt+1];
	    mesLabelsFiniExo = new JLabel[cpt+1];
	    cpt2=0;
	    for(Iterator it = mesClesValeurs.iterator(); it.hasNext();){
		cpt2++;
		String lacle = it.next().toString();
		String lesvaleurs = it.next().toString();
		//System.out.println(lesvaleurs);
		StringTokenizer line = new StringTokenizer(lacle,"|");
		
		String type=line.nextToken();
		if(type.equals("orth")){
		    type2="Orthographe";
		}
		if(type.equals("drag")){
		    type2="Repérage";
		}
		if(type.equals("reconnaissance")){
		    type2="Images";
		}

		mesLabelsTypeExo[cpt2] = new JLabel(type2);
		System.out.println(type2);
		
		
		
		
		//les valeurs
		StringTokenizer line2 = new StringTokenizer(lesvaleurs,"/");
		String nomExo = line2.nextToken();
		mesLabelsNomExo[cpt2] = new JLabel(nomExo);
		System.out.println(nomExo);

		String niveau=line2.nextToken();
		if(niveau.equals("1")){
		    niveau2="Facile";
		}
		if(niveau.equals("2")){
		    niveau2="Moyen";
		}
		if(niveau.equals("3")){
		    niveau2="Difficile";
		}
		mesLabelsNiveauExo[cpt2] = new JLabel(niveau2);
		System.out.println(niveau2);
		
		String reussite=line2.nextToken();
		int r = (new Integer(reussite)).intValue();
		if(r<50){
		    mesLabelsReussiteExo[cpt2] = new JLabel(reussite+" %",iconBad,JLabel.LEFT);
		}
		if(r>=50){
		    mesLabelsReussiteExo[cpt2] = new JLabel(reussite+" %",iconGood,JLabel.LEFT);
		}
		
		
		System.out.println(reussite);
		
		
		String fini=line2.nextToken();
		if(fini.equals("1")){
		    fini2="Terminé";
		}
		if(fini.equals("0")){
		    fini2="Non terminé";
		}
		mesLabelsFiniExo[cpt2] = new JLabel(fini2);
		System.out.println(fini2);
		
		System.out.println("fini///////////////////////////////////////////");
	    }
	}
    }

    public void montre(){
	popupEspion = new Frame ("Edition de session");
	panel = new JPanel();
	panel.setLayout(null);
	panel.setPreferredSize(new Dimension(600, 1200));
	panel.setBackground(Color.blue);
	labelTitre.setBounds(new Rectangle(0,0,1024,150));

	labelTypeExo.setBounds(new Rectangle(50, 200,200,50));
	labelTypeExo.setFont(new java.awt.Font("Arial", 1, 20));
	labelTypeExo.setForeground(Color.red);
	labelNomExo.setBounds(new Rectangle(200, 200,200,50));
	labelNomExo.setFont(new java.awt.Font("Arial", 1, 20));
	labelNomExo.setForeground(Color.red);
	labelNiveau.setBounds(new Rectangle(410,200,100,50));
	labelNiveau.setFont(new java.awt.Font("Arial", 1, 20));
	labelNiveau.setForeground(Color.red);
	labelReussite.setBounds(new Rectangle(590,200,150,50));
	labelReussite.setFont(new java.awt.Font("Arial", 1, 20));
	labelReussite.setForeground(Color.red);
	labelFini.setBounds(new Rectangle(770, 200,100,50));
	labelFini.setFont(new java.awt.Font("Arial", 1, 20));
	labelFini.setForeground(Color.red);
	labelNom=new JLabel(nomUtilisateur, JLabel.CENTER);
	labelNom.setBounds(new Rectangle(0,140,1024,50));
	labelNom.setFont(new java.awt.Font("Arial", 1, 20));
	labelNom.setForeground(Color.yellow);
	panel.add(labelNom);
	panel.add(labelTitre);
	panel.add(labelTypeExo);
	panel.add(labelNomExo);
	panel.add(labelNiveau);
	panel.add(labelReussite);
	panel.add(labelFini);
	y = 200;
	for(int i=1; i<=cpt2; i++){
	    y+=50;
	    mesLabelsTypeExo[i].setBounds(new Rectangle(50,y,200,50));
	    mesLabelsTypeExo[i].setForeground(Color.white);
	    mesLabelsNomExo[i].setBounds(new Rectangle(230,y,200,50));
	    mesLabelsNomExo[i].setForeground(Color.white);
	    mesLabelsNiveauExo[i].setBounds(new Rectangle(410,y,100,50));
	    mesLabelsNiveauExo[i].setForeground(Color.white); 
	    mesLabelsReussiteExo[i].setBounds(new Rectangle(590,y,150,50));
	    mesLabelsReussiteExo[i].setForeground(Color.white);
	    mesLabelsFiniExo[i].setBounds(new Rectangle(770,y,100,50));
	    mesLabelsFiniExo[i].setForeground(Color.white);
	    
	    panel.add(mesLabelsTypeExo[i]);
	    panel.add(mesLabelsNomExo[i]);
	    panel.add(mesLabelsNiveauExo[i]);
	    panel.add(mesLabelsReussiteExo[i]);
	    panel.add(mesLabelsFiniExo[i]);

	}
	
	
	
	
	popupEspion.add("North",panel);
	popupEspion.addWindowListener(new WindowAdapter(){
		public void windowClosing(WindowEvent e){
		    popupEspion.dispose();
		}
	    }
				      );
	popupEspion.setSize(1024,708);
	popupEspion.show();
	
    }
    public static void main(String[] args){
	Espion mouchard = new Espion("robert");
	mouchard.edite();
	mouchard.montre();
    }
}

