maj
This commit is contained in:
parent
87adb0f4d8
commit
a9e1f41e67
File diff suppressed because one or more lines are too long
4
bin/.gitignore
vendored
4
bin/.gitignore
vendored
@ -7,3 +7,7 @@
|
||||
/resources/
|
||||
/evaluer/
|
||||
/outils/
|
||||
/calc/
|
||||
/baseEvaluation/
|
||||
/baseListesEtudiants/
|
||||
/calcul/
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
72
src/calc/Student.java
Normal file
72
src/calc/Student.java
Normal file
@ -0,0 +1,72 @@
|
||||
package calc;
|
||||
|
||||
import xml.EnsembleFichiers;
|
||||
import xml.LecturesDossiers;
|
||||
import xml.node;
|
||||
|
||||
public class Student {
|
||||
|
||||
|
||||
/**
|
||||
* Lecture du fichier Student pour vérification des historiques.<br>
|
||||
* <br>
|
||||
* @param nod node
|
||||
* @param i
|
||||
* @return
|
||||
*/
|
||||
public static node LectureFichierEtudiantPourVerification(node nod, node nodHisto, Integer i) {
|
||||
|
||||
node fichier = new node();
|
||||
fichier.setNameNode("fichier");
|
||||
fichier.getAttributs().put("filename", EnsembleFichiers.getListeFichierods().get(i));
|
||||
fichier.getAttributs().put("dossier", EnsembleFichiers.getListeNomDossier().get(i));
|
||||
|
||||
node nodmeta = nod.retourneFirstEnfant("office:meta");
|
||||
System.out.println(i);
|
||||
if(nodmeta==null) return null;
|
||||
LecturesDossiers.getEC();
|
||||
System.out.println(EnsembleFichiers.getListeNomDossier().get(i));
|
||||
|
||||
if(!nodmeta.retourneFirstEnfant("meta:generator").getContenu().isEmpty()) {
|
||||
fichier.getAttributs().put("producteur", nodmeta.retourneFirstEnfant("meta:generator").getContenu().get(0));
|
||||
}else {
|
||||
fichier.getAttributs().put("producteur", "nobody");
|
||||
}
|
||||
if(!nodmeta.retourneFirstEnfant("meta:generator").getContenu().isEmpty()) {
|
||||
fichier.getAttributs().put("producteur", nodmeta.retourneFirstEnfant("meta:generator").getContenu().get(0));
|
||||
}else {
|
||||
fichier.getAttributs().put("producteur", "unknow");
|
||||
}
|
||||
if(!nodmeta.retourneFirstEnfant("dc:date").getContenu().isEmpty()) {
|
||||
fichier.getAttributs().put("dateModification", nodmeta.retourneFirstEnfant("dc:date").getContenu().get(0));
|
||||
}else {
|
||||
fichier.getAttributs().put("dateModification", "unknow");
|
||||
}
|
||||
if(!nodmeta.retourneFirstEnfant("meta:editing-duration").getContenu().isEmpty()) {
|
||||
fichier.getAttributs().put("dureeEdition", nodmeta.retourneFirstEnfant("meta:editing-duration").getContenu().get(0));
|
||||
}else {
|
||||
fichier.getAttributs().put("dureeEdition", "unknow");
|
||||
}
|
||||
fichier.getEnfants().add(nodmeta);
|
||||
|
||||
node nodhistorique = new node();
|
||||
nodhistorique.setNameNode("historique");
|
||||
int nbrModif =0;
|
||||
if(nodHisto.retourneFirstEnfant("table:tracked-changes")!=null) {
|
||||
nodHisto = nodHisto.retourneFirstEnfant("table:tracked-changes");
|
||||
nodHisto.setParent(null);
|
||||
nbrModif = nodHisto.retourneFirstEnfant("table:tracked-changes").getEnfants().size();
|
||||
nodhistorique.addEnfant(nodHisto);
|
||||
}else {
|
||||
node tableTrackedVide= new node("table:tracked-changes");
|
||||
nodhistorique.addEnfant(tableTrackedVide);
|
||||
}
|
||||
nodhistorique.getAttributs().put("nbrModif", String.valueOf(nbrModif));
|
||||
|
||||
// nodhistorique.getEnfants().addAll( nod.retourneAllEnfants("office:spreadsheet")); //a.retourneNames(nod, "office:text"));
|
||||
fichier.getEnfants().add(nodhistorique);
|
||||
|
||||
return fichier;
|
||||
}
|
||||
|
||||
}
|
@ -22,6 +22,7 @@ public class commandes {
|
||||
public static node sujetSauvegarde = new node();
|
||||
public static JTree tree = new JTree();
|
||||
public static node nodeACCSV = null;
|
||||
public static String pathApp = Paths.get("").toAbsolutePath().toString();
|
||||
|
||||
//*************************
|
||||
//** version **
|
||||
|
@ -8,11 +8,15 @@ import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import calc.Student;
|
||||
import calc.commandes;
|
||||
import calcul.calculIntervalleBaremeABCDE;
|
||||
import fenetres.baliseStyle;
|
||||
import net.lingala.zip4j.exception.ZipException;
|
||||
import xml.EnsembleFichiers;
|
||||
import xml.LecturesDossiers;
|
||||
import xml.ecritureFileXML;
|
||||
import xml.node;
|
||||
import xml.transformeXLMtoNode;
|
||||
|
||||
public class evaluerLesFichiersEtudiants implements Runnable{
|
||||
|
||||
@ -58,28 +62,45 @@ public class evaluerLesFichiersEtudiants implements Runnable{
|
||||
|
||||
commandes.message.append("<hr>");
|
||||
|
||||
Run a = null;
|
||||
try {
|
||||
a = new Run(commandes.path,commandes.Profil, commandes.fichierStudentMoodle);
|
||||
} catch (ParserConfigurationException e2) {
|
||||
e2.printStackTrace();
|
||||
} catch (SAXException e2) {
|
||||
e2.printStackTrace();
|
||||
} catch (IOException e2) {
|
||||
e2.printStackTrace();
|
||||
if(commandes.fichierStudentMoodle) {
|
||||
try {
|
||||
new LecturesDossiers(ecritureFileXML.LocationFile.UniquementFichier, commandes.path);
|
||||
} catch (ParserConfigurationException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
} catch (SAXException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
}else {
|
||||
try {
|
||||
new LecturesDossiers(ecritureFileXML.LocationFile.DansDossier, commandes.path);
|
||||
} catch (ParserConfigurationException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
} catch (SAXException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
LecturesDossiers.getEC();
|
||||
//*****************************************
|
||||
//** Nombre de fichier writer à analyser **
|
||||
//*****************************************
|
||||
int nbFichierWriter = a.getLectDossiers().getEC().getListeContentWriter().size();
|
||||
String NbFichiers = String.valueOf(nbFichierWriter);
|
||||
commandes.analyse_Nbre_Fichier_Student = nbFichierWriter;
|
||||
int nbClasseur = EnsembleFichiers.getListeContentTableur().size();
|
||||
String NbFichiers = String.valueOf(nbClasseur);
|
||||
commandes.analyse_Nbre_Fichier_Student = nbClasseur;
|
||||
commandes.message.append("<br>");
|
||||
commandes.message.append("<p>Nombre de fichier à analyser et évaluer : " + NbFichiers + "</p>");
|
||||
commandes.message.append("<p>Nombre de fichier à analyser et à évaluer : " + NbFichiers + "</p>");
|
||||
commandes.message.append("<br>");
|
||||
commandes.message.append("<hr>");
|
||||
|
||||
@ -89,25 +110,35 @@ public class evaluerLesFichiersEtudiants implements Runnable{
|
||||
node verif = new node();
|
||||
if(commandes.verifHisto || commandes.verifHisto2) {
|
||||
node verification = new node();
|
||||
verification.setNomElt("verification");
|
||||
verification.getAttributs().put("nombre_fichier", String.valueOf(a.getLectDossiers().getEC().getListeFichierodt().size()));
|
||||
for(int i = 0 ; i < nbFichierWriter ; i++) {
|
||||
txt.setText("\nChargement de l'historique du fichier n° " + String.valueOf(i) +" par comparaison avec les "+ String.valueOf(nbFichierWriter-1) + " autres fichiers");
|
||||
node nod = Run.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(i));
|
||||
node nodStudent = meptl.LectureFichierEtudiantPourVerification(nod,a,i);
|
||||
verification.getNodes().add(nodStudent);
|
||||
verification.setNameNode("verification");
|
||||
LecturesDossiers.getEC();
|
||||
verification.getAttributs().put("nombre_fichier", String.valueOf(EnsembleFichiers.getListeFichierods().size()));
|
||||
for(int i = 0 ; i < nbClasseur ; i++) {
|
||||
txt.setText("\nChargement de l'historique du fichier n° " + String.valueOf(i) +" par comparaison avec les "+ String.valueOf(nbClasseur-1) + " autres fichiers");
|
||||
|
||||
new transformeXLMtoNode(EnsembleFichiers.getListeContentTableur().get(i),false,null);//Run.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(i));
|
||||
node nod = transformeXLMtoNode.getNodeRoot();
|
||||
|
||||
new transformeXLMtoNode(EnsembleFichiers.getListeHistoriqueTableur().get(i),false,null);//Run.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(i));
|
||||
node nodHisto = transformeXLMtoNode.getNodeRoot();
|
||||
|
||||
node nodStudent = Student.LectureFichierEtudiantPourVerification(nod,nodHisto,i);
|
||||
|
||||
verification.getEnfants().add(nodStudent);
|
||||
}
|
||||
|
||||
verification.saveNodeEnXMLinNewFile("histo", commandes.pathApp);
|
||||
|
||||
//a.ecritureNodeEnXML(verification, "VerificationHistorique","",false); //écriture du node de l'étudiant
|
||||
txt.setText("\nRecherche des concordances temporelles et d'auteur dans l'historique des modifications des " + nbFichierWriter + " fichiers."
|
||||
txt.setText("\nRecherche des concordances temporelles et d'auteur dans l'historique des modifications des " + nbClasseur + " fichiers."
|
||||
+ "\nPatientez, cela peut prendre quelques secondes ou minutes.");
|
||||
|
||||
//********************************
|
||||
//** Ecriture du node verif.xml **
|
||||
//********************************
|
||||
try {
|
||||
verif = VerificationHistorique.verificationHistorique(verification, a,txt);
|
||||
Run.ecritureNodeEnXML(verif, "Verif",commandes.path, Run.TypeFile.Verif );
|
||||
} catch (IOException | ParseException | CloneNotSupportedException e) {
|
||||
verif = new verificationHistorique(verification,txt).getVerif();
|
||||
verif.saveNodeEnXMLinNewFile("Verif", commandes.pathApp);
|
||||
} catch (ParseException | CloneNotSupportedException e) {
|
||||
e.printStackTrace();
|
||||
} //écriture du node de vérification
|
||||
commandes.message.append("<br>");
|
||||
@ -123,172 +154,171 @@ public class evaluerLesFichiersEtudiants implements Runnable{
|
||||
//** Node contenant l'ensemble des analyses des étudiants **
|
||||
//*********************************************************
|
||||
node ensembleanalyse = new node();
|
||||
ensembleanalyse.setNomElt("analyses");
|
||||
ensembleanalyse.setNameNode("analyses");
|
||||
|
||||
//*****************************************************
|
||||
//** Parcours l'ensemble des fichiers des étudiants ***
|
||||
//*****************************************************
|
||||
for(int i = 0 ; i < nbFichierWriter ; i++) {
|
||||
String texteAfficher = "\nEvaluation du fichier n° " + String.valueOf(i+1) + "/" + String.valueOf(nbFichierWriter) + " fichier(s)";
|
||||
for(int i = 0 ; i < nbClasseur ; i++) {
|
||||
String texteAfficher = txt.getText() + "\nEvaluation du fichier n° " + String.valueOf(i+1) + "/" + String.valueOf(nbClasseur) + " fichier(s)";
|
||||
txt.setText(texteAfficher);
|
||||
|
||||
//index de l'étudiant
|
||||
commandes.analyse_index_Fichier_Student = i;
|
||||
|
||||
//** Ne prends pas en compte le dossier destination créé par la commande -dest
|
||||
//** Si pas d'analyse alors le nom doit contenir le caractère $ dans le nom du dossier.
|
||||
if(commandes.fourniDossierDestination) if(a.getLectDossiers().getEC().getListeNomDossier().get(i).equals(commandes.pathDestination)) continue;
|
||||
|
||||
//***********************************************************
|
||||
//** Lecture et transformation en node du fichier étudiant **
|
||||
//***********************************************************
|
||||
node nod = Run.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(i));
|
||||
new transformeXLMtoNode(EnsembleFichiers.getListeContentTableur().get(i),false,null);
|
||||
node nod = transformeXLMtoNode.getNodeRoot();
|
||||
node nodStudent=null;
|
||||
try {
|
||||
System.gc(); // Demande de nettoyage du GC
|
||||
|
||||
|
||||
//Création du node de l'étudiant.
|
||||
//Permet aussi d'avoir l'historique des modifications du fichier de l'étudiant.
|
||||
nodStudent = meptl.LectureFichierEtudiantSousFormeDeNode(nod,a,i);
|
||||
|
||||
//Supprime l'historique des modifications
|
||||
nodStudent.supprimeTousLesNodesEnfantWithThisName("text:tracked-changes");
|
||||
nodStudent.supprimeTousLesNodesEnfantWithThisName("text:change");
|
||||
nodStudent.supprimeTousLesNodesEnfantWithThisName("text:change-start");
|
||||
nodStudent.supprimeTousLesNodesEnfantWithThisName("text:change-end");
|
||||
nodStudent.supprimeTousLesNodesEnfantWithThisName("text:deletion");
|
||||
nodStudent.supprimeTousLesNodesEnfantWithThisName("text:bookmark-start");
|
||||
nodStudent.supprimeTousLesNodesEnfantWithThisName("text:bookmark-end");
|
||||
|
||||
|
||||
} catch (IOException e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
|
||||
//Ecriture du node fichier de l'étudiant
|
||||
// try {
|
||||
// Run.ecritureNodeEnXML(nodStudent, a.getLectDossiers().getEC().getListeNomDossier().get(i),commandes.path,"Sujet");
|
||||
//
|
||||
//
|
||||
// //Création du node de l'étudiant.
|
||||
// //Permet aussi d'avoir l'historique des modifications du fichier de l'étudiant.
|
||||
// nodStudent = meptl.LectureFichierEtudiantSousFormeDeNode(nod,a,i);
|
||||
//
|
||||
// //Supprime l'historique des modifications
|
||||
// nodStudent.supprimeTousLesNodesEnfantWithThisName("text:tracked-changes");
|
||||
// nodStudent.supprimeTousLesNodesEnfantWithThisName("text:change");
|
||||
// nodStudent.supprimeTousLesNodesEnfantWithThisName("text:change-start");
|
||||
// nodStudent.supprimeTousLesNodesEnfantWithThisName("text:change-end");
|
||||
// nodStudent.supprimeTousLesNodesEnfantWithThisName("text:deletion");
|
||||
// nodStudent.supprimeTousLesNodesEnfantWithThisName("text:bookmark-start");
|
||||
// nodStudent.supprimeTousLesNodesEnfantWithThisName("text:bookmark-end");
|
||||
//
|
||||
//
|
||||
// } catch (IOException e1) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e1.printStackTrace();
|
||||
// }
|
||||
|
||||
|
||||
//**********************************
|
||||
//** Analyse des fichiers student **
|
||||
//**********************************
|
||||
if(commandes.analyse||commandes.ecritNodeAnalyse) {
|
||||
|
||||
// Run.ecritureNodeEnXML(nodStudent, "fichier student","",false,""); //écriture du node nodStudent de l'étudiant
|
||||
node ana = analyseFichier.analyse(nodStudent, commandes.sujet, i, a, txt,texteAfficher);
|
||||
// try {
|
||||
// Run.ecritureNodeEnXML(ana, "analyse", commandes.path, Run.TypeFile.Verif);
|
||||
// } catch (IOException e1) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e1.printStackTrace();
|
||||
//
|
||||
// //Ecriture du node fichier de l'étudiant
|
||||
//// try {
|
||||
//// Run.ecritureNodeEnXML(nodStudent, a.getLectDossiers().getEC().getListeNomDossier().get(i),commandes.path,"Sujet");
|
||||
//// } catch (IOException e1) {
|
||||
//// // TODO Auto-generated catch block
|
||||
//// e1.printStackTrace();
|
||||
//// }
|
||||
//
|
||||
//
|
||||
// //**********************************
|
||||
// //** Analyse des fichiers student **
|
||||
// //**********************************
|
||||
// if(commandes.analyse||commandes.ecritNodeAnalyse) {
|
||||
//
|
||||
//// Run.ecritureNodeEnXML(nodStudent, "fichier student","",false,""); //écriture du node nodStudent de l'étudiant
|
||||
// node ana = analyseFichier.analyse(nodStudent, commandes.sujet, i, a, txt,texteAfficher);
|
||||
//// try {
|
||||
//// Run.ecritureNodeEnXML(ana, "analyse", commandes.path, Run.TypeFile.Verif);
|
||||
//// } catch (IOException e1) {
|
||||
//// // TODO Auto-generated catch block
|
||||
//// e1.printStackTrace();
|
||||
//// }
|
||||
// //**************************************************
|
||||
// //** Ecriture des fichiers d'analyse des students **
|
||||
// //**************************************************
|
||||
// if(commandes.ecritNodeAnalyse) {
|
||||
// try {
|
||||
// Run.ecritureNodeEnXML(ana, "nodana"+ana.retourneFirstEnfantsByName("ouverture").getAttributs().get("dossier"),commandes.path,Run.TypeFile.Analyse);
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
//**************************************************
|
||||
//** Ecriture des fichiers d'analyse des students **
|
||||
//**************************************************
|
||||
if(commandes.ecritNodeAnalyse) {
|
||||
try {
|
||||
Run.ecritureNodeEnXML(ana, "nodana"+ana.retourneFirstEnfantsByName("ouverture").getAttributs().get("dossier"),commandes.path,Run.TypeFile.Analyse);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
//****************************
|
||||
//** Création des feedbacks **
|
||||
//****************************
|
||||
if(!commandes.sansFeeback&&!commandes.ecritNodeAnalyse) {
|
||||
if(!commandes.zipfeedback) {
|
||||
//feedback(ana, verif); //classique directement dans le répertoire
|
||||
try {
|
||||
feedbacks.feedback(ana,verif, false,false);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if(commandes.zipfeedback) { // Dans une archive pour Moodle
|
||||
try {
|
||||
// a.AddStreamToZip(feedbacks.feedback(ana, verif, true,false), meptl.retourneLeNomDuFeedback(a.getLectDossiers().getEC().getListeNomFichierFeedBack().get(i),ana, verif),commandes.analyse_size,commandes.analyse_nameZip);
|
||||
// Modification imposé par Moodle 4
|
||||
if(commandes.fichierStudentMoodle) {
|
||||
a.AddStreamToZip(feedbacks.feedback(ana, verif, true,false), meptl.retourneLeNomDuFeedbackMoodle4(a.getLectDossiers().getEC().getListeFichierodt().get(i),ana, verif),commandes.analyse_size,commandes.analyse_nameZip);
|
||||
}else {
|
||||
String nomFichiermoodle4 = a.getLectDossiers().getEC().getListeNomFichierFeedBack().get(i)+"_"+a.getLectDossiers().getEC().getListeFichierodt().get(i);
|
||||
a.AddStreamToZip(feedbacks.feedback(ana, verif, true,false), meptl.retourneLeNomDuFeedbackMoodle4(nomFichiermoodle4,ana, verif),commandes.analyse_size,commandes.analyse_nameZip);
|
||||
}
|
||||
|
||||
} catch (ZipException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//********************************************************************************
|
||||
//** Ajoute au node ensembleanalyse lorsque -csv file.csv ou -verifcsv file.scv **
|
||||
//********************************************************************************
|
||||
if(commandes.ecritNoteCSV) ensembleanalyse.addNode(ana);
|
||||
|
||||
//*********************************************************
|
||||
//** Message dans la console sur l'analyse de l'étudiant **
|
||||
//*********************************************************
|
||||
commandes.message.append(meptl.messageSystem(ana).toString());
|
||||
}
|
||||
//
|
||||
// //****************************
|
||||
// //** Création des feedbacks **
|
||||
// //****************************
|
||||
// if(!commandes.sansFeeback&&!commandes.ecritNodeAnalyse) {
|
||||
// if(!commandes.zipfeedback) {
|
||||
// //feedback(ana, verif); //classique directement dans le répertoire
|
||||
// try {
|
||||
// feedbacks.feedback(ana,verif, false,false);
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// } catch (ParseException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
// if(commandes.zipfeedback) { // Dans une archive pour Moodle
|
||||
// try {
|
||||
//// a.AddStreamToZip(feedbacks.feedback(ana, verif, true,false), meptl.retourneLeNomDuFeedback(a.getLectDossiers().getEC().getListeNomFichierFeedBack().get(i),ana, verif),commandes.analyse_size,commandes.analyse_nameZip);
|
||||
// // Modification imposé par Moodle 4
|
||||
// if(commandes.fichierStudentMoodle) {
|
||||
// a.AddStreamToZip(feedbacks.feedback(ana, verif, true,false), meptl.retourneLeNomDuFeedbackMoodle4(a.getLectDossiers().getEC().getListeFichierodt().get(i),ana, verif),commandes.analyse_size,commandes.analyse_nameZip);
|
||||
// }else {
|
||||
// String nomFichiermoodle4 = a.getLectDossiers().getEC().getListeNomFichierFeedBack().get(i)+"_"+a.getLectDossiers().getEC().getListeFichierodt().get(i);
|
||||
// a.AddStreamToZip(feedbacks.feedback(ana, verif, true,false), meptl.retourneLeNomDuFeedbackMoodle4(nomFichiermoodle4,ana, verif),commandes.analyse_size,commandes.analyse_nameZip);
|
||||
// }
|
||||
//
|
||||
// } catch (ZipException e) {
|
||||
// e.printStackTrace();
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// } catch (ParseException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// //********************************************************************************
|
||||
// //** Ajoute au node ensembleanalyse lorsque -csv file.csv ou -verifcsv file.scv **
|
||||
// //********************************************************************************
|
||||
// if(commandes.ecritNoteCSV) ensembleanalyse.addNode(ana);
|
||||
//
|
||||
// //*********************************************************
|
||||
// //** Message dans la console sur l'analyse de l'étudiant **
|
||||
// //*********************************************************
|
||||
// commandes.message.append(meptl.messageSystem(ana).toString());
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
||||
//*****************************************************
|
||||
//** Exportation au format CSV si -csv ou -verifcsv **
|
||||
//*****************************************************
|
||||
if(commandes.ecritNoteCSV && !commandes.fourniCSV) {
|
||||
if(!commandes.verifHisto2)
|
||||
try {
|
||||
meptl.ecritureCSV(ensembleanalyse);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if(commandes.verifHisto2)
|
||||
try {
|
||||
meptl.ecritureCSV(ensembleanalyse,verif,a,commandes.sujet.retourneFirstEnfantsByName("setting"));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
//***********************************************************************
|
||||
//** Exportation au format CSV si -csv file.csv ou -verifcsv file.csv **
|
||||
//***********************************************************************
|
||||
if(commandes.ecritNoteCSV && commandes.fourniCSV) {
|
||||
try {
|
||||
meptl.ecritureCSV(ensembleanalyse,verif,a,commandes.nodeCSV, commandes.sujet.retourneFirstEnfantsByName("setting"));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
//a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant
|
||||
}
|
||||
|
||||
//**************************************
|
||||
//** Mise à jour du fichier d'analyse **
|
||||
//**************************************
|
||||
if(commandes.MAJFichierAnalyse||commandes.MAJnameAnalysisFile) {
|
||||
try {
|
||||
verificationFichierAnalyse_node_commandesSujet.MiseAJourFichierAnalyse();
|
||||
} catch (CloneNotSupportedException | IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
verificationFichierAnalyse_node_commandesSujet.messagMiseAJourFichierAnalyseAprèsAnalyse();
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
// //*****************************************************
|
||||
// //** Exportation au format CSV si -csv ou -verifcsv **
|
||||
// //*****************************************************
|
||||
// if(commandes.ecritNoteCSV && !commandes.fourniCSV) {
|
||||
// if(!commandes.verifHisto2)
|
||||
// try {
|
||||
// meptl.ecritureCSV(ensembleanalyse);
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// if(commandes.verifHisto2)
|
||||
// try {
|
||||
// meptl.ecritureCSV(ensembleanalyse,verif,a,commandes.sujet.retourneFirstEnfantsByName("setting"));
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// //***********************************************************************
|
||||
// //** Exportation au format CSV si -csv file.csv ou -verifcsv file.csv **
|
||||
// //***********************************************************************
|
||||
// if(commandes.ecritNoteCSV && commandes.fourniCSV) {
|
||||
// try {
|
||||
// meptl.ecritureCSV(ensembleanalyse,verif,a,commandes.nodeCSV, commandes.sujet.retourneFirstEnfantsByName("setting"));
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// //a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant
|
||||
// }
|
||||
//
|
||||
// //**************************************
|
||||
// //** Mise à jour du fichier d'analyse **
|
||||
// //**************************************
|
||||
// if(commandes.MAJFichierAnalyse||commandes.MAJnameAnalysisFile) {
|
||||
// try {
|
||||
// verificationFichierAnalyse_node_commandesSujet.MiseAJourFichierAnalyse();
|
||||
// } catch (CloneNotSupportedException | IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// verificationFichierAnalyse_node_commandesSujet.messagMiseAJourFichierAnalyseAprèsAnalyse();
|
||||
// }
|
||||
//
|
||||
txt.setContentType("text/html");
|
||||
txt.setText(commandes.message.toString());
|
||||
|
||||
|
124
src/evaluer/verificationHistorique.java
Normal file
124
src/evaluer/verificationHistorique.java
Normal file
@ -0,0 +1,124 @@
|
||||
package evaluer;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import javax.swing.JEditorPane;
|
||||
|
||||
import calc.commandes;
|
||||
import xml.node;
|
||||
|
||||
public class verificationHistorique {
|
||||
|
||||
node verif = new node();
|
||||
|
||||
/**
|
||||
* Vérirication des historiques
|
||||
* @param verification
|
||||
* @param a
|
||||
* @return le node verif
|
||||
* @throws ParseException
|
||||
* @throws CloneNotSupportedException
|
||||
*/
|
||||
public verificationHistorique(node verification, JEditorPane txt) throws ParseException, CloneNotSupportedException {
|
||||
|
||||
boolean trouveCorrespondances = false;
|
||||
|
||||
verif.setNameNode("verification");
|
||||
verif.addAttributs(verification.getAttributs());
|
||||
verif.getAttributs().put("number_match", String.valueOf(commandes.number_match));
|
||||
verif.getAttributs().put("mini_number_modification", String.valueOf(commandes.mini_number_modification));
|
||||
verif.getAttributs().put("nombres_modifications_simultané_maxi", String.valueOf(commandes.nombres_modifications_simultané_maxi));
|
||||
|
||||
ArrayList<node> LesFichiers = verification.retourneAllEnfants("fichier");
|
||||
|
||||
System.out.println();
|
||||
System.out.println("***** DEBUT VERIFICATION DES HISTORIQUES DES MODIFICATION ****");
|
||||
System.out.println();
|
||||
|
||||
commandes.message.append("\n\n***** DEBUT VERIFICATION DES HISTORIQUES DES MODIFICATION ****\n");
|
||||
|
||||
int nbFichier = LesFichiers.size();
|
||||
for(int i = 0 ; i < LesFichiers.size() ; i++) {
|
||||
|
||||
node nodStudent = new node();
|
||||
nodStudent.setNameNode("fichier");
|
||||
nodStudent.addAttributs(LesFichiers.get(i).getAttributs());
|
||||
|
||||
ArrayList<node> HitoriqueDuFichier = LesFichiers.get(i).retourneAllEnfants("table:cell-content-change");
|
||||
|
||||
int nombreModifications = HitoriqueDuFichier.size();
|
||||
|
||||
nodStudent.getAttributs().put("nombre_modification", String.valueOf(nombreModifications));
|
||||
|
||||
// Affichage message
|
||||
String nameStudent1 = LesFichiers.get(i).getAttributs().get("dossier");
|
||||
String AffichageMessageEcran = "Analyse du fichier " + i + " / " + nbFichier +"\n" + LesFichiers.get(i).getAttributs().get("dossier") + " - number of modifications : " + nombreModifications;
|
||||
txt.setText(AffichageMessageEcran);
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
ArrayList<node> LesFichiers2 = (ArrayList<node>) LesFichiers.clone();
|
||||
LesFichiers2.remove(i);
|
||||
|
||||
|
||||
// Parcours toutes les modifications dans l'historique du fichier de l'étudiants
|
||||
// pour les comparer à tous les autres.
|
||||
for(int j = 0 ; j < HitoriqueDuFichier.size(); j++) {
|
||||
for(int i2 = 0 ; i2 < LesFichiers2.size(); i2++) {
|
||||
String nameStudent2 = LesFichiers2.get(i2).getAttributs().get("dossier");
|
||||
String AffichageMessageEcran2 = AffichageMessageEcran + "\n" + "Recherche correspondance avec " + nameStudent2;
|
||||
txt.setText(AffichageMessageEcran2);
|
||||
int compteurnombreCorrespondance=0;
|
||||
boolean correspondance = false;
|
||||
node Tempo = new node("liste_comparer");
|
||||
ArrayList<node> HitoriqueDuFichier2 = LesFichiers2.get(i2).retourneAllEnfants("table:cell-content-change");
|
||||
for(int j2 = 0 ; j2 <HitoriqueDuFichier2.size(); j2++ ) {
|
||||
if(HitoriqueDuFichier.get(j).enfantsTousIdentique(HitoriqueDuFichier2.get(j2))) {
|
||||
txt.setText(AffichageMessageEcran2 + "\n" + "TROUVE CORRESPONDANCE");
|
||||
compteurnombreCorrespondance++;
|
||||
correspondance=true;
|
||||
node A = new node("C"+String.valueOf(compteurnombreCorrespondance));
|
||||
node B = new node("student1");
|
||||
B.addAttribut("id", nameStudent1);
|
||||
B.addEnfant(HitoriqueDuFichier.get(j));
|
||||
node C = new node("student2");
|
||||
C.addAttribut("id", nameStudent2);
|
||||
C.addEnfant(HitoriqueDuFichier2.get(j2));
|
||||
A.addEnfant(B);
|
||||
A.addEnfant(C);
|
||||
Tempo.addEnfant(A);
|
||||
}
|
||||
}
|
||||
if(correspondance) {
|
||||
node NodeCorrespondance = new node("correspondance");
|
||||
NodeCorrespondance.addAttribut("student1", nameStudent1);
|
||||
NodeCorrespondance.addAttribut("student2", nameStudent2);
|
||||
NodeCorrespondance.addAttribut("nombreCorrespondance", String.valueOf(compteurnombreCorrespondance));
|
||||
NodeCorrespondance.addEnfant(Tempo);
|
||||
verif.addEnfant(NodeCorrespondance);
|
||||
trouveCorrespondances=true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if(trouveCorrespondances) {
|
||||
String AffichageMessageEcran =
|
||||
"┌─────────────────────────────────────────────────┐\n"+
|
||||
"│ TROUVE DES CORREPONDNACES │\n"+
|
||||
"│ ENTRE DES FICHIERS │\n"+
|
||||
"└─────────────────────────────────────────────────┘\n\n"+
|
||||
"Le fichier Verif.xml se trouve dans le dossier de l'application."+
|
||||
commandes.pathApp;
|
||||
txt.setText(AffichageMessageEcran);
|
||||
}
|
||||
System.gc(); // Demande de nettoyage du GC
|
||||
}
|
||||
|
||||
public node getVerif() {
|
||||
return verif;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -42,6 +42,7 @@ import actions.actOpenBaseListesEtudiants;
|
||||
import actions.actSaveEvaluation;
|
||||
import actions.actTutoriels;
|
||||
import calc.commandes;
|
||||
import evaluer.evaluerLesFichiersEtudiants;
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
|
||||
/**
|
||||
|
@ -1,6 +1,8 @@
|
||||
package xml;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class EnsembleFichiers {
|
||||
private static ArrayList<String> ListeContentTableur = new ArrayList<String>();
|
||||
@ -8,6 +10,9 @@ public class EnsembleFichiers {
|
||||
private static ArrayList<String> ListeNomFichierFeedBack = new ArrayList<String>();
|
||||
private static ArrayList<String> ListeFichierods = new ArrayList<String>();
|
||||
private static ArrayList<String> ListeObjetGraphicTableur = new ArrayList<String>();
|
||||
private static ArrayList<String> ListeHistoriqueTableur = new ArrayList<String>();
|
||||
|
||||
|
||||
public static int size=0;
|
||||
|
||||
public EnsembleFichiers() {
|
||||
@ -38,7 +43,26 @@ public class EnsembleFichiers {
|
||||
*/
|
||||
public void AjouteEnsembleAnalyse(String NomDossier, String contentT,String fichierods,
|
||||
String fichierObjectgraphicTableur, String fichierFeedBack) {
|
||||
|
||||
String historiques="";
|
||||
// Regex pour capturer tout le contenu entre <table:tracked-changes> et </table:tracked-changes>
|
||||
String regex = "<table:tracked-changes>(.*?)</table:tracked-changes>";
|
||||
// Compilation du pattern avec le flag DOTALL pour inclure les sauts de ligne
|
||||
Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
|
||||
Matcher matcher = pattern.matcher(contentT);
|
||||
|
||||
if (matcher.find()) {
|
||||
// Capture du texte compris entre les balises
|
||||
String capturedText = matcher.group(1);
|
||||
historiques = historiques + capturedText;
|
||||
System.out.println("Texte capturé : " + capturedText);
|
||||
}
|
||||
historiques = "<table:tracked-changes>"+historiques+"</table:tracked-changes>";
|
||||
|
||||
contentT = contentT.replaceAll(Pattern.quote(historiques), "");
|
||||
|
||||
ListeContentTableur.add(contentT);
|
||||
ListeHistoriqueTableur.add(historiques);
|
||||
ListeNomDossier.add(NomDossier);
|
||||
ListeObjetGraphicTableur.add(fichierObjectgraphicTableur);
|
||||
ListeFichierods.add(fichierods);
|
||||
@ -47,16 +71,16 @@ public class EnsembleFichiers {
|
||||
}
|
||||
|
||||
|
||||
public ArrayList<String> getListeNomDossier() {
|
||||
public static ArrayList<String> getListeNomDossier() {
|
||||
return ListeNomDossier;
|
||||
}
|
||||
|
||||
public ArrayList<String> getListeFichierods() {
|
||||
public static ArrayList<String> getListeFichierods() {
|
||||
return ListeFichierods;
|
||||
}
|
||||
|
||||
|
||||
public int getSize() {
|
||||
public static int getSize() {
|
||||
return EnsembleFichiers.size;
|
||||
}
|
||||
|
||||
@ -74,7 +98,7 @@ public class EnsembleFichiers {
|
||||
EnsembleFichiers.size = size;
|
||||
}
|
||||
|
||||
public ArrayList<String> getListeObjetGraphicTableur() {
|
||||
public static ArrayList<String> getListeObjetGraphicTableur() {
|
||||
return ListeObjetGraphicTableur;
|
||||
}
|
||||
|
||||
@ -82,7 +106,7 @@ public class EnsembleFichiers {
|
||||
ListeObjetGraphicTableur = listeObjetGraphicTableur;
|
||||
}
|
||||
|
||||
public ArrayList<String> getListeNomFichierFeedBack() {
|
||||
public static ArrayList<String> getListeNomFichierFeedBack() {
|
||||
return ListeNomFichierFeedBack;
|
||||
}
|
||||
|
||||
@ -90,9 +114,12 @@ public class EnsembleFichiers {
|
||||
ListeNomFichierFeedBack = listeNomFichierFeedBack;
|
||||
}
|
||||
|
||||
public ArrayList<String> getListeContentTableur() {
|
||||
public static ArrayList<String> getListeContentTableur() {
|
||||
return ListeContentTableur;
|
||||
}
|
||||
|
||||
public static ArrayList<String> getListeHistoriqueTableur() {
|
||||
return ListeHistoriqueTableur;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -69,11 +69,12 @@ public class LecturesDossiers {
|
||||
ContentT = ContenuContent(fichiers2[j]);
|
||||
fichierAnalyseods = fichiers2[j].getName();
|
||||
ContentObjectGraphicTableur = ContenuContentObject(fichiers2[j]);
|
||||
fichierAnalyseods = fichiers2[j].getName(); }
|
||||
}
|
||||
}
|
||||
}
|
||||
if(NomDossier==null) {NomDossier="inconnu"; filename="inconnu";}
|
||||
if(fichierAnalyseods==null) fichierAnalyseods="pas de fichier calc déposé.";
|
||||
if(ContentT==null) fichierAnalyseods="pas de fichier calc déposé.";
|
||||
|
||||
|
||||
if(fichierAnalyseods!=null) {
|
||||
@ -81,13 +82,17 @@ public class LecturesDossiers {
|
||||
node nod = transformeXLMtoNode.getNodeRoot();
|
||||
fichierAnalyseods = nod.ecritureXML().toString();
|
||||
|
||||
new transformeXLMtoNode(ContentObjectGraphicTableur,false,null);
|
||||
nod = transformeXLMtoNode.getNodeRoot();
|
||||
ContentObjectGraphicTableur = nod.ecritureXML().toString();
|
||||
if(ContentObjectGraphicTableur!=null) {
|
||||
// ContentObjectGraphicTableur="<Object num=\"0\" vide=\"true\"</Object>";
|
||||
new transformeXLMtoNode(ContentObjectGraphicTableur,false,null);
|
||||
nod = transformeXLMtoNode.getNodeRoot();
|
||||
ContentObjectGraphicTableur = nod.ecritureXML().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
EC.AjouteEnsembleAnalyse(NomDossier, ContentT, fichierAnalyseods,ContentObjectGraphicTableur,filename );
|
||||
System.out.print(".");
|
||||
System.out.println(fichierAnalyseods);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
package xml;
|
||||
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
@ -8,11 +7,11 @@ import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@ -47,7 +46,6 @@ private boolean nodeClose = false;
|
||||
parent.addEnfant(this);
|
||||
}
|
||||
|
||||
|
||||
public boolean isNodeClose() {
|
||||
return nodeClose;
|
||||
}
|
||||
@ -104,19 +102,24 @@ private boolean nodeClose = false;
|
||||
public void addNewEnfant(String nameNewEnfant) {
|
||||
node newEnfant = new node(nameNewEnfant);
|
||||
newEnfant.setParent(this);
|
||||
newEnfant.setLevel(this.level+1);
|
||||
this.enfants.add(newEnfant);
|
||||
this.recalculLevel();
|
||||
//this.recalculLevel();
|
||||
}
|
||||
|
||||
public void addEnfant(node enfant) {
|
||||
enfant.setParent(this);
|
||||
enfant.setLevel(this.level+1);
|
||||
this.enfants.add(enfant);
|
||||
this.recalculLevel();
|
||||
// this.recalculLevel();
|
||||
}
|
||||
|
||||
public void addAllEnfants(ArrayList<node> enfants) {
|
||||
for(int i = 0 ; i < enfants.size();i++) {
|
||||
enfants.get(i).setLevel(this.level+1);
|
||||
}
|
||||
this.enfants.addAll(enfants);
|
||||
this.recalculLevel();
|
||||
// this.recalculLevel();
|
||||
}
|
||||
|
||||
public void removeEnfant(node enfant) {
|
||||
@ -304,7 +307,7 @@ private boolean nodeClose = false;
|
||||
return attributs.size();
|
||||
}
|
||||
|
||||
public HashMap<String, String> getAttributs() {
|
||||
public LinkedHashMap<String, String> getAttributs() {
|
||||
return attributs;
|
||||
}
|
||||
|
||||
@ -660,6 +663,7 @@ private boolean nodeClose = false;
|
||||
|
||||
if(this.enfants.size()>0) {
|
||||
for(int i = 0 ; i < this.enfants.size(); i++) {
|
||||
if(this.enfants.get(i)==null) continue;
|
||||
sb.append(this.enfants.get(i).ecritureXML());
|
||||
if((indexMaxContenu-indexContenu)>0) {
|
||||
if(this.contenu.size()>indexContenu) {
|
||||
@ -766,6 +770,55 @@ private boolean nodeClose = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette méthode permet de vérifier si deux nodes sont identiques.<br>
|
||||
* Retourne TRUE s'ils sont identiques, dans le cas contraire retourne FALSE.
|
||||
* @param nodAVerifier
|
||||
* @return
|
||||
*/
|
||||
public boolean identique(node nodAComparer) {
|
||||
if(!this.nameNode.equals(nodAComparer.getNameNode())) return false;
|
||||
if(this.getNbrEnfants()!=nodAComparer.getNbrEnfants()) return false;
|
||||
if(this.getNbrAttributs()!=nodAComparer.getNbrAttributs()) return false;
|
||||
if(!this.getContenu().equals(nodAComparer.getContenu())) return false;
|
||||
|
||||
Set<String> keys = this.getAttributs().keySet();
|
||||
for (String key : keys) {
|
||||
String valeur1 = this.getAttributs().get(key);
|
||||
String valeur2 = nodAComparer.getAttributs().get(key);
|
||||
if(!valeur1.equals(valeur2)) return false;
|
||||
}
|
||||
|
||||
|
||||
for(int i = 0 ; i <this.getEnfants().size();i++) {
|
||||
if(!this.getEnfant(i).identique(nodAComparer.getEnfant(i))) return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Compare tous les nodes enfants. Cette méthode doit être utilisée pour comparer les historique de modifications.<br>
|
||||
* Le node <table:previous> n'est pas comparé.<br>
|
||||
* Retourne TRUE si tous les nodes enfants sont identiques.<br>
|
||||
* Retourne FALSE dans le cas ou un seul n'est pas identique.
|
||||
* @param nodAComparer
|
||||
* @return
|
||||
*/
|
||||
public boolean enfantsTousIdentique(node nodAComparer) {
|
||||
|
||||
if(this.getNbrEnfants()!=nodAComparer.getNbrEnfants()) return false;
|
||||
|
||||
for (int i = 0 ; i < this.enfants.size();i++) {
|
||||
if(this.getEnfant(i).getNameNode().equals("table:previous")) continue;
|
||||
if(!this.getEnfant(i).identique(nodAComparer.getEnfant(i))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Insère l'attribut saut.
|
||||
* @param value : valeur logique du saut.
|
||||
@ -824,6 +877,7 @@ private boolean nodeClose = false;
|
||||
|
||||
/**
|
||||
* Ecriture d'un node dans un fichier au format XML.<br>
|
||||
* Le fichier doit existé.
|
||||
*
|
||||
* @param nod Le node à écrire dans un fichier.
|
||||
* @param filename Le nom du fichier.
|
||||
@ -833,13 +887,42 @@ private boolean nodeClose = false;
|
||||
* @return Erreur True ou False
|
||||
*/
|
||||
public boolean saveNodeEnXML(String filenameWithExtension, String pathDestination) {
|
||||
if(filenameWithExtension.contains(".xml")) {
|
||||
filenameWithExtension = filenameWithExtension.substring(0,filenameWithExtension.lastIndexOf(".xml"));
|
||||
if(filenameWithExtension.contains(".xml")) {
|
||||
filenameWithExtension = filenameWithExtension.substring(0,filenameWithExtension.lastIndexOf(".xml"));
|
||||
}
|
||||
|
||||
Path outputFilePath = Paths.get(pathDestination +"/"+ filenameWithExtension + ".xml");
|
||||
|
||||
if(Files.isWritable(outputFilePath)){
|
||||
try {
|
||||
BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8);
|
||||
fichier.write(this.ecritureXML().toString());
|
||||
fichier.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}else {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
Path outputFilePath = Paths.get(pathDestination +"/"+ filenameWithExtension + ".xml");
|
||||
/**
|
||||
* Ecriture d'un node dans un fichier au format XML.<br>
|
||||
* Dans un nouveau fichier.
|
||||
*
|
||||
* @param filenameWithExtension
|
||||
* @param pathDestination
|
||||
* @return
|
||||
*/
|
||||
public boolean saveNodeEnXMLinNewFile(String filenameWithExtension, String pathDestination) {
|
||||
if(filenameWithExtension.contains(".xml")) {
|
||||
filenameWithExtension = filenameWithExtension.substring(0,filenameWithExtension.lastIndexOf(".xml"));
|
||||
}
|
||||
|
||||
Path outputFilePath = Paths.get(pathDestination +"/"+ filenameWithExtension + ".xml");
|
||||
|
||||
if(Files.isWritable(outputFilePath)){
|
||||
try {
|
||||
BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8);
|
||||
fichier.write(this.ecritureXML().toString());
|
||||
@ -848,11 +931,10 @@ private boolean nodeClose = false;
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}else {
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Insère l'attribut addmenu avec la valeur logique.
|
||||
|
Loading…
Reference in New Issue
Block a user