diff --git a/analyseWriter.jar b/analyseWriter.jar
index b658aba..1e1793b 100644
Binary files a/analyseWriter.jar and b/analyseWriter.jar differ
diff --git a/bin/MEPTL/HTML.class b/bin/MEPTL/HTML.class
index 4a964d3..cdfabe5 100644
Binary files a/bin/MEPTL/HTML.class and b/bin/MEPTL/HTML.class differ
diff --git a/bin/MEPTL/commandes.class b/bin/MEPTL/commandes.class
index af891f2..fae2088 100644
Binary files a/bin/MEPTL/commandes.class and b/bin/MEPTL/commandes.class differ
diff --git a/bin/MEPTL/ecritureSujet.class b/bin/MEPTL/ecritureSujet.class
index 571bd2d..8f3da31 100644
Binary files a/bin/MEPTL/ecritureSujet.class and b/bin/MEPTL/ecritureSujet.class differ
diff --git a/bin/MEPTL/meptl.class b/bin/MEPTL/meptl.class
index 8fc5b94..be610d5 100644
Binary files a/bin/MEPTL/meptl.class and b/bin/MEPTL/meptl.class differ
diff --git a/bin/MEPTL/outils.class b/bin/MEPTL/outils.class
index 6594de3..c2ceca0 100644
Binary files a/bin/MEPTL/outils.class and b/bin/MEPTL/outils.class differ
diff --git a/src/MEPTL/HTML.java b/src/MEPTL/HTML.java
index aa10b35..db205bf 100644
--- a/src/MEPTL/HTML.java
+++ b/src/MEPTL/HTML.java
@@ -237,9 +237,10 @@ public class HTML {
if(nod.getNodes().get(k).getAttributs().get("niveau")!=null) {
String Tst = nod.getNodes().get(k).getAttributs().get("resultat");
- // String Key = outils.Traduction(nod.getNodes().get(k).getAttributs().get("elt") + " " + outils.withoutCodeAndPoint(nod.getNodes().get(k).getAttributs().get("attribut")));
+
String Key = outils.traduction.get(nod.getNodes().get(k).getAttributs().get("elt") + " " + outils.withoutCodeAndPoint(nod.getNodes().get(k).getAttributs().get("attribut")));
- if(Key==null) Key = nod.getNodes().get(k).getAttributs().get("elt") + " " + outils.withoutCodeAndPoint(nod.getNodes().get(k).getAttributs().get("attribut"));
+
+ if(Key==null) Key = nod.getNodes().get(k).getAttributs().get("elt") + " " + outils.withoutCodeAndPoint(nod.getNodes().get(k).getAttributs().get("attribut"));
String valueStudent = nod.getNodes().get(k).getAttributs().get("valueStudent");
String valueSujet = outils.withoutCodeAndPoint(nod.getNodes().get(k).getAttributs().get("valueSujet"));
@@ -275,6 +276,7 @@ public class HTML {
code = code + HTML.Table(Tst, Key2, valueStudent, valueSujet, niveau);
}else {
if(nod.getNodes().get(k).getNodes().get(l).getAttributs().get("titre")!=null) code = code + HTML.SautLigneOnduleBleu(nod.getNodes().get(k).getNodes().get(l).getAttributs().get("titre"));
+ if(nod.getNodes().get(k).getNodes().get(l).getAttributs().get("titre1")!=null) code = code + HTML.SautLigneOnduleBleu(nod.getNodes().get(k).getNodes().get(l).getAttributs().get("titre1"));
if(nod.getNodes().get(k).getNodes().get(l).getAttributs().get("titre2")!=null) code = code + HTML.SautP8(nod.getNodes().get(k).getNodes().get(l).getAttributs().get("titre2"));
}
diff --git a/src/MEPTL/analyseLesNodesEnants.java b/src/MEPTL/analyseLesNodesEnfants.java
similarity index 87%
rename from src/MEPTL/analyseLesNodesEnants.java
rename to src/MEPTL/analyseLesNodesEnfants.java
index f02a5b4..41d86df 100644
--- a/src/MEPTL/analyseLesNodesEnants.java
+++ b/src/MEPTL/analyseLesNodesEnfants.java
@@ -3,7 +3,7 @@ package MEPTL;
import cXML.node;
import cXML.Run;
-public class analyseLesNodesEnants {
+public class analyseLesNodesEnfants {
/**
* Cette méthode récursive permet d'analyser et d'évaluer les nodes enfants.
@@ -66,9 +66,9 @@ public class analyseLesNodesEnants {
}
}
- //**********************************************
- //** Analyse les nodes enfants du node enfant **
- //**********************************************
+ //************************************************************
+ //** Analyse les nodes enfants du node enfant - Récursivité **
+ //************************************************************
if(nodEnfantSujet!=null) {
PourAnalyse = nodeNext(PourAnalyse, nomDuNodePourAnalyse, nodStudentCorrespondantAuNodSujet, nod2Student, nod1Student, nodEnfantSujet, nodSujetParagraphs, nodStudentParagraphes, a);
}
@@ -80,13 +80,13 @@ public class analyseLesNodesEnants {
/**
- * Permet d'analyser les styles depuis l'attribut analyseStyle.
+ * Permet d'analyser les styles depuis l'attribut analyseStyle.
* @param PourAnalyse : node pour le node analyse
- * @param : Le nom du node de l'analyse pour cette partie (exemple ana:page)
- * @param nodSujet
- * @param nodStudent
- * @param nodSujetParagraphs
- * @param nodStudentParagraphs
+ * @param : Le nom du node de l'analyse pour cette partie de l'analyse(exemple ana:page)
+ * @param nodSujet : le node du sujet (consignes).
+ * @param nodStudent : le node de l'étudiant.
+ * @param nodSujetParagraphs : le node contenant l'ensemble des styles du sujet.
+ * @param nodStudentParagraphs : le node contenant l'ensemble des style de l'étudiant.
* @return
*/
public static node analyseStyle(node PourAnalyse, String nomDuNodePourAnalyse, node nodSujet, node nodStudent, node nodSujetParagraphs, node nodStudentParagraphs ) {
diff --git a/src/MEPTL/commandes.java b/src/MEPTL/commandes.java
index e287541..65aac77 100644
--- a/src/MEPTL/commandes.java
+++ b/src/MEPTL/commandes.java
@@ -603,12 +603,28 @@ public class commandes {
System.out.println("\t\t┌────────────────────────────────────────────────────┐");
System.out.println("\t\t│ (')_(') │");
System.out.println("\t\t│ ( `.° ) Bravo, vous avez travaillé très dur! │");
- System.out.println("\t\t│ (\")__(\") .. Bye Bye analyseWriter. │");
+ System.out.println("\t\t│ (\")__(\") ... Bye Bye analyseWriter. │");
System.out.println("\t\t└────────────────────────────────────────────────────┘");
System.out.println();
System.exit(0);
}
+ /**
+ *
+ */
+ public static void clotureApplicationAvecErreur() {
+ System.out.println();
+ System.out.println("\t\t┌────────────────────────────────────────────────────┐");
+ System.out.println("\t\t│ (')_(') │");
+ System.out.println("\t\t│ ( ;.; ) Une erreur c'est produite. │");
+ System.out.println("\t\t│ (\")__(\") ... Bye Bye analyseWriter. │");
+ System.out.println("\t\t└────────────────────────────────────────────────────┘");
+ System.out.println();
+ System.exit(0);
+ }
+
+
+
public static void clotureWithHelp() {
System.out.println();
System.out.println("\t\t┌─────────────────────────────────────────────────────┐");
diff --git a/src/MEPTL/ecritureSujet.java b/src/MEPTL/ecritureSujet.java
index dd66cb6..49ef147 100644
--- a/src/MEPTL/ecritureSujet.java
+++ b/src/MEPTL/ecritureSujet.java
@@ -300,7 +300,7 @@ public class ecritureSujet {
if(no.get(k)!=null) {
no.get(k).getAttributs().put("evaluer", "false");
if(listeDesNodesAvecEvalNode(no.get(k).getNomElt())) no.get(k).getAttributs().put("evalNameNode", "0");
- if(listeDesNodesSautEtTitre(no.get(k).getNomElt())) {no.get(k).getAttributs().put("saut", "false"); no.get(k).getAttributs().put("titre", ""); no.get(k).getAttributs().put("styletitre", "nostyle");}
+ if(listeDesNodesSautEtTitre(no.get(k).getNomElt())) {no.get(k).getAttributs().put("saut", "false"); no.get(k).getAttributs().put("titre", "");}
if(listeDesNodesRechercheIndex(no.get(k).getNomElt())) {no.get(k).getAttributs().put("recherche_index", "false"); no.get(k).getAttributs().put("recherche_contenu_exact", "false");}
if(listeDesNodesAnalyseStyle(no.get(k).getNomElt())) no.get(k).getAttributs().put("analyseStyle", "false");
if(listeDesNodesAllContent(no.get(k).getNomElt())) no.get(k).getAttributs().put("allContent", "strict0");
@@ -354,6 +354,7 @@ public class ecritureSujet {
* @return
*/
private static boolean listeDesNodesAnalyseStyle(String nameNode) {
+ if(nameNode.contains("text:database-display")) return false;
if(nameNode.contains("text:")) return true;
return false;
}
diff --git a/src/MEPTL/meptl.java b/src/MEPTL/meptl.java
index 2990057..774539f 100644
--- a/src/MEPTL/meptl.java
+++ b/src/MEPTL/meptl.java
@@ -142,9 +142,18 @@ public class meptl {
if(commandes.analyse) {
nodeSujet = chargementsujet(commandes.nameSujet, true);
- //** Chargement de la culture **
- commandes.culture = nodeSujet.retourneFirstEnfantsByName("setting").getAttributs().get("culture"); //récupère la culture de l'utilisateur
+ if(nodeSujet==null) {
+ //***************************
+ //** bye bye analyseWriter **
+ //***************************
+ commandes.clotureApplicationAvecErreur();
+ }
+ //** Chargement de la culture **
+ if(nodeSujet.retourneFirstEnfantsByName("setting").isHasAttributs()) {
+ commandes.culture = nodeSujet.retourneFirstEnfantsByName("setting").getAttributs().get("culture"); //récupère la culture de l'utilisateur
+ }
+
//** La méthode verificationFichier Analyse permet de détecter des erreurs dans le fichier d'analyse
new verificationFichierAnalyse(nodeSujet);
@@ -318,32 +327,33 @@ public class meptl {
}
}
- //*****************************************************
- //** Exportation au format CSV si -csv ou -verifcsv **
- //*****************************************************
- if(commandes.ecritNoteCSV && !commandes.fourniCSV) {
- if(!commandes.verifHisto2) ecritureCSV(ensembleanalyse);
- if(commandes.verifHisto2) ecritureCSV(ensembleanalyse,verif,a,nodeSujet.retourneFirstEnfantsByName("setting"));
- //a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant
+ if(nodeSujet!=null) {
+ //*****************************************************
+ //** Exportation au format CSV si -csv ou -verifcsv **
+ //*****************************************************
+ if(commandes.ecritNoteCSV && !commandes.fourniCSV) {
+ if(!commandes.verifHisto2) ecritureCSV(ensembleanalyse);
+ if(commandes.verifHisto2) ecritureCSV(ensembleanalyse,verif,a,nodeSujet.retourneFirstEnfantsByName("setting"));
+ //a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant
+ }
+
+ //***********************************************************************
+ //** Exportation au format CSV si -csv file.csv ou -verifcsv file.csv **
+ //***********************************************************************
+ if(commandes.ecritNoteCSV && commandes.fourniCSV) {
+ ecritureCSV(ensembleanalyse,verif,a,nodeCSV, nodeSujet.retourneFirstEnfantsByName("setting"));
+ //a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant
+ }
+
+ //**************************************
+ //** Mise à jour du fichier d'analyse **
+ //**************************************
+ if(commandes.MAJFichierAnalyse||commandes.MAJnameAnalysisFile) {
+ verificationFichierAnalyse.MiseAJourFichierAnalyse();
+ verificationFichierAnalyse.messagMiseAJourFichierAnalyseAprèsAnalyse();
+ }
}
- //***********************************************************************
- //** Exportation au format CSV si -csv file.csv ou -verifcsv file.csv **
- //***********************************************************************
- if(commandes.ecritNoteCSV && commandes.fourniCSV) {
- ecritureCSV(ensembleanalyse,verif,a,nodeCSV, nodeSujet.retourneFirstEnfantsByName("setting"));
- //a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant
- }
-
- //**************************************
- //** Mise à jour du fichier d'analyse **
- //**************************************
- if(commandes.MAJFichierAnalyse||commandes.MAJnameAnalysisFile) {
- verificationFichierAnalyse.MiseAJourFichierAnalyse();
- verificationFichierAnalyse.messagMiseAJourFichierAnalyseAprèsAnalyse();
- }
-
-
//***************************
//** bye bye analyseWriter **
//***************************
@@ -1049,10 +1059,10 @@ public class meptl {
nodouverture.setAttributs(nodSujet.getAttributs());
nodouverture.getAttributs().put("dossier",a.getLectDossiers().getEC().getListeNomDossier().get(indexStudent));
nodouverture.getAttributs().put("filename", a.getLectDossiers().getEC().getListeFichierodt().get(indexStudent));
- nodouverture.getAttributs().put("filenameAnalyse", nodSujet.getAttributs().get("filename"));
- nodouverture.getAttributs().put("producteur", nodStudent.getAttributs().get("producteur"));
- nodouverture.getAttributs().put("dureeEdition", nodStudent.getAttributs().get("dureeEdition"));
- nodouverture.getAttributs().put("dateModification", nodStudent.getAttributs().get("dateModification"));
+ if(nodSujet.getAttributs().get("analysis_filename")!=null) nodouverture.getAttributs().put("filenameAnalyse", nodSujet.getAttributs().get("analysis_filename"));
+ if(nodStudent.getAttributs().get("producteur")!=null) nodouverture.getAttributs().put("producteur", nodStudent.getAttributs().get("producteur"));
+ if(nodStudent.getAttributs().get("dureeEdition")!=null) nodouverture.getAttributs().put("dureeEdition", nodStudent.getAttributs().get("dureeEdition"));
+ if(nodStudent.getAttributs().get("dateModification")!=null) nodouverture.getAttributs().put("dateModification", nodStudent.getAttributs().get("dateModification"));
nodouverture.getAttributs().put("patch", a.getPatch());
if(nodSujet.getAttributs().get("historiquePresent")!=null) nodouverture.getAttributs().put("historiquePresent", nodSujet.getAttributs().get("historiquePresent"));
if(nodSujet.getAttributs().get("controleDateCreation")!=null) nodouverture.getAttributs().put("controleDateCreation", nodSujet.getAttributs().get("controleDateCreation"));
@@ -1200,17 +1210,6 @@ public class meptl {
manqueValeurMetaSujet=true;
}
}
- }else {
-
- }
- }else {
- b = a.retourneFirstNodeByNameAttributValue(nodStudent, "meta:user-defined", "meta:name", "Sujet");
- if(b==null) {
- manqueMetaSujet=true;
- }else {
- if(!nodSujet.getAttributs().get("metaSujet").equals(b.getContenu().get(0))) {
- manqueValeurMetaSujet=true;
- }
}
}
@@ -1631,7 +1630,7 @@ public class meptl {
//**********************************************
//** Analyse de tous les autres nodes enfants **
//**********************************************
- page=analyseLesNodesEnants.nodeNext(page, "ana:page", pageStudent, null, null, pageSujet, nodSujetParagraphes, nodStudentParagraphes, a);
+ page=analyseLesNodesEnfants.nodeNext(page, "ana:page", pageStudent, null, null, pageSujet, nodSujetParagraphes, nodStudentParagraphes, a);
page.getAttributs().put("point", String.valueOf(outils.getPointsClass()-pointDebut));
page.getAttributs().put("pointTotal", String.valueOf(outils.getPointTotal()-pointTotalDebut));
@@ -1817,7 +1816,7 @@ public class meptl {
}
/**
- * Analyse du node numerotationchapitre.
+ * Analyse du node numerotationchapitre.
* @param nodStudentNumerotation
* @param nodSujetNumerotation
* @param a
@@ -1830,13 +1829,21 @@ public class meptl {
nodnumerotations.setAttributs(nodSujetNumerotation.getAttributs());//ajoute tous les attributs du sujet
nodnumerotations.setContenu(nodSujetNumerotation.getContenu()); //ajoute le commantaire du sujet
- //ajoute l'identifiant pour le menu
+ //***************************************
+ //** Ajoute l'identifiant pour le menu **
+ //***************************************
if(a.retourneFirstNodeByNameAttributValue(nodmenu, "item", "name", "numerotationchapitre")!=null) {
nodnumerotations.getAttributs().put("id", a.retourneFirstNodeByNameAttributValue(nodmenu, "item", "name", "numerotationchapitre").getAttributs().get("id"));
}
- //initialise les points
+ //***************************
+ //** initialise les points **
+ //***************************
outils.initiliseLesPoints();
+
+ //*******************************************************************
+ //** Parcours les nodes enfants du node **
+ //*******************************************************************
for(int i = 0 ; i < nodSujetNumerotation.getNodes().size(); i++) {
if(nodSujetNumerotation.getNodes().get(i).getNomElt().equals("text:outline-level-style")) {
int pointDebut = outils.getPointsClass();
@@ -1850,68 +1857,29 @@ public class meptl {
node numerotationStudent = a.retourneFirstNodeByNameAttributValue(nodStudentNumerotation, "text:outline-level-style", "text:level", levelnumrotation);
node numerotationSujet = nodSujetNumerotation.getNodes().get(i);
- // analyse les attributs du node
+ //********************************************
+ //** analyse les attributs des nodes **
+ //********************************************
numerotation = analyseLesAttributEtContenuDuNode(numerotationStudent, numerotationSujet, numerotation, "ana:numerotation",numerotationSujet.getNomElt());
-
- // les enfants du premier niveau du node
- for(int j = 0 ; j < numerotationSujet.getNodes().size();j++ ) {
-
- node nodSujet = numerotationSujet.getNodes().get(j);
- String nameNode = nodSujet.getNomElt();
- node nodStudent = null;
- if(numerotationStudent!=null) if(numerotationStudent.retourneFirstEnfantsByName(nameNode).getNomElt().equals(nameNode)) {
- nodStudent = numerotationStudent.retourneFirstEnfantsByName(nameNode);
- }
- //insère un saut si titre pas vide et saut=true
- numerotation=addNodeSautTitre(nodSujet, numerotation);
+ //************************************
+ //** analyse tous les nodes enfants **
+ //************************************
+ numerotation = analyseLesNodesEnfants.nodeNext(numerotation, "ana:numerotation", numerotationStudent, null, null, numerotationSujet, null, null, a);
- // analyse attribut et contenu des enfants du premier niveau
- numerotation = analyseLesAttributEtContenuDuNode(nodStudent, nodSujet, numerotation, "ana:numerotation",numerotationSujet.getNodes().get(j).getNomElt());
-
-
- for(int k = 0 ; k < nodSujet.getNodes().size();k++) {
- node nod2Sujet = nodSujet.getNodes().get(k);
- String nameNode2 = nod2Sujet.getNomElt();
- node nod2Student = null;
- if(nodStudent!=null) if(nodStudent.retourneFirstEnfantsByName(nameNode2).getNomElt().equals(nameNode2)) {
- nod2Student = numerotationStudent.retourneFirstEnfantsByName(nameNode2);
- }
-
- //insère un saut si titre pas vide et saut=true
- numerotation=addNodeSautTitre(nod2Sujet, numerotation);
-
- // analyse attribut et contenu des enfants du second niveau
- numerotation = analyseLesAttributEtContenuDuNode(nod2Student, nod2Sujet, numerotation, "ana:numerotation",nod2Sujet.getNomElt() );
-
-
- for(int l = 0 ; l < nod2Sujet.getNodes().size();l++) {
- node nod3Sujet = nod2Sujet.getNodes().get(l);
- String nameNode3 = nod3Sujet.getNomElt();
- node nod3Student = null;
- if(nod2Student!=null) if(nod2Student.retourneFirstEnfantsByName(nameNode3).getNomElt().equals(nameNode3)) {
- nod3Student = numerotationStudent.retourneFirstEnfantsByName(nameNode3);
- }
-
- //insère un saut si titre pas vide et saut=true
- numerotation=addNodeSautTitre(nod3Sujet, numerotation);
-
- // analyse attribut et contenu des enfants du troisième niveau
- numerotation = analyseLesAttributEtContenuDuNode(nod3Student, nod3Sujet, numerotation, "ana:paragraph", nod3Sujet.getNomElt());
- }
-
- }
-
- }
-
+ //****************************************************************
+ //** Insère les attributs des points dans les node de l'analyse **
+ //****************************************************************
numerotation.getAttributs().put("point", String.valueOf(outils.getPointsClass()-pointDebut));
numerotation.getAttributs().put("pointTotal", String.valueOf(outils.getPointTotal()-pointTotalDebut));
nodnumerotations.getNodes().add(numerotation);
-
}
}
+ //****************************************************************
+ //** Insère les attributs des points dans les node de l'analyse **
+ //****************************************************************
nodnumerotations.getAttributs().put("pointgagner",String.valueOf(outils.getPointsClass()));
nodnumerotations.getAttributs().put("pointtotal",String.valueOf(outils.getPointTotal()));
nodnumerotations.getAttributs().put("proportioncorrect",String.valueOf(outils.getProportionCorrect()));
@@ -1934,14 +1902,22 @@ public class meptl {
nodframes.setAttributs(nodSujetFrames.getAttributs()); //ajoute tous les attributs du sujet
nodframes.setContenu(nodSujetFrames.getContenu()); //ajoute le commentaire du sujet
- //ajoute l'identifiant pour le menu
+ //***************************************
+ //** Ajoute l'identifiant pour le menu **
+ //***************************************
if(a.retourneFirstNodeByNameAttributValue(nodmenu, "item", "name", "frames")!=null) {
nodframes.getAttributs().put("id", a.retourneFirstNodeByNameAttributValue(nodmenu, "item", "name", "frames").getAttributs().get("id"));
}
- //initialise les points
+ //***************************
+ //** initialise les points **
+ //***************************
outils.initiliseLesPoints();
- for(int i = 0 ; i < nodSujetFrames.getNodes().size(); i++) { //niveau 1
+
+ //*****************************************************
+ //** Parcours les nodes enfants du node **
+ //*****************************************************
+ for(int i = 0 ; i < nodSujetFrames.getNodes().size(); i++) {
if(nodSujetFrames.getNodes().get(i).getNomElt().equals("draw:frame")) {
int pointDebut = outils.getPointsClass();
int pointTotalDebut = outils.getPointTotal();
@@ -1954,103 +1930,28 @@ public class meptl {
node frameStudent = a.retourneFirstNodeByNameAttributValue(nodStudentFrames, "draw:frame", "draw:name", nomDuFrame);
node frameSujet = nodSujetFrames.getNodes().get(i);
- // analyse les attributs du node
+ //********************************************
+ //** analyse les attributs des nodes **
+ //********************************************
frame = analyseLesAttributEtContenuDuNode(frameStudent, frameSujet, frame, "ana:frame",frameSujet.getNomElt());
-
- // les enfants du premier niveau du node
- for(int j = 0 ; j < frameSujet.getNodes().size();j++ ) { //niveau 2
-
- node nodSujet = frameSujet.getNodes().get(j);
- String nameNode = nodSujet.getNomElt();
- node nodStudent = null;
- if(frameStudent!=null) if(frameStudent.retourneFirstEnfantsByName(nameNode).getNomElt().equals(nameNode)) {
- nodStudent = frameStudent.retourneFirstEnfantsByName(nameNode);
- }
- if(frameStudent!=null) if(nameNode.equals("text:p")) {
-
- if(nodSujet.getAttributs().get("index")!=null) {
- nodStudent = a.retourneFirstNodeByNameAttributValue(frameStudent, nameNode, "text:p", frameSujet.getNodes().get(j).getAttributs().get("index"));
- }
-
- if(nodStudent==null)if(nodSujet.retourneLesContenusEnfants("").isEmpty()) { //si il n'y a pas de contenu, passe par l'index
- nodStudent = a.retourneFirstNodeByNameAttributValue(frameStudent, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
- }else {
- nodStudent = a.retourneFirstNodeByFindContent2(frameStudent.getNodes(), nodSujet.retourneLesContenusEnfants(""), commandes.tolerance_characters,commandes.tolerance_text);
- }
-
- }
-
- //insère un saut si titre pas vide et saut=true
- frame=addNodeSautTitre(nodSujet, frame);
-
-
- // analyse attribut et contenu des enfants du premier niveau
- frame = analyseLesAttributEtContenuDuNode(nodStudent, nodSujet, frame, "ana:frame",nodSujet.getNomElt());
-
-
- for(int k = 0 ; k < nodSujet.getNodes().size();k++) { //niveau 3
- node nod2Sujet = nodSujet.getNodes().get(k);
- String nameNode2 = nod2Sujet.getNomElt();
- node nod2Student = null;
- if(nodStudent!=null) if(nodStudent.retourneFirstEnfantsByName(nameNode2).getNomElt().equals(nameNode2)) {
- nod2Student = nodStudent.retourneFirstEnfantsByName(nameNode2);
- }
- if(nodStudent!=null) if(nameNode2.equals("text:p")) {
- if(nod2Sujet.getAttributs().get("index")!=null) {
- nod2Student = a.retourneFirstNodeByNameAttributValue(nodStudent, nameNode2, "index", nod2Sujet.getAttributs().get("index"));
- }
- }
- if(nodStudent!=null) if(nameNode2.equals("text:database-display")) {
- if(nod2Sujet.getAttributs().get("text:column-name")!=null) {
- nod2Student = a.retourneFirstNodeByNameAttributValue(nodStudent, nameNode2, "text:column-name", outils.withoutCodeAndPoint(nod2Sujet.getAttributs().get("text:column-name")));
- }
- }
-
- //insère un saut si titre pas vide et saut=true
- frame=addNodeSautTitre(nod2Sujet, frame);
-
- // analyse attribut et contenu des enfants du second niveau
- frame = analyseLesAttributEtContenuDuNode(nod2Student, nod2Sujet, frame, "ana:frame",nod2Sujet.getNomElt() );
-
-
- for(int l = 0 ; l < nod2Sujet.getNodes().size();l++) { //niveau 4
- node nod3Sujet = nod2Sujet.getNodes().get(l);
- String nameNode3 = nod3Sujet.getNomElt();
- node nod3Student = null;
- if(nod2Student!=null) if(nod2Student.retourneFirstEnfantsByName(nameNode3).getNomElt().equals(nameNode3)) {
- nod3Student = nod2Student.retourneFirstEnfantsByName(nameNode3);
- }
- if(nod2Student!=null) if(nameNode3.equals("text:database-display")) {
- if(nod3Sujet.getAttributs().get("text:column-name")!=null) {
- nod3Student = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode3, "text:column-name", outils.withoutCodeAndPoint(nod3Sujet.getAttributs().get("text:column-name")));
- }
- }
- // analyse attribut et contenu des enfants du troisième niveau
- if(nod3Student!=null) if(nod3Sujet.getNomElt().equals("text:sequence") && nod3Student.getNomElt().equals("text:sequence")) {
- ArrayList changements = nod2Student.retourneEnfantsByName("text:change", new ArrayList());
- nod3Student.setNodes(changements);
- }
-
- //insère un saut si titre pas vide et saut=true
- frame=addNodeSautTitre(nod3Sujet, frame);
-
- // analyse attribut et contenu des enfants du second niveau
- frame = analyseLesAttributEtContenuDuNode(nod3Student, nod3Sujet, frame, "ana:frame", nod3Sujet.getNomElt());
- }
-
- }
-
- }
-
+ //************************************
+ //** analyse tous les nodes enfants **
+ //************************************
+ frame = analyseLesNodesEnfants.nodeNext(frame, "ana:frame", frameStudent, null, null, frameSujet, null, null, a);
+
+
+ //****************************************************************
+ //** Insère les attributs des points dans les node de l'analyse **
+ //****************************************************************
frame.getAttributs().put("point", String.valueOf(outils.getPointsClass()-pointDebut));
frame.getAttributs().put("pointTotal", String.valueOf(outils.getPointTotal()-pointTotalDebut));
nodframes.getNodes().add(frame);
-
-
}
}
-
+ //****************************************************************
+ //** Insère les attributs des points dans les node de l'analyse **
+ //****************************************************************
nodframes.getAttributs().put("pointgagner",String.valueOf(outils.getPointsClass()));
nodframes.getAttributs().put("pointtotal",String.valueOf(outils.getPointTotal()));
nodframes.getAttributs().put("proportioncorrect",String.valueOf(outils.getProportionCorrect()));
@@ -2598,7 +2499,7 @@ public class meptl {
//************************************
//** analyse tous les nodes enfants **
//************************************
- page = analyseLesNodesEnants.nodeNext(page, "ana:page", pageStudent, null, null, pageSujet, nodSujetParagraphs, nodStudentParagraphs, a);
+ page = analyseLesNodesEnfants.nodeNext(page, "ana:page", pageStudent, null, null, pageSujet, nodSujetParagraphs, nodStudentParagraphs, a);
//****************************************************************
//** Insère les attributs des points dans les node de l'analyse **
@@ -2983,29 +2884,32 @@ public class meptl {
* @return
*/
public static node addNodeSautTitre(node nodSujet, node nodanalyse) {
- if(nodSujet.getAttributs().get("saut")!=null) if(Boolean.valueOf(nodSujet.getAttributs().get("saut"))) {
- if(nodSujet.getAttributs().get("titre")!=null) {
- node N = new node();
- N.setNomElt("saut");
- N.getAttributs().put("titre", nodSujet.getAttributs().get("titre"));
- N.setClose(true);
- nodanalyse.getNodes().add(N);
- }
- if(nodSujet.getAttributs().get("titre2")!=null) {
- node N = new node();
- N.setNomElt("saut");
- N.getAttributs().put("titre2", nodSujet.getAttributs().get("titre2"));
- N.setClose(true);
- nodanalyse.getNodes().add(N);
- }
- if(nodSujet.getAttributs().get("titre3")!=null) {
- node N = new node();
- N.setNomElt("saut");
- N.getAttributs().put("titre3", nodSujet.getAttributs().get("titre3"));
- N.setClose(true);
- nodanalyse.getNodes().add(N);
+ if(nodSujet.getAttributs().get("saut")!=null) {
+ if(Boolean.valueOf(nodSujet.getAttributs().get("saut"))) {
+ if(nodSujet.getAttributs().get("titre")!=null) {
+ node N = new node();
+ N.setNomElt("saut");
+ N.getAttributs().put("titre", nodSujet.getAttributs().get("titre"));
+ N.setClose(true);
+ nodanalyse.getNodes().add(N);
+ }
+ if(nodSujet.getAttributs().get("titre2")!=null) {
+ node N = new node();
+ N.setNomElt("saut");
+ N.getAttributs().put("titre2", nodSujet.getAttributs().get("titre2"));
+ N.setClose(true);
+ nodanalyse.getNodes().add(N);
+ }
+ if(nodSujet.getAttributs().get("titre3")!=null) {
+ node N = new node();
+ N.setNomElt("saut");
+ N.getAttributs().put("titre3", nodSujet.getAttributs().get("titre3"));
+ N.setClose(true);
+ nodanalyse.getNodes().add(N);
+ }
}
}
+
return nodanalyse;
}
diff --git a/src/MEPTL/outils.java b/src/MEPTL/outils.java
index 7b1d5b6..a7da160 100644
--- a/src/MEPTL/outils.java
+++ b/src/MEPTL/outils.java
@@ -680,11 +680,11 @@ public class outils {
public static String withoutCodeAndPointPourRechercheContenuExact(String B) {
if(B!=null) {
if(B.contains("‽")) B=B.replaceAll("‽[0-9]{0,}", ""); //B=B.substring(0, B.indexOf("‽"));
- if(B.contains("↑")) B=B.replace("↑", "");
- if(B.contains("↕")) B=B.replace("↕", "");
- if(B.contains("≡")) B=B.replace("≡", "");
- if(!B.isEmpty()) B=B.replace("¢", "");
- B=B.replaceAll("‽[0-9]{1,}", "");
+ if(!B.isEmpty()) if(B.contains("↑")) B=B.replace("↑", "");
+ if(!B.isEmpty()) if(B.contains("↕")) B=B.replace("↕", "");
+ if(!B.isEmpty()) if(B.contains("≡")) B=B.replace("≡", "");
+ if(!B.isEmpty()) if(B.contains("¢")) B=B.replace("¢", "");
+ if(!B.isEmpty()) B=B.replaceAll("‽[0-9]{1,}", "");
}
return B;
}
diff --git a/src/MEPTL/rechercherUnNodeStudent.java b/src/MEPTL/rechercherUnNodeStudent.java
index b949169..f6dfac8 100644
--- a/src/MEPTL/rechercherUnNodeStudent.java
+++ b/src/MEPTL/rechercherUnNodeStudent.java
@@ -27,207 +27,138 @@ public class rechercherUnNodeStudent {
node nodStudent =null;
- //** Priorité à la recherche par contenu
+ //************************************************************************************************
+ //** Recherche le node par le contenu exact du node en intégrant les contenus des nodes enfants **
+ //************************************************************************************************
if(nodSujet.getAttributs().get("recherche_contenu_exact")!=null){
nodStudent = findNodeParContenuEXACT(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
if(nodStudent != null) return nodStudent;
}
- // recherche le node par index uniquement
+ //***********************************
+ //** Recherche le node par l'index **
+ //***********************************
if(nodSujet.getAttributs().get("recherche_index")!=null){
nodStudent = findNodeParIndex(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
- if(nodStudent != null) return nodStudent;
+ if(nodSujet.getAttributs().get("recherche_index").equalsIgnoreCase("true")) return nodStudent;
}
//*****************************************************************
- //** Recherche Le node text:p par les différents contenu du node **
+ //** Recherche le node text:p par les différents contenu du node **
//*****************************************************************
- if(nameNode.equals("text:p")) {
+ if(nameNode.equals("text:p")||nameNode.equals("text:span")) {
nodStudent = findLeNodeTextpParDesNodesEnfantsSpecifique(nameNode, nodSujet,nod0Student, nod1Student, nod2Student, a );
}
-
- if(nameNode.equals("text:title")) {
- if(nod2Student!=null) nodStudent = nod2Student.retourneFirstEnfantsByName("text:title");
- if(nod1Student!=null) if(nodStudent==null) nodStudent = nod1Student.retourneFirstEnfantsByName("text:title");
- if(nod0Student!=null) if(nodStudent==null) nodStudent = nod0Student.retourneFirstEnfantsByName("text:title");
- return nodStudent;
- }
-
- if(nameNode.equals("text:subject")) {
- if(nod2Student!=null) nodStudent = nod2Student.retourneFirstEnfantsByName("text:subject");
- if(nod1Student!=null) if(nodStudent==null) nodStudent = nod1Student.retourneFirstEnfantsByName("text:subject");
- if(nod0Student!=null) if(nodStudent==null) nodStudent = nod0Student.retourneFirstEnfantsByName("text:subject");
- }
-
- if(nameNode.equals("text:initial-creator")) {
- if(nod2Student!=null) nodStudent = nod2Student.retourneFirstEnfantsByName("text:initial-creator");
- if(nod1Student!=null) if(nodStudent==null) nodStudent = nod1Student.retourneFirstEnfantsByName("text:initial-creator");
- if(nod0Student!=null) if(nodStudent==null) nodStudent = nod0Student.retourneFirstEnfantsByName("text:initial-creator");
- }
-
- if(nameNode.equals("text:user-defined")) {
- if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
- }
-
-
- //recherche par le contenu enfant du node les titres par défaut
- if(nameNode.equals("text:h")) {
- String contenuSujet = nodSujet.retourneLesContenusEnfants("");
- if(nod2Student!=null) nodStudent = a.retourneFirstNodeByFindContent2(nod2Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod1Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod0Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
- }
-
- //recherche par text:name
- if(nameNode.equals("text:section")) {
- if(nodSujet.getAttributs().get("recherche_index")==null) {
- if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod2Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod1Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod0Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
- }else {
- if(nodSujet.getAttributs().get("recherche_index").equals("false")) {
- if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod2Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod1Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod0Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
- }
- if(nodSujet.getAttributs().get("recherche_index").equals("true")) {
- if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod2Student, nameNode, "index", nodSujet.getAttributs().get("index"));
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod1Student, nameNode, "index", nodSujet.getAttributs().get("index"));
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod0Student, nameNode, "index", nodSujet.getAttributs().get("index"));
- }
- }
- }
-
- //recherche par le nom de la colonne dans les database
- if(nameNode.equals("text:database-display")) {
- if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "text:column-name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:column-name")));
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "text:column-name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:column-name")));
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "text:column-name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:column-name")));
- }
-
- //recherche par le nom de l'objet draw:name ou par text:anchor-page-number si ancrer à la page
+ //********************************************************************************
+ //** Recherche le node draw:frame par draw:name ou recherche_anchor-page-number **
+ //********************************************************************************
if(nameNode.equals("draw:frame")) {
- if(nodSujet.getAttributs().get("recherche_anchor-page-number")==null) {
- if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod2Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod1Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod0Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
- }else {
- if(nodSujet.getAttributs().get("recherche_anchor-page-number").equals("false")) {
- if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod2Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod1Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod0Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
- }
- if(nodSujet.getAttributs().get("recherche_anchor-page-number").equals("true")) {
- if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "text:anchor-page-number", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("text:anchor-page-number")));
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "text:anchor-page-number", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("text:anchor-page-number")));
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "text:anchor-page-number", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("text:anchor-page-number")));
- //si recherche l'ancrage de la page pas trouvé alors recherche par draw:name
- if(nodStudent==null) {
- if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod2Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod1Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod0Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
- }
- }
- }
+ nodStudent = findDrawFrame(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
}
-
- //recherche par le nom de l'objet
- if(nameNode.equals("style:graphic-properties")) {
- if(!nodSujet.getContenu().isEmpty()) {
- if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameContent(nod2Student, nameNode, nodSujet.getContenu().get(0));
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameContent(nod1Student, nameNode, nodSujet.getContenu().get(0));
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameContent(nod0Student, nameNode, nodSujet.getContenu().get(0));
- }
+ //***********************************************
+ //** Recherche le nodes text:xxx par text:name **
+ //***********************************************
+ if(nameNode.equals("text:section") || nameNode.equals("text:user-defined") || nameNode.equals("text:table-of-content")) {
+ nodStudent = findByTextName(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
}
+ //******************************************************************
+ //** Recherche le node text:database-display par text:column-name **
+ //******************************************************************
+ if(nameNode.equals("text:database-display")) {
+ nodStudent = findDataBase(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
+ }
- //Recherche un node table
- if(nameNode.contains("table")) {
- //recherche par le nom de la table
- if(nameNode.equals("table:table")) {
- if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "table:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("table:name")));
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "table:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("table:name")));
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "table:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("table:name")));
- }
-
- //recherche par l'index
- if(nameNode.equals("table:table-row")) {
- if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "index", nodSujet.getAttributs().get("index"));
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "index", nodSujet.getAttributs().get("index"));
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "index", nodSujet.getAttributs().get("index"));
- }
-
- //recherche par l'index
- if(nameNode.equals("table:table-cell")) {
- if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "index", nodSujet.getAttributs().get("index"));
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "index", nodSujet.getAttributs().get("index"));
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "index", nodSujet.getAttributs().get("index"));
- }
+ //**************************************************
+ //** Recherche le node table:table par table:name **
+ //**************************************************
+ if(nameNode.equals("table:table")) {
+ nodStudent = findTable(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
+ }
+
+ //*************************************************************************
+ //** Recherche le node text:h par le contenu avec tolérance de carcatère **
+ //*************************************************************************
+ if(nameNode.equals("text:h")) {
+ nodStudent = findByContentWithTolerance(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
+ }
- //recherche par le nom du style qui est toujours formé par nomtable.colonne
- if(nameNode.equals("table:table-column")) {
- if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "table:style-name", nodSujet.getAttributs().get("table:style-name"));
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "table:style-name", nodSujet.getAttributs().get("table:style-name"));
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "table:style-name", nodSujet.getAttributs().get("table:style-name"));
- }
+ //*******************************************************
+ //** Recherche le node par l'index mais si pas demandé **
+ //*******************************************************
+ if(nameNode.equals("table:table-row") || nameNode.equals("table:table-cell") || nameNode.equals("text:tab") || nameNode.equals("text:span")) {
+ nodStudent = findByIndexEvenIsFalse(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
+ }
+
+
+ //***************************************************************
+ //** Recherche le node table:table-column par table:style-name **
+ //***************************************************************
+ if(nameNode.equals("table:table-column")) {
+ nodStudent = findTableByStyleName(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
+ }
- //recherche par texte:name
- if(nameNode.equals("text:table-of-content")) {
- if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
- }
+ //*********************************************
+ //** Recherche le node par le contenu simple **
+ //*********************************************
+ if(nameNode.equals("text:tab") || nameNode.equals("style:graphic-properties")) {
+ nodStudent = findByContentZero(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
}
-
- //recherche par contenu
- if(nameNode.equals("text:span")) {
- String contenuSujet = nodSujet.retourneLesContenusEnfants("");
- if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod2Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod1Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod0Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
+
+ //*****************************************************************
+ //** Recherche Le node text:p par les différents contenu du node **
+ //** text:title - text:subject - text:initial-creator - text:tab **
+ //*****************************************************************
+ if(nodStudent==null) {
+ nodStudent = findByNameNode(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
}
-
- //recherche par contenu
- if(nameNode.equals("text:tab")) {
- String contenuSujet = nodSujet.retourneLesContenusEnfants("");
- if(!contenuSujet.trim().isEmpty()) {
- if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod2Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod1Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod0Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
- }
+
+ //*********************************************
+ //** Recherche le node par le contenu simple **
+ //*********************************************
+ if(nodStudent==null){
+ nodStudent = findByContentZero(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
}
-
- // dernière tentative si le node est vide, recherche par le nom du node
- if(nodStudent==null && !nameNode.equals("text:p")) {
- if(nod2Student!=null) if(nod2Student.retourneEnfantsByNameExist(nameNode)) nodStudent = nod2Student.retourneFirstEnfantsByName(nameNode);
- if(nod1Student!=null) if(nodStudent==null) if(nod1Student.retourneEnfantsByNameExist(nameNode)) nodStudent = nod1Student.retourneFirstEnfantsByName(nameNode);
- if(nod0Student!=null) if(nodStudent==null) if(nod0Student.retourneEnfantsByNameExist(nameNode)) nodStudent = nod0Student.retourneFirstEnfantsByName(nameNode);
- }
-
-
-
return nodStudent;
}
-
-
+ /**
+ * Recherche par le contenu exact du node. Englobe les contenus des nodes enfants.
+ * @param nameNode
+ * @param nodSujet
+ * @param nod0Student
+ * @param nod1Student
+ * @param nod2Student
+ * @param a
+ * @return
+ */
private static node findNodeParContenuEXACT(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a ) {
node nodStudent = null;
if(nodSujet.getAttributs().get("recherche_contenu_exact").equals("true")) {
- String valueAttribut = outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getContenu().get(0));
- if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod2Student.getNodes(), valueAttribut, nodSujet.getNomElt());
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod1Student.getNodes(), valueAttribut, nodSujet.getNomElt());
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod0Student.getNodes(), valueAttribut, nodSujet.getNomElt());
+ if(!nodSujet.retourneLesContenusEnfants("").isEmpty()) {
+ String valueAttribut = outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.retourneLesContenusEnfants(""));
+ if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod2Student.getNodes(), valueAttribut, nodSujet.getNomElt());
+ if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod1Student.getNodes(), valueAttribut, nodSujet.getNomElt());
+ if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod0Student.getNodes(), valueAttribut, nodSujet.getNomElt());
+ }
}
return nodStudent;
}
+ /**
+ * Recherche par l'attribut index.
+ * @param nameNode
+ * @param nodSujet
+ * @param nod0Student
+ * @param nod1Student
+ * @param nod2Student
+ * @param a
+ * @return
+ */
private static node findNodeParIndex(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a ) {
node nodStudent = null;
if(nodSujet.getAttributs().get("recherche_index").equals("true")) {
@@ -303,42 +234,212 @@ public class rechercherUnNodeStudent {
if(nod0Student!=null) if(nodStudent==null) nodStudent = nod0Student.retourneFirstEnfantsByNameNode1ContainNameNode2("text:p","text:creator");
}
- if(nodSujet.getAttributs().get("recherche_contenu_exact")!=null) {
- if(nodSujet.getAttributs().get("recherche_contenu_exact").equalsIgnoreCase("true")) {
- if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
- }
+
+ //** Recherche par contenu
+ if(!nodSujet.getContenu().isEmpty()) {
+ String valueAttribut = outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getContenu().get(0));
+ if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod2Student.getNodes(), valueAttribut, nodSujet.getNomElt());
+ if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod1Student.getNodes(), valueAttribut, nodSujet.getNomElt());
+ if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod0Student.getNodes(), valueAttribut, nodSujet.getNomElt());
}
-
-// if(nodSujet.getAttributs().get("recherche_index")!=null) {
-// if(nodSujet.getAttributs().get("recherche_index").equalsIgnoreCase("true")) {
-// if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
-// if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
-// if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
-// }
-// }
-//
-//
-// if(nodStudent==null) {
-// if(nodSujet.retourneLesContenusEnfants("").isEmpty()) { //s'il n'y a pas de contenu, passe par l'index
-// if(nodSujet.getAttributs().get("index")!=null) {
-// if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
-// if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
-// if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
-// }
-// }else {
-// String contenuSujet = nodSujet.retourneLesContenusEnfants("");
-// if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod2Student.getNodes(),contenuSujet ,commandes.tolerance_characters,commandes.tolerance_text);
-// if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod1Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
-// if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod0Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
-// }
-// }
+ //** Recherche le node par index uniquement. Si trouve pa retourne un null.
+ if(nodSujet.getAttributs().get("index")!=null){
+ String valueAttribut = nodSujet.getAttributs().get("index");
+ if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student.getNodes(), nodSujet.getNomElt(),"index",valueAttribut);
+ if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student.getNodes(), nodSujet.getNomElt(),"index",valueAttribut);
+ if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student.getNodes(), nodSujet.getNomElt(),"index",valueAttribut);
+ }
return nodStudent;
}
+
+ /**
+ * Recherche Le node draw:frame par l'attribut draw:name ou recherche_anchor-apge-number.
+ * @param nameNode
+ * @param nodSujet
+ * @param nod0Student
+ * @param nod1Student
+ * @param nod2Student
+ * @param a
+ * @return
+ */
+ private static node findDrawFrame(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
+ node nodStudent = null;
+ //recherche par le nom de l'objet draw:name par défaut
+ if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod2Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
+ if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod1Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
+ if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod0Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
+
+ if(nodStudent!=null) return nodStudent;
+
+ if(nodSujet.getAttributs().get("recherche_anchor-page-number")!=null) if(nodSujet.getAttributs().get("recherche_anchor-page-number").equalsIgnoreCase("true")) {
+ if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "text:anchor-page-number", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("text:anchor-page-number")));
+ if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "text:anchor-page-number", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("text:anchor-page-number")));
+ if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "text:anchor-page-number", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("text:anchor-page-number")));
+ }
+
+ return nodStudent;
+ }
+
+ /**
+ * Recherche Le node text:section par l'attribut text:name;
+ * @param nameNode
+ * @param nodSujet
+ * @param nod0Student
+ * @param nod1Student
+ * @param nod2Student
+ * @param a
+ * @return
+ */
+ private static node findByTextName(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
+ node nodStudent = null;
+ if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
+ if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
+ if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
+
+ return nodStudent;
+ }
+
+ /**
+ * Recherche le node par son nom. Retourne le premier node qui correspond au nom du node.
+ * @param nameNode
+ * @param nodSujet
+ * @param nod0Student
+ * @param nod1Student
+ * @param nod2Student
+ * @param a
+ * @return
+ */
+ private static node findByNameNode(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
+ node nodStudent = null;
+ if(nod2Student!=null) if(nod2Student.retourneEnfantsByNameExist(nameNode)) nodStudent = nod2Student.retourneFirstEnfantsByName(nameNode);
+ if(nod1Student!=null) if(nodStudent==null) if(nod1Student.retourneEnfantsByNameExist(nameNode)) nodStudent = nod1Student.retourneFirstEnfantsByName(nameNode);
+ if(nod0Student!=null) if(nodStudent==null) if(nod0Student.retourneEnfantsByNameExist(nameNode)) nodStudent = nod0Student.retourneFirstEnfantsByName(nameNode);
+
+ return nodStudent;
+ }
+
+ /**
+ * Recherche le node text:database-display par text:column-name.
+ * @param nameNode
+ * @param nodSujet
+ * @param nod0Student
+ * @param nod1Student
+ * @param nod2Student
+ * @param a
+ * @return
+ */
+ private static node findDataBase(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
+ node nodStudent = null;
+ if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "text:column-name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:column-name")));
+ if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "text:column-name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:column-name")));
+ if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "text:column-name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:column-name")));
+
+ return nodStudent;
+ }
+
+ /**
+ * Recherche le node par le contenu simple get(0).
+ * @param nameNode
+ * @param nodSujet
+ * @param nod0Student
+ * @param nod1Student
+ * @param nod2Student
+ * @param a
+ * @return
+ */
+ private static node findByContentZero(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
+ node nodStudent = null;
+ if(!nodSujet.getContenu().isEmpty()) {
+ if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameContent(nod2Student, nameNode, nodSujet.getContenu().get(0));
+ if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameContent(nod1Student, nameNode, nodSujet.getContenu().get(0));
+ if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameContent(nod0Student, nameNode, nodSujet.getContenu().get(0));
+ }
+
+ return nodStudent;
+ }
+
+ /**
+ * Rechercher le node table:table par table:name.
+ * @param nameNode
+ * @param nodSujet
+ * @param nod0Student
+ * @param nod1Student
+ * @param nod2Student
+ * @param a
+ * @return
+ */
+ private static node findTable(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
+ node nodStudent = null;
+ if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "table:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("table:name")));
+ if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "table:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("table:name")));
+ if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "table:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("table:name")));
+
+ return nodStudent;
+ }
+
+ /**
+ * Recherche le node par son contenu avec une tolérance de carcatère.
+ * @param nameNode
+ * @param nodSujet
+ * @param nod0Student
+ * @param nod1Student
+ * @param nod2Student
+ * @param a
+ * @return
+ */
+ private static node findByContentWithTolerance(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
+ node nodStudent = null;
+ String contenuSujet = nodSujet.retourneLesContenusEnfants("");
+ if(nod2Student!=null) nodStudent = a.retourneFirstNodeByFindContent2(nod2Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
+ if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod1Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
+ if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod0Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
+
+ return nodStudent;
+ }
+
+ /**
+ * Rechreche le node par son index même si pas demandé.
+ * @param nameNode
+ * @param nodSujet
+ * @param nod0Student
+ * @param nod1Student
+ * @param nod2Student
+ * @param a
+ * @return
+ */
+ private static node findByIndexEvenIsFalse(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
+ node nodStudent = null;
+ if(nodSujet.getAttributs().get("index")!=null){
+ if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "index", nodSujet.getAttributs().get("index"));
+ if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "index", nodSujet.getAttributs().get("index"));
+ if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "index", nodSujet.getAttributs().get("index"));
+ }
+ return nodStudent;
+ }
+
+ /**
+ * Recherche le node par table:style-name.
+ * @param nameNode
+ * @param nodSujet
+ * @param nod0Student
+ * @param nod1Student
+ * @param nod2Student
+ * @param a
+ * @return
+ */
+ private static node findTableByStyleName(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
+ node nodStudent = null;
+ if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "table:style-name", nodSujet.getAttributs().get("table:style-name"));
+ if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "table:style-name", nodSujet.getAttributs().get("table:style-name"));
+ if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "table:style-name", nodSujet.getAttributs().get("table:style-name"));
+
+ return nodStudent;
+ }
+
+
}