MAJ (V4.3.1 : Rebouche les troues dans la raquette pour la méthode

analyseStyle)
This commit is contained in:
pablo rodriguez 2022-12-02 10:17:36 +01:00
parent a51972ac77
commit cf989accfa
14 changed files with 310 additions and 107 deletions

View File

@ -14,6 +14,6 @@
<classpathentry kind="lib" path="C:/Users/pabr6/eclipse-workspace/zip4j-1.2.7.jar"/>
<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/cXML.jar"/>
<classpathentry kind="lib" path="C:/Users/pabr6/eclipse-workspace/cXML.jar" sourcepath="/cXML"/>
<classpathentry kind="output" path="bin"/>
</classpath>

4
bin/.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
/calcul/
/MEPTL/
/evaluer/
/fenetres/

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -519,6 +519,27 @@ public class feedbacks {
// IdError = IdError + N.getAttributs().get("id");
// System.out.print("\t** Erreur menu, node : " + N.getNomElt());
}
}else {
if(N.getParent()!=null) {
N.getAttributs().put("pointgagner",N.getParent().getAttributs().get("point"));
N.getAttributs().put("pointtotal",N.getParent().getAttributs().get("pointTotal"));
N.getAttributs().put("proportioncorrect",N.getParent().getAttributs().get("proportioncorrect"));
if(N.getAttributs().get("proportioncorrect")!=null) {
if(!N.getAttributs().get("proportioncorrect").equals("NaN")) {
if(N.getAttributs().get("titre")!=null) {
fichier.append(HTML.TablePointsSyntheseStyle(""+ N.getAttributs().get("titre"),Double.valueOf(N.getAttributs().get("proportioncorrect")),N.getAttributs().get("pointtotal") + " pt",N.getAttributs().get("pointgagner") + " pt", "",N.getAttributs().get("id")));
}
if(N.getAttributs().get("titre1")!=null) {
fichier.append(HTML.TablePointsSyntheseStyle(""+ N.getAttributs().get("titre1"),Double.valueOf(N.getAttributs().get("proportioncorrect")),N.getAttributs().get("pointtotal") + " pt",N.getAttributs().get("pointgagner") + " pt", "",N.getAttributs().get("id")));
}
if(N.getAttributs().get("titre2")!=null) {
fichier.append(HTML.TablePointsSyntheseStyle(""+ N.getAttributs().get("titre2"),Double.valueOf(N.getAttributs().get("proportioncorrect")),N.getAttributs().get("pointtotal") + " pt",N.getAttributs().get("pointgagner") + " pt", "",N.getAttributs().get("id")));
}
if(N.getAttributs().get("titre3")!=null) {
fichier.append(HTML.TablePointsSyntheseStyle(""+ N.getAttributs().get("titre3"),Double.valueOf(N.getAttributs().get("proportioncorrect")),N.getAttributs().get("pointtotal") + " pt",N.getAttributs().get("pointgagner") + " pt", "",N.getAttributs().get("id")));
}
}
}
}else {
if(N.getAttributs().get("titre")!=null) {
fichier.append(HTML.TablePointsSyntheseStyle(N.getAttributs().get("titre"),-1.0,"","", "",N.getAttributs().get("id")));
@ -535,6 +556,7 @@ public class feedbacks {
}
}
}
}
for(int l=0; l < nodana.getNodes().get(k).getNodes().size();l++) {

View File

@ -1851,6 +1851,7 @@ public class meptl {
node N = new node();
N.setNomElt("saut");
N.getAttributs().put("titre", nodSujet.getAttributs().get("titre"));
N.setParent(nodanalyse);
N.setClose(true);
nodanalyse.getNodes().add(N);
if(nodSujet.getAttributs().get("addmenu")!=null) if(nodSujet.getAttributs().get("addmenu").equalsIgnoreCase("true")) {
@ -1864,6 +1865,7 @@ public class meptl {
node N = new node();
N.setNomElt("saut");
N.getAttributs().put("titre1", nodSujet.getAttributs().get("titre1"));
N.setParent(nodanalyse);
N.setClose(true);
nodanalyse.getNodes().add(N);
if(nodSujet.getAttributs().get("addmenu")!=null) if(nodSujet.getAttributs().get("addmenu").equalsIgnoreCase("true")) {
@ -1877,6 +1879,7 @@ public class meptl {
node N = new node();
N.setNomElt("saut");
N.getAttributs().put("titre2", nodSujet.getAttributs().get("titre2"));
N.setParent(nodanalyse);
N.setClose(true);
nodanalyse.getNodes().add(N);
if(nodSujet.getAttributs().get("addmenu")!=null) if(nodSujet.getAttributs().get("addmenu").equalsIgnoreCase("true")) {
@ -1890,6 +1893,7 @@ public class meptl {
node N = new node();
N.setNomElt("saut");
N.getAttributs().put("titre3", nodSujet.getAttributs().get("titre3"));
N.setParent(nodanalyse);
N.setClose(true);
nodanalyse.getNodes().add(N);
if(nodSujet.getAttributs().get("addmenu")!=null) if(nodSujet.getAttributs().get("addmenu").equalsIgnoreCase("true")) {

View File

@ -31,7 +31,8 @@ public class calculNombrePointEvaluation {
public static int calculNombreDepoint(node nod, int point) {
if(nod.getAttributs().get("evaluer")!=null) if(nod.getAttributs().get("evaluer").equalsIgnoreCase("true")){
if(nod.getAttributs().get("evaluer")!=null) if(nod.getAttributs().get("evaluer").equals("true")){
if(nod.getAttributs().get("allContent")!=null) {
Pattern pt = Pattern.compile("[0-9]{1,}$");
Matcher match= pt.matcher(nod.getAttributs().get("allContent"));
@ -42,7 +43,6 @@ public class calculNombrePointEvaluation {
} catch (Exception e) {
JOptionPane.showInternalMessageDialog(null, "Erreur dans la valeur de l'attribut allContent");
}
System.out.println("match point pour allcontent = " + s);
}
}
@ -70,8 +70,58 @@ public class calculNombrePointEvaluation {
}
}
if(nod.getAttributs().get("evalNamePage")!=null) {
try {
point = point + Integer.valueOf(nod.getAttributs().get("evalNamePage"));
} catch (Exception e) {
JOptionPane.showInternalMessageDialog(null, "Erreur dans la valeur de l'attribut evalNamePage");
}
}
if(nod.getAttributs().get("evalNumeroPage")!=null) {
try {
point = point + Integer.valueOf(nod.getAttributs().get("evalNumeroPage"));
} catch (Exception e) {
JOptionPane.showInternalMessageDialog(null, "Erreur dans la valeur de l'attribut evalNumeroPage");
}
}
if(nod.getAttributs().get("evalNumeroAbsoluePage")!=null) {
try {
point = point + Integer.valueOf(nod.getAttributs().get("evalNumeroAbsoluePage"));
} catch (Exception e) {
JOptionPane.showInternalMessageDialog(null, "Erreur dans la valeur de l'attribut evalNumeroAbsoluePage");
}
}
if(nod.getAttributs().get("evalEntetePasActive")!=null) {
try {
point = point + Integer.valueOf(nod.getAttributs().get("evalEntetePasActive"));
} catch (Exception e) {
JOptionPane.showInternalMessageDialog(null, "Erreur dans la valeur de l'attribut evalEntetePasActive");
}
}
if(nod.getAttributs().get("evalPiedPageActive")!=null) {
try {
point = point + Integer.valueOf(nod.getAttributs().get("evalPiedPageActive"));
} catch (Exception e) {
JOptionPane.showInternalMessageDialog(null, "Erreur dans la valeur de l'attribut evalEntetePasActive");
}
}
//***********************************************
//** Les points par la méthode analyseStyle *****
//***********************************************
if(nod.getAttributs().get("analyseStyle")!=null) {
if(nod.getAttributs().get("analyseStyle").equals("true")) {
String nomDuStyle = nod.getAttributs().get("text:style-name");
point = calculNombreDepointDeAnalyseStyle(commandes.sujet.retourneFirstNodeByNameAndAttributValueExactStrict("style:style", "style:name", nomDuStyle), point);
}
}
Enumeration<String> key = nod.getAttributs().keys();
if(!nod.getNomElt().equals("structurepage")) {
while(key.hasMoreElements()) {
String k = key.nextElement();
if(nod.getAttributs().get(k).contains("")) {
@ -87,10 +137,37 @@ public class calculNombrePointEvaluation {
}
}
}
}else {
for(int i = 0 ; i < nod.getNodes().size();i++) {
if(nod.getNodes().get(i)!=null) {
if(!nod.getNodes().get(i).getNomElt().equals("style:default-style")) {
point = calculNombreDepoint(nod.getNodes().get(i), point);
}
}
}
}
return point;
}
/**
* Calcul les points d'un style évalué par la méthode analyseStyle.<br>
* @param nod
* @param point
* @return
*/
private static int calculNombreDepointDeAnalyseStyle(node nod, int point) {
if(nod.getAttributs().get("evaluer")!=null) if(nod.getAttributs().get("evaluer").equals("true")){
Enumeration<String> key = nod.getAttributs().keys();
while(key.hasMoreElements()) {
String k = key.nextElement();
if(nod.getAttributs().get(k).contains("")||nod.getAttributs().get(k).contains("")) {
if(nod.getAttributs().get(k).contains("")) {
Pattern pt = Pattern.compile("[0-9]{1,}$");
Matcher match= pt.matcher(nod.getAttributs().get(k));
if(match.find()) {
@ -103,22 +180,64 @@ public class calculNombrePointEvaluation {
}
}
}
}
if(nod.getNodes().size()>0) {
for(int i = 0 ; i < nod.getNodes().size();i++) {
if(nod.getNodes().get(i)!=null) {
point = calculNombreDepoint(nod.getNodes().get(i), point);
point = calculNombreDepointDeAnalyseStyle(nod.getNodes().get(i), point);
}
}
// //****************************
// //*** Héritage d'un style ****
// //****************************
// if(nod.getAttributs().get("style:parent-style-name")!=null) {
// String nomDuStyleParent = nod.getAttributs().get("style:parent-style-name");
// Pattern p = Pattern.compile("^P[0-9]{1,}|^T[0-9]{1,}");
// Matcher m = p.matcher(nod.getAttributs().get("style:name"));
// if(m.find()) {
// point = calculNombreDepointDepuisUnStyleDeAnalyseStyle(commandes.sujet.retourneFirstNodeByNameAndAttributValueExactStrict("style:style", "style:name", nomDuStyleParent), point);
// }
// }
}
return point;
}
/**
* Calcul les points d'un style évalué par la méthode analyseStyle et qui hérite du node nod.<br>
* @param nod
* @param point
* @return
*/
@SuppressWarnings("unused")
private static int calculNombreDepointDepuisUnStyleDeAnalyseStyle(node nod, int point) {
Enumeration<String> key = nod.getAttributs().keys();
while(key.hasMoreElements()) {
String k = key.nextElement();
if(nod.getAttributs().get(k).contains("")||nod.getAttributs().get(k).contains("")) {
Pattern pt = Pattern.compile("[0-9]{1,}$");
Matcher match= pt.matcher(nod.getAttributs().get(k));
if(match.find()) {
String s= match.group();
try {
point = point + Integer.valueOf(s);
} catch (Exception e) {
JOptionPane.showInternalMessageDialog(null, "Erreur dans la valeur de l'attribut "+ k);
}
}
}
}
if(nod.getNodes().size()>0) {
for(int i = 0 ; i < nod.getNodes().size();i++) {
point = calculNombreDepointDepuisUnStyleDeAnalyseStyle(nod.getNodes().get(i), point);
}
}
return point;
}
}

View File

@ -27,9 +27,20 @@ public class analyseLesNodesEnfants {
for(int j = 0 ; j < nodSujet.getNodes().size();j++ ) {
nodEnfantSujet = nodSujet.getNodes().get(j);
String nameNode = nodEnfantSujet.getNomElt();
if(nodEnfantSujet.getAttributs().get("evaluer")!=null) {
if(!nodEnfantSujet.getAttributs().get("evaluer").equals("true")) {
continue;
}
}else {
continue;
}
//*****************************
//** Ajoute un saut de ligne **
@ -84,7 +95,7 @@ public class analyseLesNodesEnfants {
//** méthode analyseStyle=true **
//*******************************
if(nameNode.contains("text:") && nodEnfantSujet.getAttributs().get("analyseStyle")!=null && nodSujetParagraphs!=null) {
if(nodEnfantSujet.getAttributs().get("analyseStyle").equalsIgnoreCase("true")) {
if(nodEnfantSujet.getAttributs().get("analyseStyle").equals("true")) {
PourAnalyse = analyseStyle(PourAnalyse, nomDuNodePourAnalyse, nodEnfantSujet,nodStudentCorrespondantAuNodSujet, nodSujetParagraphs,nodStudentParagraphes, nodmenu, a);
}
}
@ -118,16 +129,25 @@ public class analyseLesNodesEnfants {
if(nodSujet.getAttributs().get("analyseStyle")!=null) {
if(nodSujet.getAttributs().get("analyseStyle").equalsIgnoreCase("true") && nodSujet.getAttributs().get("text:style-name")!=null) {
if(nodSujet.getAttributs().get("analyseStyle").equals("true") && nodSujet.getAttributs().get("text:style-name")!=null) {
String NameStyleParagrapheSujet = nodSujet.getAttributs().get("text:style-name");
StyleParagraphSujet = nodSujetParagraphs.retourneFirstNodeStyleByValueAttribut("style:style", "style:name", NameStyleParagrapheSujet);
}
if(nodStudent!=null && StyleParagraphSujet!=null) {
if(StyleParagraphSujet.getAttributs().get("evaluer")!=null) {
if(StyleParagraphSujet.getAttributs().get("evaluer").equals("true")) {
if(nodStudent.getAttributs().get("text:style-name")!=null && StyleParagraphSujet!=null) {
String NameStyleParagrapheStudent = nodStudent.getAttributs().get("text:style-name");
StyleParagraphStudent = nodStudentParagraphs.retourneFirstNodeStyleByValueAttribut("style:style", "style:name",NameStyleParagrapheStudent);
}
}else {
return PourAnalyse;
}
}else {
return PourAnalyse;
}
}
// ajoute les valeurs par héritage.

View File

@ -1131,8 +1131,15 @@ public class analyseLesNodesPrincipaux {
//****************************************************************
//** Insère les attributs des points dans les node de l'analyse **
//****************************************************************
int points = evaluation.getPointsClass()-pointDebut;
int pointTotal = evaluation.getPointTotal()-pointTotalDebut;
double proportioncorrect = points/pointTotal;
page.getAttributs().put("point", String.valueOf(evaluation.getPointsClass()-pointDebut));
page.getAttributs().put("pointTotal", String.valueOf(evaluation.getPointTotal()-pointTotalDebut));
page.getAttributs().put("proportioncorrect", String.valueOf(proportioncorrect));
nodSpages.getNodes().add(page);
}
}

View File

@ -13,15 +13,18 @@ public class evaluationAttribut {
* Formatage direct des styles de paragraphe.</br>
* Les attributs doivent contenir le code .<br>
* <br>
* @param nodeStudent : le node de l'étudiant.
* @param sujet : le node du sujet
* @param nodeStyleParagraphStudent : le node de l'étudiant.
* @param nodeStyleParagraphSujet : le node du sujet
* @param retour : le node à retourner avec les enfants nommés nameItem.
* @param nameItem : le nom des nodes enfants.
* @param nameElt : le nom de l'élément (node) analysé.
* @return le node <b>retour</b> avec tous les nodes enfants <b>nameItem</b> contenant les différentes analyse.
* @return le node <b>retour</b> avec tous les nodes enfants <b>nameItem</b> contenant les différentes analyses.
*/
public static node evalLesAttributAnalyseStyle(node nodeStyleParagraphStudent, node nodeStyleParagraphSujet, node retour, String nameItem, String nameElt) {
if(nodeStyleParagraphSujet.getAttributs().get("evaluer")==null) return retour;
if(!nodeStyleParagraphSujet.getAttributs().get("evaluer").equals("true")) return retour;
Enumeration<String> key = nodeStyleParagraphSujet.getAttributs().keys();
while(key.hasMoreElements()) {
String k = key.nextElement();
@ -43,6 +46,9 @@ public class evaluationAttribut {
if(nodeStyleParagraphStudent!=null) {
if(nodeStyleParagraphSujet.retourneEnfantsByNameExist("style:paragraph-properties") && nodeStyleParagraphStudent.retourneEnfantsByNameExist("style:paragraph-properties") ) {
node propertiesSujet = nodeStyleParagraphSujet.retourneFirstEnfantsByName("style:paragraph-properties");
if(propertiesSujet.getAttributs().get("evaluer")!=null) {
if(propertiesSujet.getAttributs().get("evaluer").equals("true")) {
node propertiesStudent = nodeStyleParagraphStudent.retourneFirstEnfantsByName("style:paragraph-properties");
key = propertiesSujet.getAttributs().keys();
while(key.hasMoreElements()) {
@ -61,9 +67,15 @@ public class evaluationAttribut {
}
}
}
}
}
}
}else {
node propertiesSujet = nodeStyleParagraphSujet.retourneFirstEnfantsByName("style:paragraph-properties");
if(propertiesSujet.getAttributs().get("evaluer")!=null) {
if(propertiesSujet.getAttributs().get("evaluer").equals("true")) {
key = propertiesSujet.getAttributs().keys();
while(key.hasMoreElements()) {
String k = key.nextElement();
@ -75,11 +87,17 @@ public class evaluationAttribut {
retour.getNodes().add(item);
}
}
}
}
}
if(nodeStyleParagraphStudent!=null) {
if(nodeStyleParagraphSujet.retourneEnfantsByNameExist("style:text-properties") && nodeStyleParagraphStudent.retourneEnfantsByNameExist("style:text-properties") ) {
node propertiesSujet = nodeStyleParagraphSujet.retourneFirstEnfantsByName("style:text-properties");
if(propertiesSujet.getAttributs().get("evaluer")!=null) {
if(propertiesSujet.getAttributs().get("evaluer").equals("true")) {
node propertiesStudent = nodeStyleParagraphStudent.retourneFirstEnfantsByName("style:text-properties");
key = propertiesSujet.getAttributs().keys();
while(key.hasMoreElements()) {
@ -100,9 +118,15 @@ public class evaluationAttribut {
}
}
}
}
}
}
}else {
node propertiesSujet = nodeStyleParagraphSujet.retourneFirstEnfantsByName("style:text-properties");
if(propertiesSujet.getAttributs().get("evaluer")!=null) {
if(propertiesSujet.getAttributs().get("evaluer").equals("true")) {
key = propertiesSujet.getAttributs().keys();
while(key.hasMoreElements()) {
String k = key.nextElement();
@ -114,15 +138,18 @@ public class evaluationAttribut {
retour.getNodes().add(item);
}
}
}
}
}
return retour;
}
/**
* Analyse tous les attributs et les contenus d'un node.<br>
* Les attributs et les contenus doivent posséder la carcatère ou .<br>
* Les attributs et les contenus doivent posséder la caractère ou .<br>
* <br>
* @param nodeStudent : le node de l'étudiant.
* @param sujet : le node du sujet