diff --git a/base_evaluations_analyseCalc.xml b/base_evaluations_analyseCalc.xml index e819919..79d8dc3 100644 --- a/base_evaluations_analyseCalc.xml +++ b/base_evaluations_analyseCalc.xml @@ -1 +1 @@ - EJ - ???Page 1(???)???, 00/00/000000:00:00Page 1/ 99 \ No newline at end of file + EJ - ???Page 1(???)???, 00/00/000000:00:00Page 1/ 99 \ No newline at end of file diff --git a/bin/.gitignore b/bin/.gitignore index 7265ce1..dacfcd2 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -7,3 +7,7 @@ /resources/ /evaluer/ /outils/ +/calc/ +/baseEvaluation/ +/baseListesEtudiants/ +/calcul/ diff --git a/bin/AnalyseCalc/Classeur2$feuille$colonne.class b/bin/AnalyseCalc/Classeur2$feuille$colonne.class index 38b50ee..b4a6bfd 100644 Binary files a/bin/AnalyseCalc/Classeur2$feuille$colonne.class and b/bin/AnalyseCalc/Classeur2$feuille$colonne.class differ diff --git a/bin/AnalyseCalc/Classeur2$feuille$graphic.class b/bin/AnalyseCalc/Classeur2$feuille$graphic.class index 3d776b4..c49908b 100644 Binary files a/bin/AnalyseCalc/Classeur2$feuille$graphic.class and b/bin/AnalyseCalc/Classeur2$feuille$graphic.class differ diff --git a/bin/AnalyseCalc/Classeur2$feuille$ligne$cellule$validation.class b/bin/AnalyseCalc/Classeur2$feuille$ligne$cellule$validation.class index 0f63f66..8b02afb 100644 Binary files a/bin/AnalyseCalc/Classeur2$feuille$ligne$cellule$validation.class and b/bin/AnalyseCalc/Classeur2$feuille$ligne$cellule$validation.class differ diff --git a/bin/AnalyseCalc/Classeur2$feuille$ligne$cellule.class b/bin/AnalyseCalc/Classeur2$feuille$ligne$cellule.class index 38fe177..6bbee71 100644 Binary files a/bin/AnalyseCalc/Classeur2$feuille$ligne$cellule.class and b/bin/AnalyseCalc/Classeur2$feuille$ligne$cellule.class differ diff --git a/bin/AnalyseCalc/Classeur2$feuille$ligne.class b/bin/AnalyseCalc/Classeur2$feuille$ligne.class index 67565a1..1e1e6f8 100644 Binary files a/bin/AnalyseCalc/Classeur2$feuille$ligne.class and b/bin/AnalyseCalc/Classeur2$feuille$ligne.class differ diff --git a/bin/AnalyseCalc/Classeur2$feuille.class b/bin/AnalyseCalc/Classeur2$feuille.class index 6384e07..d195995 100644 Binary files a/bin/AnalyseCalc/Classeur2$feuille.class and b/bin/AnalyseCalc/Classeur2$feuille.class differ diff --git a/bin/AnalyseCalc/Classeur2$historique.class b/bin/AnalyseCalc/Classeur2$historique.class index 60fd5d8..e9310dd 100644 Binary files a/bin/AnalyseCalc/Classeur2$historique.class and b/bin/AnalyseCalc/Classeur2$historique.class differ diff --git a/bin/AnalyseCalc/Classeur2$modification.class b/bin/AnalyseCalc/Classeur2$modification.class index dd26174..9ae6371 100644 Binary files a/bin/AnalyseCalc/Classeur2$modification.class and b/bin/AnalyseCalc/Classeur2$modification.class differ diff --git a/bin/AnalyseCalc/Classeur2.class b/bin/AnalyseCalc/Classeur2.class index 172f184..2ba4f25 100644 Binary files a/bin/AnalyseCalc/Classeur2.class and b/bin/AnalyseCalc/Classeur2.class differ diff --git a/bin/actions/actAttribut.class b/bin/actions/actAttribut.class index 99af47d..b391244 100644 Binary files a/bin/actions/actAttribut.class and b/bin/actions/actAttribut.class differ diff --git a/bin/actions/actCoefficient.class b/bin/actions/actCoefficient.class index c89807b..2ec34cd 100644 Binary files a/bin/actions/actCoefficient.class and b/bin/actions/actCoefficient.class differ diff --git a/bin/actions/actEvalInitialCreator.class b/bin/actions/actEvalInitialCreator.class index 5260b6e..da9ee1a 100644 Binary files a/bin/actions/actEvalInitialCreator.class and b/bin/actions/actEvalInitialCreator.class differ diff --git a/bin/actions/actEvalNameNodeOui.class b/bin/actions/actEvalNameNodeOui.class index 5bf06d6..2cf675c 100644 Binary files a/bin/actions/actEvalNameNodeOui.class and b/bin/actions/actEvalNameNodeOui.class differ diff --git a/bin/actions/actEvalNamePageOui.class b/bin/actions/actEvalNamePageOui.class index 4a79345..1c4d006 100644 Binary files a/bin/actions/actEvalNamePageOui.class and b/bin/actions/actEvalNamePageOui.class differ diff --git a/bin/actions/actNewFichierAnalyse.class b/bin/actions/actNewFichierAnalyse.class index c2eef8a..3ec68e9 100644 Binary files a/bin/actions/actNewFichierAnalyse.class and b/bin/actions/actNewFichierAnalyse.class differ diff --git a/bin/actions/actOpenBaseEvaluation.class b/bin/actions/actOpenBaseEvaluation.class index d55133f..3308643 100644 Binary files a/bin/actions/actOpenBaseEvaluation.class and b/bin/actions/actOpenBaseEvaluation.class differ diff --git a/bin/actions/actOpenBaseListesEtudiants.class b/bin/actions/actOpenBaseListesEtudiants.class index 4c65205..666c5e1 100644 Binary files a/bin/actions/actOpenBaseListesEtudiants.class and b/bin/actions/actOpenBaseListesEtudiants.class differ diff --git a/bin/actions/actSupprimeTitre.class b/bin/actions/actSupprimeTitre.class index e67c258..8ee0b2c 100644 Binary files a/bin/actions/actSupprimeTitre.class and b/bin/actions/actSupprimeTitre.class differ diff --git a/bin/actions/actTitre1.class b/bin/actions/actTitre1.class index 566d42d..7b28f38 100644 Binary files a/bin/actions/actTitre1.class and b/bin/actions/actTitre1.class differ diff --git a/bin/actions/actTitre2.class b/bin/actions/actTitre2.class index 907b39c..77058be 100644 Binary files a/bin/actions/actTitre2.class and b/bin/actions/actTitre2.class differ diff --git a/bin/actions/actTitre3.class b/bin/actions/actTitre3.class index d5d8b9b..be3be82 100644 Binary files a/bin/actions/actTitre3.class and b/bin/actions/actTitre3.class differ diff --git a/bin/actions/actTitrePrincipal.class b/bin/actions/actTitrePrincipal.class index 3681479..458ffa9 100644 Binary files a/bin/actions/actTitrePrincipal.class and b/bin/actions/actTitrePrincipal.class differ diff --git a/bin/actions/actevalNameCreator.class b/bin/actions/actevalNameCreator.class index 23f7bcb..51df5ba 100644 Binary files a/bin/actions/actevalNameCreator.class and b/bin/actions/actevalNameCreator.class differ diff --git a/bin/baseEvaluation/chargeEvaluation.class b/bin/baseEvaluation/chargeEvaluation.class index b279b1c..bcd2555 100644 Binary files a/bin/baseEvaluation/chargeEvaluation.class and b/bin/baseEvaluation/chargeEvaluation.class differ diff --git a/bin/baseEvaluation/creerNouvelleEvaluation.class b/bin/baseEvaluation/creerNouvelleEvaluation.class index 7526033..d744564 100644 Binary files a/bin/baseEvaluation/creerNouvelleEvaluation.class and b/bin/baseEvaluation/creerNouvelleEvaluation.class differ diff --git a/bin/baseEvaluation/ecritureBaseEvaluation.class b/bin/baseEvaluation/ecritureBaseEvaluation.class index 899b0cd..8db9218 100644 Binary files a/bin/baseEvaluation/ecritureBaseEvaluation.class and b/bin/baseEvaluation/ecritureBaseEvaluation.class differ diff --git a/bin/baseEvaluation/myTableBaseEvaluation.class b/bin/baseEvaluation/myTableBaseEvaluation.class index a90bc61..72acd24 100644 Binary files a/bin/baseEvaluation/myTableBaseEvaluation.class and b/bin/baseEvaluation/myTableBaseEvaluation.class differ diff --git a/bin/baseEvaluation/removeEvaluation.class b/bin/baseEvaluation/removeEvaluation.class index bcc6879..06a8b99 100644 Binary files a/bin/baseEvaluation/removeEvaluation.class and b/bin/baseEvaluation/removeEvaluation.class differ diff --git a/bin/baseEvaluation/trierParDateDecroissanteLaBase.class b/bin/baseEvaluation/trierParDateDecroissanteLaBase.class index fc61086..5d65c41 100644 Binary files a/bin/baseEvaluation/trierParDateDecroissanteLaBase.class and b/bin/baseEvaluation/trierParDateDecroissanteLaBase.class differ diff --git a/bin/baseListesEtudiants/ecritureBaseListesEtudiants.class b/bin/baseListesEtudiants/ecritureBaseListesEtudiants.class index d3f4691..1a25d10 100644 Binary files a/bin/baseListesEtudiants/ecritureBaseListesEtudiants.class and b/bin/baseListesEtudiants/ecritureBaseListesEtudiants.class differ diff --git a/bin/baseListesEtudiants/myTableBaseListesEtudiants.class b/bin/baseListesEtudiants/myTableBaseListesEtudiants.class index 8928780..8a3a63e 100644 Binary files a/bin/baseListesEtudiants/myTableBaseListesEtudiants.class and b/bin/baseListesEtudiants/myTableBaseListesEtudiants.class differ diff --git a/bin/baseListesEtudiants/myTableStudent.class b/bin/baseListesEtudiants/myTableStudent.class index adf5583..924981e 100644 Binary files a/bin/baseListesEtudiants/myTableStudent.class and b/bin/baseListesEtudiants/myTableStudent.class differ diff --git a/bin/calc/chargementParametresFichierAnalyse.class b/bin/calc/chargementParametresFichierAnalyse.class index f82ea06..8124d5c 100644 Binary files a/bin/calc/chargementParametresFichierAnalyse.class and b/bin/calc/chargementParametresFichierAnalyse.class differ diff --git a/bin/calc/commandes.class b/bin/calc/commandes.class index 133e1c3..735e9d7 100644 Binary files a/bin/calc/commandes.class and b/bin/calc/commandes.class differ diff --git a/bin/calcul/calculNombrePointEvaluation.class b/bin/calcul/calculNombrePointEvaluation.class index c93991f..37f322f 100644 Binary files a/bin/calcul/calculNombrePointEvaluation.class and b/bin/calcul/calculNombrePointEvaluation.class differ diff --git a/bin/calcul/formatDateWriter.class b/bin/calcul/formatDateWriter.class index 6725bfe..9a483c9 100644 Binary files a/bin/calcul/formatDateWriter.class and b/bin/calcul/formatDateWriter.class differ diff --git a/bin/fenetres/afficheText.class b/bin/fenetres/afficheText.class index a64c800..f71832e 100644 Binary files a/bin/fenetres/afficheText.class and b/bin/fenetres/afficheText.class differ diff --git a/bin/fenetres/allContent$2.class b/bin/fenetres/allContent$2.class index 002fcc3..7bff342 100644 Binary files a/bin/fenetres/allContent$2.class and b/bin/fenetres/allContent$2.class differ diff --git a/bin/fenetres/allContent.class b/bin/fenetres/allContent.class index ac82197..89b80cf 100644 Binary files a/bin/fenetres/allContent.class and b/bin/fenetres/allContent.class differ diff --git a/bin/fenetres/attributs$9.class b/bin/fenetres/attributs$9.class index e8b6acb..541b8c7 100644 Binary files a/bin/fenetres/attributs$9.class and b/bin/fenetres/attributs$9.class differ diff --git a/bin/fenetres/attributs.class b/bin/fenetres/attributs.class index 7166398..c6c1228 100644 Binary files a/bin/fenetres/attributs.class and b/bin/fenetres/attributs.class differ diff --git a/bin/fenetres/create.class b/bin/fenetres/create.class index 24c6de0..15bdca4 100644 Binary files a/bin/fenetres/create.class and b/bin/fenetres/create.class differ diff --git a/bin/fenetres/evaluate$1.class b/bin/fenetres/evaluate$1.class index 79b6d33..02f8670 100644 Binary files a/bin/fenetres/evaluate$1.class and b/bin/fenetres/evaluate$1.class differ diff --git a/bin/fenetres/evaluate$10.class b/bin/fenetres/evaluate$10.class index 137904a..a6082da 100644 Binary files a/bin/fenetres/evaluate$10.class and b/bin/fenetres/evaluate$10.class differ diff --git a/bin/fenetres/evaluate$11.class b/bin/fenetres/evaluate$11.class index ed94748..ae345d5 100644 Binary files a/bin/fenetres/evaluate$11.class and b/bin/fenetres/evaluate$11.class differ diff --git a/bin/fenetres/evaluate$12.class b/bin/fenetres/evaluate$12.class index 2c4517a..5e611f9 100644 Binary files a/bin/fenetres/evaluate$12.class and b/bin/fenetres/evaluate$12.class differ diff --git a/bin/fenetres/evaluate$13.class b/bin/fenetres/evaluate$13.class index 1d21692..d756744 100644 Binary files a/bin/fenetres/evaluate$13.class and b/bin/fenetres/evaluate$13.class differ diff --git a/bin/fenetres/evaluate$14.class b/bin/fenetres/evaluate$14.class index 9d7004e..57995ee 100644 Binary files a/bin/fenetres/evaluate$14.class and b/bin/fenetres/evaluate$14.class differ diff --git a/bin/fenetres/evaluate$15.class b/bin/fenetres/evaluate$15.class index e030ac3..2b2a0c4 100644 Binary files a/bin/fenetres/evaluate$15.class and b/bin/fenetres/evaluate$15.class differ diff --git a/bin/fenetres/evaluate$16.class b/bin/fenetres/evaluate$16.class index f61087f..86de077 100644 Binary files a/bin/fenetres/evaluate$16.class and b/bin/fenetres/evaluate$16.class differ diff --git a/bin/fenetres/evaluate$17.class b/bin/fenetres/evaluate$17.class index 015e267..a54c401 100644 Binary files a/bin/fenetres/evaluate$17.class and b/bin/fenetres/evaluate$17.class differ diff --git a/bin/fenetres/evaluate$18.class b/bin/fenetres/evaluate$18.class index 1ed7ac0..6b67d90 100644 Binary files a/bin/fenetres/evaluate$18.class and b/bin/fenetres/evaluate$18.class differ diff --git a/bin/fenetres/evaluate$2.class b/bin/fenetres/evaluate$2.class index d507651..75656e4 100644 Binary files a/bin/fenetres/evaluate$2.class and b/bin/fenetres/evaluate$2.class differ diff --git a/bin/fenetres/evaluate$3.class b/bin/fenetres/evaluate$3.class index e11d151..c362a3e 100644 Binary files a/bin/fenetres/evaluate$3.class and b/bin/fenetres/evaluate$3.class differ diff --git a/bin/fenetres/evaluate$4.class b/bin/fenetres/evaluate$4.class index e55b797..6b3aa7e 100644 Binary files a/bin/fenetres/evaluate$4.class and b/bin/fenetres/evaluate$4.class differ diff --git a/bin/fenetres/evaluate$5.class b/bin/fenetres/evaluate$5.class index 8b0483f..052b5c9 100644 Binary files a/bin/fenetres/evaluate$5.class and b/bin/fenetres/evaluate$5.class differ diff --git a/bin/fenetres/evaluate$6.class b/bin/fenetres/evaluate$6.class index 30e6bb2..0d1df86 100644 Binary files a/bin/fenetres/evaluate$6.class and b/bin/fenetres/evaluate$6.class differ diff --git a/bin/fenetres/evaluate$7.class b/bin/fenetres/evaluate$7.class index 9a9377a..7ad163a 100644 Binary files a/bin/fenetres/evaluate$7.class and b/bin/fenetres/evaluate$7.class differ diff --git a/bin/fenetres/evaluate$8.class b/bin/fenetres/evaluate$8.class index b27acba..dcc3fa5 100644 Binary files a/bin/fenetres/evaluate$8.class and b/bin/fenetres/evaluate$8.class differ diff --git a/bin/fenetres/evaluate$9.class b/bin/fenetres/evaluate$9.class index a1075b9..f281bfe 100644 Binary files a/bin/fenetres/evaluate$9.class and b/bin/fenetres/evaluate$9.class differ diff --git a/bin/fenetres/evaluate.class b/bin/fenetres/evaluate.class index d8d15ff..be57dd2 100644 Binary files a/bin/fenetres/evaluate.class and b/bin/fenetres/evaluate.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse.class b/bin/fenetres/proprieteFichierAnalyse.class index e00dfec..0acea36 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse.class and b/bin/fenetres/proprieteFichierAnalyse.class differ diff --git a/bin/fenetres/setting$1.class b/bin/fenetres/setting$1.class index 8c62a05..5c2a9e3 100644 Binary files a/bin/fenetres/setting$1.class and b/bin/fenetres/setting$1.class differ diff --git a/bin/fenetres/setting$5.class b/bin/fenetres/setting$5.class index cf02ae1..10e40b4 100644 Binary files a/bin/fenetres/setting$5.class and b/bin/fenetres/setting$5.class differ diff --git a/bin/fenetres/setting.class b/bin/fenetres/setting.class index fabd21a..a99e504 100644 Binary files a/bin/fenetres/setting.class and b/bin/fenetres/setting.class differ diff --git a/bin/list/listeNodeFormatageDirectDeWriter.class b/bin/list/listeNodeFormatageDirectDeWriter.class index 1832ba5..3bcad68 100644 Binary files a/bin/list/listeNodeFormatageDirectDeWriter.class and b/bin/list/listeNodeFormatageDirectDeWriter.class differ diff --git a/bin/outils/verificationFichierAnalyse.class b/bin/outils/verificationFichierAnalyse.class index a1f3bee..aac526a 100644 Binary files a/bin/outils/verificationFichierAnalyse.class and b/bin/outils/verificationFichierAnalyse.class differ diff --git a/src/calc/Student.java b/src/calc/Student.java new file mode 100644 index 0000000..478d946 --- /dev/null +++ b/src/calc/Student.java @@ -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.
+ *
+ * @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; + } + +} diff --git a/src/calc/commandes.java b/src/calc/commandes.java index e05f2ff..14c38d2 100644 --- a/src/calc/commandes.java +++ b/src/calc/commandes.java @@ -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 ** diff --git a/src/evaluer/evaluerLesFichiersEtudiants.java b/src/evaluer/evaluerLesFichiersEtudiants.java index efb7fd6..c1d133f 100644 --- a/src/evaluer/evaluerLesFichiersEtudiants.java +++ b/src/evaluer/evaluerLesFichiersEtudiants.java @@ -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,56 +62,83 @@ public class evaluerLesFichiersEtudiants implements Runnable{ commandes.message.append("
"); - 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("
"); - commandes.message.append("

Nombre de fichier à analyser et évaluer : " + NbFichiers + "

"); + commandes.message.append("

Nombre de fichier à analyser et à évaluer : " + NbFichiers + "

"); commandes.message.append("
"); commandes.message.append("
"); //*************************************** //** -verif ou -use file.xml -verifcsv ** //*************************************** - node verif = new node(); + 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("
"); @@ -123,177 +154,176 @@ 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 { - - - //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 + System.gc(); // Demande de nettoyage du GC + // 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()); } - + } diff --git a/src/evaluer/verificationHistorique.java b/src/evaluer/verificationHistorique.java new file mode 100644 index 0000000..ed76eee --- /dev/null +++ b/src/evaluer/verificationHistorique.java @@ -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 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 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 LesFichiers2 = (ArrayList) 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 HitoriqueDuFichier2 = LesFichiers2.get(i2).retourneAllEnfants("table:cell-content-change"); + for(int j2 = 0 ; j2 ListeContentTableur = new ArrayList(); @@ -8,6 +10,9 @@ public class EnsembleFichiers { private static ArrayList ListeNomFichierFeedBack = new ArrayList(); private static ArrayList ListeFichierods = new ArrayList(); private static ArrayList ListeObjetGraphicTableur = new ArrayList(); + private static ArrayList ListeHistoriqueTableur = new ArrayList(); + + 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 et + String regex = "(.*?)"; + // 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 = ""+historiques+""; + + 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 getListeNomDossier() { + public static ArrayList getListeNomDossier() { return ListeNomDossier; } - public ArrayList getListeFichierods() { + public static ArrayList 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 getListeObjetGraphicTableur() { + public static ArrayList getListeObjetGraphicTableur() { return ListeObjetGraphicTableur; } @@ -82,7 +106,7 @@ public class EnsembleFichiers { ListeObjetGraphicTableur = listeObjetGraphicTableur; } - public ArrayList getListeNomFichierFeedBack() { + public static ArrayList getListeNomFichierFeedBack() { return ListeNomFichierFeedBack; } @@ -90,9 +114,12 @@ public class EnsembleFichiers { ListeNomFichierFeedBack = listeNomFichierFeedBack; } - public ArrayList getListeContentTableur() { + public static ArrayList getListeContentTableur() { return ListeContentTableur; } + public static ArrayList getListeHistoriqueTableur() { + return ListeHistoriqueTableur; + } } diff --git a/src/xml/LecturesDossiers.java b/src/xml/LecturesDossiers.java index 72735f5..c9bbec2 100644 --- a/src/xml/LecturesDossiers.java +++ b/src/xml/LecturesDossiers.java @@ -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=""; + 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); } } diff --git a/src/xml/node.java b/src/xml/node.java index 22e8608..818cfb0 100644 --- a/src/xml/node.java +++ b/src/xml/node.java @@ -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 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 getAttributs() { + public LinkedHashMap 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.
+ * 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 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 + * Le node n'est pas comparé.
+ * Retourne TRUE si tous les nodes enfants sont identiques.
+ * 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.
+ * 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"); - 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; + } - if(Files.isWritable(outputFilePath)){ + /** + * Ecriture d'un node dans un fichier au format XML.
+ * 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"); + 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.