/*
 * Created on 8 juin 2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package geonoteOutils;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

import org.jdom.Element;

/**
 * @author lefevre
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
//TODO permettre l'enregistrement ulterieur du txt pour permettre le choix du tracage (oui ou non)
public class TraceurTraces extends Traceur{

	public TraceurTraces() {
		super();
	}

	public TraceurTraces(String path, String rac) {
		super(path, rac);
	}
	
	/**
	 * permet d'ajouter a un fichier de traces une action effectuée sur une entité du prog et de la dater 
	 */
	private Element ajouterTraces(String hh, String mm, String ss, String entité, String action) {
		Element entite = new Element("entite");
		entite.setText(entité);
		Element act = new Element("action");
		act.setText(action);
		Element h = new Element("heures");
		h.setText(hh);
		Element m = new Element("minutes");
		m.setText(mm);
		Element s = new Element("secondes");
		s.setText(ss);
		Element elt = new Element("instant");
		elt.addContent(h);
		elt.addContent(m);
		elt.addContent(s);
		elt.addContent(entite);
		elt.addContent(act);
		document.getRootElement().addContent(elt);
		return elt;
	}
	
    private Element ajouterTraces(String hh, String mm, String ss, String entité, String action, String param1) {
		Element elt = ajouterTraces(hh, mm, ss, entité, action);
		Element param = new Element("parametre1");
		param.setText(param1);
		elt.addContent(param);
		return elt;
	}
	
    private Element ajouterTraces(String hh, String mm, String ss, String entité, String action, String param1, String param2) {
		Element elt = ajouterTraces(hh, mm, ss, entité, action, param1);
		Element param = new Element("parametre2");
		param.setText(param2);
		elt.addContent(param);
		return elt;
	}
	
    public void ajouterTraces(String entité, String action) {
        String[] hms = horodatage();
        ajouterTraces(hms[0], hms[1], hms[2], entité, action);
        ajoutTxt(hms[0], hms[1], hms[2], entité, action);
    }
    
    public void ajouterTraces(String entité, String action, String param1) {
        String[] hms = horodatage();
        ajouterTraces(hms[0], hms[1], hms[2], entité, action, param1);
        ajoutTxt(hms[0], hms[1], hms[2], entité, action, param1);
    }
    
    public void ajouterTraces(String entité, String action, String param1, String param2) {
        String[] hms = horodatage();
        ajouterTraces(hms[0], hms[1], hms[2], entité, action, param1, param2);
        ajoutTxt(hms[0], hms[1], hms[2], entité, action, param1, param2);
    }
    
	public void ajouterNomSession(String entité, String nom) {
        Element elt = rechercher(document.getRootElement(), entité);
		if (elt != null) {
			Element nomElt = new Element("nom");
			nomElt.setText(nom);
			elt.addContent(nomElt);
		}
	}
	
    private void ajoutTxt(String h, String m, String s, String entite, String action) {
        String ext = chemin.substring(chemin.lastIndexOf("."));
        String txt = chemin.replace(ext, ".txt");
        BufferedWriter sortie;
        try {
            sortie = new BufferedWriter(new FileWriter(txt, true));
            sortie.write(h+":"+m+":"+s+", "+entite+", "+action+"\r\n");
            sortie.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    private void ajoutTxt(String h, String m, String s, String entite, String action, String param1) {
        String ext = chemin.substring(chemin.lastIndexOf("."));
        String txt = chemin.replace(ext, ".txt");
        BufferedWriter sortie;
        try {
            sortie = new BufferedWriter(new FileWriter(txt, true));
            sortie.write(h+":"+m+":"+s+", "+entite+", "+action+", "+param1+"\r\n");
            sortie.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    private void ajoutTxt(String h, String m, String s, String entite, String action, String param1, String param2) {
        String ext = chemin.substring(chemin.lastIndexOf("."));
        String txt = chemin.replace(ext, ".txt");
        BufferedWriter sortie;
        try {
            sortie = new BufferedWriter(new FileWriter(txt, true));
            sortie.write(h+":"+m+":"+s+", "+entite+", "+action+", "+param1+", "+param2+"\r\n");
            sortie.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
	/*
	 * ajout d'un clic avec ses coordonnees
	 */
//	public void ajouterAction(String action, int x, int y) {
//		Element elt = new Element(action);
//		Element X = new Element("x");
//		X.setText(Integer.toString(x));
//		Element Y = new Element("y");
//		Y.setText(Integer.toString(y));
//		elt.addContent(X);
//		elt.addContent(Y);
//		document.getRootElement().addContent(elt);
//	}
}
