diff --git a/.classpath b/.classpath
index 4b5675b..148593c 100644
--- a/.classpath
+++ b/.classpath
@@ -12,6 +12,6 @@
-
+
diff --git a/bin/MEPTL/rechercherUnNodeStudent.class b/bin/MEPTL/rechercherUnNodeStudent.class
index 5e2b12b..cdd43df 100644
Binary files a/bin/MEPTL/rechercherUnNodeStudent.class and b/bin/MEPTL/rechercherUnNodeStudent.class differ
diff --git a/bin/evaluer/evaluation.class b/bin/evaluer/evaluation.class
index 3f5c71b..99cabd1 100644
Binary files a/bin/evaluer/evaluation.class and b/bin/evaluer/evaluation.class differ
diff --git a/bin/fenetres/attributs.class b/bin/fenetres/attributs.class
index 2f04643..c9cc736 100644
Binary files a/bin/fenetres/attributs.class and b/bin/fenetres/attributs.class differ
diff --git a/bin/fenetres/create_act/actNewFichierAnalyse.class b/bin/fenetres/create_act/actNewFichierAnalyse.class
index 9ecd867..9529ecf 100644
Binary files a/bin/fenetres/create_act/actNewFichierAnalyse.class and b/bin/fenetres/create_act/actNewFichierAnalyse.class differ
diff --git a/bin/list/listeDesNodesAllContent.class b/bin/list/listeDesNodesAllContent.class
index 0c40347..3663849 100644
Binary files a/bin/list/listeDesNodesAllContent.class and b/bin/list/listeDesNodesAllContent.class differ
diff --git a/src/MEPTL/rechercherUnNodeStudent.java b/src/MEPTL/rechercherUnNodeStudent.java
index 2a7467d..d8b1e81 100644
--- a/src/MEPTL/rechercherUnNodeStudent.java
+++ b/src/MEPTL/rechercherUnNodeStudent.java
@@ -2,6 +2,7 @@ package MEPTL;
import java.util.ArrayList;
+import java.util.Enumeration;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -34,6 +35,7 @@ public class rechercherUnNodeStudent {
node nodStudent =null;
+
//************************************************************************************************
//** Recherche le node par le contenu exact du node en intégrant les contenus des nodes enfants **
@@ -42,7 +44,7 @@ public class rechercherUnNodeStudent {
if(nodSujet.getAttributs().get("recherche_contenu_exact")!=null){
if(nodSujet.getAttributs().get("recherche_contenu_exact").contentEquals("true")) {
nodStudent = findNodeParContenuEXACT(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
- if(nodStudent!=null) return nodStudent;
+ return nodStudent;
}
}
@@ -53,19 +55,11 @@ public class rechercherUnNodeStudent {
if(nodSujet.getAttributs().get("recherche_contenu_plus_proche_voisin")!=null && nodSujet.retourneLesContenusEnfants("").length()>2){
if(nodSujet.getAttributs().get("recherche_contenu_plus_proche_voisin").equals("true")){
nodStudent = findNodeParContenuPlusProcheVoisin(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
- if(nodStudent != null) {
-// System.out.println("A trouvé le node "+ nameNode + " par le plus proche voisin avec le contenu =" + nodSujet.retourneLesContenusEnfants(""));
- return nodStudent;
- }else {
-// System.out.println("N'a pas trouvé le node "+ nameNode + " par le plus proche voisin avec le contenu =" + nodSujet.retourneLesContenusEnfants(""));
- }
+ return nodStudent;
}
}
-
-
-
//***********************************
//** Recherche le node par l'index **
//***********************************
@@ -75,7 +69,7 @@ public class rechercherUnNodeStudent {
return nodStudent;
}
}
-
+
//**********************************************************************************************************
@@ -88,8 +82,7 @@ public class rechercherUnNodeStudent {
if(nodStudent!=null) return nodStudent;
}
-
-
+
//*****************************************************************
//** Recherche le node text:p par les différents contenu du node **
@@ -278,15 +271,15 @@ public class rechercherUnNodeStudent {
if(nodStudent!=null) return nodStudent;
//méthode par le calcul de la distance de levenshtein
- if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(nod2Student.getNodes(), valueAttribut, nameNode,0.75,null);
+ if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(nod2Student.getNodes(), valueAttribut, nameNode,0.1,null);
if(nod2Student!=null) if(nodStudent==null) {
ArrayList tousLesfreres = nod2Student.retourneTousLesFreres();
for(int i = 0 ; i < tousLesfreres.size();i++) {
if(tousLesfreres.get(i)!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(tousLesfreres.get(i).getNodes(), nameNode,valueAttribut,0.75,null);
}
}
- if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(nod1Student.getNodes(), valueAttribut, nameNode,0.75,null);
- if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(nod0Student.getNodes(), valueAttribut, nameNode,0.75,null);
+ if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(nod1Student.getNodes(), valueAttribut, nameNode,0.1,null);
+ if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(nod0Student.getNodes(), valueAttribut, nameNode,0.1,null);
}else {
@@ -698,13 +691,8 @@ public class rechercherUnNodeStudent {
}
-
-
-
/**
- * Recherche le node style:tab-stop par style:position.
- * Un tolérance de 0.05 est appliquée sur la valeur de la position.
- * On peut utiliser les intervalles dans la valeur de l'attribut style:position.
+ * Recherche le node style:position pour les stop de tabulation.
* @param nameNode
* @param nodSujet
* @param nod0Student
@@ -726,10 +714,6 @@ public class rechercherUnNodeStudent {
if(m3.find()) {
valueAttribut = (valueAttribut.substring(m3.start(), m3.end()));
}else {
- System.out.println("Tolérance par défaut du tab-stop");
- System.out.println("La valeur du tab-stop du sujet est =" + valueAttribut);
- System.out.println("Problème de pattern");
- System.out.println("no match avec la valeur du tab-stop du sujet.");
JOptionPane.showMessageDialog(null, "Le fichier d'analyse possède une erreur dans la valeur du tab-stop."
+"\r\nLa valeur est " + valueAttribut+
"\r\nProblème de pattern.","Erreur",JOptionPane.ERROR_MESSAGE);
@@ -739,8 +723,6 @@ public class rechercherUnNodeStudent {
valueAttribut = String.valueOf(evaluation.TraitementIntervaleRetourneValeurMaximale(valueAttribut) - tolerance);
}
}else {
- System.out.println("Erreur avec la valeur du tab-stop du sujet.");
- System.out.println("Valeur du tab-stop du sujet ="+valueAttribut);
JOptionPane.showMessageDialog(null, "Le fichier d'analyse possède une erreur dans la valeur du tab-stop."
+"\r\nLa valeur est " + valueAttribut,"Erreur",JOptionPane.ERROR_MESSAGE);
}
@@ -750,9 +732,6 @@ public class rechercherUnNodeStudent {
try {
ValeurSujet = Double.valueOf(valueAttribut);
}catch (Exception e) {
- System.out.println("La valeur du tab-stop du sujet est =" + valueAttribut);
- System.out.println("Problème de cast en type double");
- System.out.println("Valeur tab-stop="+ValeurSujet);
JOptionPane.showMessageDialog(null, "Le fichier d'analyse possède une erreur dans la valeur du tab-stop."
+"\r\nLa valeur est " + valueAttribut+
"\r\nImpossible de convertir la valeur en type Double.", "Erreur",JOptionPane.ERROR_MESSAGE);
@@ -771,9 +750,6 @@ public class rechercherUnNodeStudent {
if(m3.find()) {
valueAttributStudent = (valueAttributStudent.substring(m3.start(), m3.end()));
}else {
- System.out.println("La valeur du tab-stop du student est =" + valueAttributStudent);
- System.out.println("Problème de pattern");
- System.out.println("no match avec la valeur du tab-stop du student.");
JOptionPane.showMessageDialog(null, "Le fichier de l'étudiant possède une erreur dans la valeur du tab-stop."
+"\r\nLa valeur est " + valueAttribut+
"\r\nProblème de pattern.","Erreur",JOptionPane.ERROR_MESSAGE);
diff --git a/src/evaluer/evaluation.java b/src/evaluer/evaluation.java
index d564e21..61d4ae1 100644
--- a/src/evaluer/evaluation.java
+++ b/src/evaluer/evaluation.java
@@ -884,8 +884,8 @@ public class evaluation {
/**
* Compare deux chaînes de caractères avec un seuil de similitude (79% par défaut).
- * Lorsque les deux chaînes de caractères partages 79% des caractères comparés par groupe de 2 ou 3 ou 4. Alors retourne TRUE.
- * Lorsque les deux chaînes de caractères partages moins de 79% des caractères comparés par groupe de 2 ou 3 ou 4. Alors retourne FALSE.
+ * Lorsque les deux chaînes de caractères partages 90% des caractères comparés par groupe de 2 ou 3 ou 4. Alors retourne TRUE.
+ * Lorsque les deux chaînes de caractères partages moins de 90% des caractères comparés par groupe de 2 ou 3 ou 4. Alors retourne FALSE.
* Les Chaînes de caractères doivent avoir au moins 6 caractères, après néttoyage du texte avec la méthode NetTexte().
* Sinon le seuil de tolérance est de 99.99%.
*
@@ -900,7 +900,7 @@ public class evaluation {
* @return TRUE ou FALSE en fonction de la comparaison et du seuil de tolérance.
*/
private static boolean similitudeString(String A, String Modele, Double tolerance_text) {
- if(tolerance_text==null) tolerance_text = 0.79 ;
+ if(tolerance_text==null) tolerance_text = 0.9 ;
Modele = NetTexte(Modele);
A = NetTexte(A);
diff --git a/src/fenetres/attributs.java b/src/fenetres/attributs.java
index 4290d3e..45c2567 100644
--- a/src/fenetres/attributs.java
+++ b/src/fenetres/attributs.java
@@ -121,7 +121,7 @@ public class attributs extends JFrame {
panelDroite.add(btnIntervalle);
JButton btnTextClean = new JButton("Text clean");
- btnTextClean.setToolTipText("Texte nettoyé de tous les caractères spéciaux, chiffres et ignore la casse (équivalent à allContent=\"environ\").
Cette fonction ne peut pas être combinée avec les autres fonctions ci-dessous.
Ce n'est pas un opérateur OU contrairement à l'opérateur ↕.
La tolérance de texte (79% de similitude avec le texte de la consigne) paramètre dans les setting. (exemple : ¢‽2) ");
+ btnTextClean.setToolTipText("Texte nettoyé de tous les caractères spéciaux, chiffres et ignore la casse (équivalent à allContent=\"environ\").
Cette fonction ne peut pas être combinée avec les autres fonctions ci-dessous.
Ce n'est pas un opérateur OU contrairement à l'opérateur ↕.
La tolérance de texte (90% de similitude avec le texte de la consigne) paramètre dans les setting. (exemple : ¢‽2) ");
btnTextClean.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
diff --git a/src/fenetres/create_act/actNewFichierAnalyse.java b/src/fenetres/create_act/actNewFichierAnalyse.java
index 65b8366..b11d0ae 100644
--- a/src/fenetres/create_act/actNewFichierAnalyse.java
+++ b/src/fenetres/create_act/actNewFichierAnalyse.java
@@ -148,7 +148,7 @@ public class actNewFichierAnalyse extends AbstractAction{
Enumeration pages = Collections.enumeration(nod.getNodes());
while(pages.hasMoreElements()) {
node nodLaPage = pages.nextElement();
- Pattern p = Pattern.compile("^text:p$|^text:h$|^text:list$|^text:list-item$|^text:line-break$|^text:span$|^text:tab$"); //le node qui peuvent rechercher par le contenu textuel
+ Pattern p = Pattern.compile("^text:p$|^text:h$|^text:span$|^text:list$|^text:list-item$|^text:line-break$|^text:span$|^text:tab$"); //le node qui peuvent rechercher par le contenu textuel
ArrayList listTextesInPage = new ArrayList();
for(int i = 0 ; i < nodLaPage.getNodes().size();i++) {
Matcher m = p.matcher(nodLaPage.getNodes().get(i).getNomElt());
@@ -173,7 +173,7 @@ public class actNewFichierAnalyse extends AbstractAction{
Enumeration pages = Collections.enumeration(nod.getNodes());
while(pages.hasMoreElements()) {
node nodLaPage = pages.nextElement();
- Pattern p = Pattern.compile("^text:p$|^text:h$|^text:list$|^text:list-item$|^text:line-break$|^text:span$|^text:tab$"); //le node qui peuvent rechercher par le contenu textuel
+ Pattern p = Pattern.compile("^text:p$|^text:h$|^text:span$|^text:list$|^text:list-item$|^text:line-break$|^text:span$|^text:tab$"); //le node qui peuvent rechercher par le contenu textuel
ArrayList listTextesInPage = new ArrayList();
for(int i = 0 ; i < nodLaPage.getNodes().size();i++) {
Matcher m = p.matcher(nodLaPage.getNodes().get(i).getNomElt());
diff --git a/src/list/listeDesNodesAllContent.java b/src/list/listeDesNodesAllContent.java
index 955218b..9cb7695 100644
--- a/src/list/listeDesNodesAllContent.java
+++ b/src/list/listeDesNodesAllContent.java
@@ -14,29 +14,33 @@ public class listeDesNodesAllContent {
String nameNode = nod.getNomElt();
+ switch (nameNode) {
+ case "text:p": return true;
+ case "text:span": return true;
+ case "text:list": return true;
+ case "text:tab":return true;
+ case "text:title":return true;
+ case "text:subject":return true;
+ case "page":return true;
+ case "text:time":return true;
+ case "structurepage":return true;
- if(nameNode.equals("text:title")) return true;
- if(nameNode.equals("text:subject")) return true;
- if(nameNode.equals("page")) return true;
- if(nameNode.equals("text:date")) return true;
- if(nameNode.equals("text:time")) return true;
+ case "number:text":return false;
+ case "text:page-count":return false;
+ case "OU":return false;
+ case "text:conditional-text":return false;
+ case "text:bookmark":return false;
+ case "style:tab-stop":return false;
+ case "style:text-properties":return false;
+ case "style:paragraph-properties":return false;
+ case "style:style":return false;
+ case "style:default-style\"":return false;
- if(nameNode.equals("structurepage")) return true;
- if(nameNode.equals("number:text")) return false;
- if(nameNode.equals("text:page-number")) return false;
- if(nameNode.equals("text:page-count")) return false;
- if(nameNode.equals("OU")) return false;
- if(nameNode.equals("text:conditional-text")) return false;
- if(nameNode.contains("text:bookmark")) return false;
- if(nameNode.contains("text:bookmark")) return false;
- if(nameNode.equals("style:tab-stop")) return false;
+ default: return true;
+ }
-// if(nod.retourneLesContenusEnfants("").length()<=0) return false;
-
- if(nameNode.contains("text:")) return true;
-
- return true;
+
}