MAJ V4.5.0

1 - Prise en compte des intervalles dans les ombrages #000000 0.18cm
0.18cm
2 - Dans les noms des style de page, de frame et de section les
étudiants peuvent commettre des erreurs de case et d'espace au début et
en fin;
This commit is contained in:
pablo rodriguez 2024-03-16 17:04:44 +01:00
parent cd1f14d33f
commit 76d972e180
11 changed files with 107 additions and 405 deletions

View File

@ -12,6 +12,6 @@
<classpathentry kind="lib" path="C:/Users/pabr6/git/analyseWriter/MEPTL/miglayout15-swing.jar"/>
<classpathentry kind="lib" path="jgoodies-forms-1.8.0.jar" sourcepath="jgoodies-forms-1.8.0-sources.jar"/>
<classpathentry kind="lib" path="C:/Users/pabr6/eclipse-workspace/Exportation documentation analyseWriter/plugins/documentation.analyseWriter_1.0.0.202212032022.jar"/>
<classpathentry kind="lib" path="C:/Users/pabr6/eclipse-workspace/cXML.jar" sourcepath="/cXML"/>
<classpathentry kind="lib" path="C:/Users/pabr6/eclipse-workspace/cXML.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

Binary file not shown.

File diff suppressed because one or more lines are too long

384
bin/.gitignore vendored
View File

@ -2,395 +2,11 @@
/action/
/baseEvaluations/
/calcul/
/evalnamepage.svg
/evalnamepagemini.png
/evalnamesequence.png
/evalnamesequence.svg
/evalnamesequencemini.png
/evalnode.svg
/evalnodemini.png
/evalnombredepagemaxi.png
/evalnombredepagemaxi.svg
/evalnombredepagemaximini.png
/evalnombredepagemini.png
/evalnombredepageminimini.png
/evalnumeroabsoluepage.png
/evalnumeroabsoluepage.svg
/evalnumeroabsoluepagemini.png
/evalnumeropage.png
/evalnumeropage.svg
/evalnumeropageancrage.png
/evalnumeropageancrage.svg
/evalnumeropageancragemini.png
/evalnumeropagemini.png
/evalpasparagraphevide.png
/evalpasparagraphevide.svg
/evalpasparagraphevidemini.png
/evaltextuserdefined.png
/evaltextuserdefined.svg
/evaltextuserdefinedmini.png
/evaluate.png
/evaluate.svg
/evaluatemax.png
/evaluatemini.png
/evaluatemultiple.png
/evaluatemultiple.svg
/evaluatemultiplemax.png
/evaluatemultiplemini.png
/evaluer.png
/evaluer.svg
/evaluer/
/evaluerFalse.svg
/evaluerTrue.svg
/evaluerfalse.png
/evaluerfalsemini.png
/evaluermini.png
/evaluerspan.png
/evaluerspan.svg
/evaluerspanmini.png
/evaluerstyle.png
/evaluerstyle.svg
/evaluerstylemini.png
/evaluertouslesenfants.png
/evaluertouslesenfants.svg
/evaluertouslesenfantsfaux.png
/evaluertouslesenfantsfaux.svg
/evaluertouslesenfantsfauxmini.png
/evaluertouslesenfantsmaxi.png
/evaluertouslesenfantsmini.png
/evaluertouslesstylesparagraphes.png
/evaluertouslesstylesparagraphes.svg
/evaluertouslesstylesparagraphesmini.png
/evaluertrue.png
/evaluertruemini.png
/evalwriter.ico
/evalwriter.png
/evalwriter.svg
/evalwriter32.png
/exit.png
/exit.svg
/exitmini.png
/expandAll.svg
/expandNode.svg
/expandall.png
/expandallmini.png
/expandnode.png
/expandnodemini.png
/extraireFichierAnalyse.png
/extraireFichierAnalyseXML.svg
/extraireFichierAnalysemini.png
/false.png
/false.svg
/falsemini.png
/feedback.png
/feedback.svg
/feedbackmini.png
/feedbackstudent.png
/feedbackstudentmini.png
/fenetres/
/fichierAnalyse.png
/fichierAnalyseInfo.png
/fichierAnalyseInfo2.png
/fichierAnalyseInfo2max.png
/fichierAnalyseInfo2mini.png
/fichierAnalyseInfomax.png
/fichierAnalyseInfomini.png
/fichierAnalyseModif.png
/fichierAnalyseModifmax.png
/fichierAnalyseModifmini.png
/fichierAnalyseRenomme.png
/fichierAnalyseRenommemini.png
/fichierAnalysemax.png
/fichierAnalysemini.png
/fichierCSV.png
/fichierCSVInfo.png
/fichierCSVInfoXML.png
/fichierCSVInfoXMLmax.png
/fichierCSVInfoXMLmini.png
/fichierCSVInfomax.png
/fichierCSVInfomini.png
/fichierCSV_delete.png
/fichierCSV_deletemini.png
/fichierCSVmax.png
/fichierCSVmini.png
/fichierODF.png
/fichierODFmax.png
/fichierODFmini.png
/fichierSVG.png
/fichierSVGmax.png
/fichierSVGmini.png
/fichier_analyse.svg
/fichier_analyseXML info.svg
/fichier_analyseXML info1.svg
/fichier_analyseXML.svg
/fichier_analyse_ODF.svg
/fichier_csv_studen_delete.svg
/fichier_csv_studen_modif.png
/fichier_csv_studen_modif.svg
/fichier_csv_studen_modifmini.png
/fichier_csv_studen_suppr.svg
/fichier_csv_student.svg
/fichier_csv_student_info.svg
/fichier_csv_student_xml.svg
/fichier_svg.svg
/fichieretudiant.png
/fichieretudiant.svg
/fichieretudiantmini.png
/fichiergestion.png
/fichiergestion.svg
/fusionneBaseEvaluation.png
/fusionneBaseEvaluation.svg
/fusionneBaseEvaluationmini.png
/heritagestyle.png
/heritagestyle.svg
/heritagestylemini.png
/heritagestyletouslesnodes.png
/heritagestyletouslesnodes.svg
/heritagestyletouslesnodesmini.png
/indexfigure.png
/indexfigure.svg
/indexmatiere.png
/indexmatiere.svg
/information.png
/information.svg
/informationmaxi.png
/informationmini.png
/informationmultiple.png
/informationmultiple.svg
/informationmultiplemini.png
/intervalle.png
/intervalle.svg
/intervallemini.png
/legacystyleparentpresent.svg
/lesnodesevaluer.png
/lesnodesevaluer.svg
/lesnodesevaluermaxi.png
/lesnodesevaluermini.png
/list/
/loadpreference.svg
/loadpreferencemini.png
/loadpreferences.png
/logo.png
/logo.svg
/marquenode.png
/marquenode.svg
/marquenodemini.png
/menuEvalTousParagraphe.png
/menuEvalTousParagraphe.svg
/menuEvalTousParagraphemini.png
/menucontextuel/
/menulegacystyleparentpresent.png
/menulegacystyleparentpresentmini.png
/meta.png
/meta.svg
/new.png
/newlogo.png
/newlogo.svg
/newlogomini.png
/nocsvstudent.png
/nocsvstudentmini.png
/nodeFichier.png
/nodeFichier_FichierAnalyse.svg
/nodeFichiermax.png
/nodeFichiermini.png
/nodetail.png
/nodetail.svg
/nodetailfeedback.png
/nodetailfeedbackmini.png
/nodetailmini.png
/nofeedback.png
/nofeedbackmini.png
/nofeedbackstudent.png
/nofeedbackstudent.svg
/nofeedbackstudentmini.png
/nologo.png
/nonewlogo.png
/nonewlogomini.png
/nonotestudent.png
/nonotestudentl.svg
/nonotestudentmini.png
/notestudent.png
/notestudentmini.png
/noverifhistoriquestudent.png
/noverifhistoriquestudentmini.png
/nozipstudent.png
/nozipstudentmini.png
/numerotationchapitre.png
/numerotationchapitre.svg
/objet.png
/objet.svg
/odreparagraphe.png
/odreparagraphemini.png
/open.png
/open.svg
/open2.png
/openmax.png
/openmini.png
/ordreparagraphe.svg
/ou.png
/ouenviron.png
/ouenviron.svg
/ouenvironmini.png
/ouenvironsimilitude.png
/ouenvironsimilitude.svg
/ouenvironsimilitudemini.png
/oumini.png
/oustrict.png
/oustrict.svg
/oustrictmini.png
/oustrictseps.png
/oustrictseps.svg
/oustrictsepsmini.png
/paragraphe_source.svg
/paste.png
/piedpagenon.png
/piedpagenon.svg
/piedpagenonmini.png
/piedpageoui.png
/piedpageoui.svg
/piedpageouimini.png
/poids.svg
/poidsmini.png
/premierenfant.png
/premierenfant.svg
/premierenfantmini.png
/property.png
/property.svg
/quitteEvaluation.png
/quitteEvaluation.svg
/quitteEvaluationmini.png
/recherche.png
/recherche.svg
/rechercheDoublon.png
/rechercheDoublon.svg
/rechercheDoublonmini.png
/rechercheancragepage.png
/rechercheancragepage.svg
/rechercheancragepagemini.png
/recherchecontenu.png
/recherchecontenu.svg
/recherchecontenumini.png
/recherchecontenuplusprochevoisin.png
/recherchecontenuplusprochevoisin.svg
/recherchecontenuplusprochevoisinmini.png
/rechercheindex.png
/rechercheindex.svg
/rechercheindexmini.png
/recherchemini.png
/redo.png
/removeEvaluation.svg
/removeEvaluaton.png
/removeEvaluatonmini.png
/renommeEvaluation.svg
/renommeEvaluaton.png
/renommeEvaluatonmini.png
/renommeFichierAnalyse.svg
/saut.svg
/sautmini.png
/sautmultiple.png
/sautmultiple.svg
/sautmultiplemini.png
/sautpageColonne.svg
/sautpagecolonne.png
/sautpagecolonnemini.png
/sauvegardeHistoriqueEvaluation.svg
/sauvegardehistoriqueevaluation.png
/sauvegardehistoriqueevaluationmini.png
/save.png
/save.svg
/saveEvaluation.png
/saveEvaluation.svg
/saveEvaluationmini.png
/saveZipEvaluation.png
/saveZipEvaluation.svg
/saveZipEvaluationmini.png
/save_as.png
/saveas.svg
/saveasmini.png
/savemini.png
/savepreference.png
/savepreference.svg
/savepreferencemini.png
/section.png
/section.svg
/sequence.png
/sequence.svg
/setting.png
/setting.svg
/settingmini.png
/similitude.png
/similitude.svg
/similitudemini.png
/sousmenuArbre/
/sousmenuEvaluation/
/sousmenuRecherche/
/sousmenuRepresentation/
/structurepage.png
/structurepage.svg
/stylepage.png
/stylepage.svg
/styleparagraphe.png
/styleparagraphe.svg
/supprime.svg
/supprimemini.png
/textclean.png
/textclean.svg
/textcleanmini.png
/titre.svg
/titremini.png
/totalpoint.png
/totalpoint.svg
/totalpointmini.png
/totalpointnode.png
/totalpointnode.svg
/totalpointnodemini.png
/touslesnodes.png
/touslesnodes.svg
/touslesnodesmini.png
/toutext.png
/toutext.svg
/toutextmini.png
/traduction.png
/traduction.svg
/traductionmini.png
/treeClose.png
/treeClose.svg
/treeLeaf.png
/treeLeaf.svg
/treeOpen.png
/treeOpen.svg
/triche.png
/triche.svg
/trichemini.png
/true.png
/true.svg
/truemini.png
/tutoriel.png
/tutoriel.svg
/tutorielmini.png
/undo.png
/upnode.png
/upnode.svg
/upnodemini.png
/verifhistorique.png
/verifhistoriquemax.png
/verifhistoriquemini.png
/verifhistoriquestudent.png
/verifhistoriquestudent.svg
/verifhistoriquestudentmini.png
/versevaluate.png
/versevaluate.svg
/versevaluatemini.png
/versfichierAnalyse.png
/versfichierAnalyseModifmax.svg
/voir.svg
/voirmini.png
/voirtouteslescolonnes.png
/what.svg
/whatmini.png
/zip.png
/zip.svg
/zipmini.png
/zipstudent.png
/zipstudent.svg
/zipstudentmini.png

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -244,7 +244,7 @@ public class analyseLesNodesPrincipaux {
//*******************************
//** Recherche le node Student **
//*******************************
node frameStudent = a.retourneFirstNodeByNameAttributValue(nodStudentFrames, "draw:frame", "draw:name", nomDuFrame);
node frameStudent = a.retourneFirstNodeByNameAttribut_ValueLowerTrim(nodStudentFrames, "draw:frame", "draw:name", nomDuFrame);
//********************************************
//** analyse les attributs des nodes <page> **
@ -438,7 +438,7 @@ public class analyseLesNodesPrincipaux {
//*******************************
//** Recherche le node Student **
//*******************************
node sectionStudent = a.retourneFirstNodeByNameAttributValue(nodStudentSections, "text:section", "text:name", nomDeLaSection);
node sectionStudent = a.retourneFirstNodeByNameAttribut_ValueLowerTrim(nodStudentSections, "text:section", "text:name", nomDeLaSection);
//***********************************************
//** analyse les attributs des nodes <section> **
@ -971,7 +971,7 @@ public class analyseLesNodesPrincipaux {
//*******************************
//** Recherche le node Student **
//*******************************
node pageStudent = a.retourneFirstNodeByNameAttributValue(nodStudentPage, "style:master-page", "style:name", nomDeLaPage);
node pageStudent = a.retourneFirstNodeByNameAttribut_ValueLowerTrim(nodStudentPage, "style:master-page", "style:name", nomDeLaPage);
//********************************************
//** analyse les attributs des nodes <page> **

View File

@ -103,7 +103,8 @@ public class evaluation {
/**
* Compare les chaînes de caractères A et sujet en fonction des 8 fonctions ¢ ¦ ×<br>
* Compare les chaînes de caractères A et sujet<br>
* en fonction des 8 fonctions ¢ ¦ ×<br>
*
* @param A le texte de l'étudiant.
* @param Sujet le texte du sujet.
@ -206,9 +207,25 @@ public class evaluation {
}
}
// couleur simple pas de bordure ou pas d'autres fonctions
if(Sujet.contains("#") && !Sujet.contains("pt") && !Sujet.contains(" ") && !Sujet.contains("¦") && !Sujet.contains("") && !Sujet.contains("") && !Sujet.contains("¢") ) {
// Ombrage la valeur est toujours doublé 0,18cm deux fois par exemple
// #808080 0.18cm 0.18cmcm1
// La tolérance est de 0.04
Pattern p = Pattern.compile("^#[a-z0-9]{6} ([0-9]{1,}\\.[0-9]{1,}|[0-9]{1,})[a-z]{2}");
Matcher m = p.matcher(Sujet.trim());
if(m.find()) {
if(Traitementombrage(Sujet, A).equals("Correct : ")) {
IncrementPointClass(pointEnJeu);
return "Correct : +" + pointString;
}else {
return "Erreur : -" + pointString;
}
}
// couleur simple pas de bordure ou pas d'autres fonction
if(Sujet.contains("#")&& m.find() && !Sujet.contains("pt") && !Sujet.contains(" ") && !Sujet.contains("¦") && !Sujet.contains("") && !Sujet.contains("") && !Sujet.contains("¢") ) {
if(TraitementCouleur(Sujet,A).equals("Correct : ")) {
IncrementPointClass(pointEnJeu);
return "Correct : +" + pointString;
@ -217,6 +234,9 @@ public class evaluation {
}
}
//Exact avec OU sans d'autres fonctions OU
if(Sujet.contains("¦") && !Sujet.contains("") && !Sujet.contains("") && !Sujet.contains("¢")) {
if(TraitementOUExact(A,Sujet).equals("Correct : ")) {
@ -361,7 +381,7 @@ public class evaluation {
}
// rechercher un digite une ou plusieur fois en fin.
// rechercher un digite une ou plusieurs fois en fin.
Pattern p = Pattern.compile("[^0-9\\.]");
// remplacement de toutes les occurrences par ""
@ -444,10 +464,12 @@ public class evaluation {
/**
* Traitement des bordures
* Avec ou sans intervalle sur l'épaisseur des traits
* Avec 3 styles de traits solid, dashed, double
* Avec traitement de la couleur
* Traitement des bordures<br>
* <ol>
* <li>Avec ou sans intervalle sur l'épaisseur des traits</li>
* <li>Avec 3 styles de traits solid, dashed, double</li>
* <li>Avec traitement de la couleur</li>
* </ol>
* @param Sujet
* @param B
* @return
@ -468,10 +490,9 @@ public class evaluation {
// traitement de la taille (epaisseur du trait)
if(TextA[0].contains("")) {
if(TraitementIntervalle(TextB[0], TextA[0]).equals("Correct : ")) taille = true;
}else {
TextA[0] = TextA[0].replace("pt","").replace("cm", "").replace("in", "");
TextB[0] = TextB[0].replace("pt","").replace("cm", "").replace("in", "");;
}else {
TextA[0] = TextA[0].replace("pt","").replace("cm", "").replace("mm", "").replace("in", "");
TextB[0] = TextB[0].replace("pt","").replace("cm", "").replace("mm", "").replace("in", "");
double tailleA = Double.valueOf(TextA[0]);
double tailleB = Double.valueOf(TextB[0]);
@ -526,6 +547,69 @@ public class evaluation {
return "Erreur : ";
}
/**
* Traitement des ombrages<br>
* @param Sujet
* @param B
* @return
*/
private static String Traitementombrage(String Sujet, String B) {
if(Sujet.isEmpty()) return "Erreur : ";
if(B==null) return "Erreur : ";
String TextB[] = B.split(" ");
String TextA[] = Sujet.split(" ");
if(TextB.length!=3 || TextA.length!=3) return "Erreur : ";
boolean taille1 = false;
boolean taille2 = false;
boolean couleur =false;
// traitement de la taille1 (largeur ombrage)
if(TextA[1].contains("")) {
if(TraitementIntervalle(TextB[1], TextA[1]).equals("Correct : ")) taille1 = true;
}else {
TextA[1] = TextA[1].replace("pt","").replace("cm", "").replace("mm", "").replace("in", "");
TextB[1] = TextB[1].replace("pt","").replace("cm", "").replace("mm", "").replace("in", "");
double tailleA = Double.valueOf(TextA[1]);
double tailleB = Double.valueOf(TextB[1]);
double IT = 0.02;
if((tailleA<tailleB+IT) && (tailleA>tailleB-IT))taille1 = true;
}
if(TextA[2].contains("")) {
if(TraitementIntervalle(TextB[2], TextA[2]).equals("Correct : ")) taille2 = true;
}else {
TextA[2] = TextA[2].replace("pt","").replace("cm", "").replace("mm", "").replace("in", "");
TextB[2] = TextB[2].replace("pt","").replace("cm", "").replace("mm", "").replace("in", "");
double tailleA = Double.valueOf(TextA[2]);
double tailleB = Double.valueOf(TextB[2]);
double IT = 0.02;
if((tailleA<tailleB+IT) && (tailleA>tailleB-IT))taille2 = true;
}
// traitement de la couleur du trait
String couleurA = TextA[0]; //.replace("#", "");
String couleurB = TextB[0]; //.replace("#", "");
if(couleurA.equals(couleurB)) couleur = true;
if(!couleur) {
if(TraitementCouleur(couleurA, couleurB).equals("Correct : ")) {
couleur =true;
}
}
if(taille1 && taille2 && couleur) return "Correct : ";
return "Erreur : ";
}
/**
* Traitement de la couleur par comparaison
* La tolérance sur les 3 couleurs primaires RVB est de plus ou moins 30 par défaut.

View File

@ -828,10 +828,12 @@ public class evaluationAttribut {
typeSautSujet = styleSujet.getAttributs().get("fo:break-before");
}
}
if(styleSujet.getAttributs().get("fo:break-after")!=null) {
if(styleSujet.getAttributs().get("fo:break-after")!="none") {
typeSautSujet = styleSujet.getAttributs().get("fo:break-after");
}
if(typeSautSujet.equals("pas de saut")) {
if(styleSujet.getAttributs().get("fo:break-after")!=null) {
if(styleSujet.getAttributs().get("fo:break-after")!="none") {
typeSautSujet = styleSujet.getAttributs().get("fo:break-after");
}
}
}
}
}