MAJ V4.4.2 - ajout de la méthode evalNombreDePageMaxi

This commit is contained in:
pablo rodriguez 2023-01-01 18:42:29 +01:00
parent bdf7d1f861
commit 269cbe151d
23 changed files with 263 additions and 5 deletions

Binary file not shown.

Binary file not shown.

19
bin/.gitignore vendored
View File

@ -3,3 +3,22 @@
/evaluer/
/fenetres/
/list/
/verifhistoriquestudent.png
/verifhistoriquestudent.svg
/verifhistoriquestudentmini.png
/versevaluate.png
/versevaluate.svg
/versevaluatemini.png
/versfichierAnalyse.png
/versfichierAnalyseModifmax.svg
/voir.svg
/voirmini.png
/what.svg
/whatmini.png
/zip.png
/zip.svg
/zipmini.png
/zipstudent.png
/zipstudent.svg
/zipstudentmini.png
/resources/

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -174,6 +174,16 @@ public class calculNombrePointEvaluation {
}
}
if(nod.getAttributs().get("evalNombreDePageMaxi")!=null) {
try {
String valeur = nod.getAttributs().get("evalNombreDePageMaxi");
String A = valeur.substring(valeur.lastIndexOf("page")+4, valeur.length());
point = point + Integer.valueOf(A);;
} catch (Exception e) {
JOptionPane.showInternalMessageDialog(null, "Erreur dans la valeur de l'attribut evalNombreDePageMaxi");
}
}
//***********************************************
//** Les points par la méthode analyseStyle *****
//***********************************************

View File

@ -1117,6 +1117,34 @@ public class analyseLesNodesPrincipaux {
//***************************
evaluation.initiliseLesPoints();
//********************************************************
//** evalNombreDePageMaxi depuis le node structurepage **
//********************************************************
if(nodSujetS.getAttributs().get("evalNombreDePageMaxi")!=null) {
int pointDebut = evaluation.getPointsClass();
int pointTotalDebut = evaluation.getPointTotal();
node page = new node();
page.setNomElt("page");
page.getAttributs().put("namepage", "nombrePageMaxi");
page.getAttributs().put("numeroabsolue", "0");
page = evaluationAttribut.evalLesAttributEtContenuDuNode(nodStudentS, nodSujetS, page, "ana:page","structure");
//****************************************************************
//** Insère les attributs des points dans les node de l'analyse **
//****************************************************************
int points = evaluation.getPointsClass()-pointDebut;
int pointTotal = evaluation.getPointTotal()-pointTotalDebut;
Double proportioncorrect = 0.0;
if(pointTotal>0) proportioncorrect = ( (double) points/ (double) pointTotal);
page.getAttributs().put("point", String.valueOf(points));
page.getAttributs().put("pointTotal", String.valueOf(pointTotal));
page.getAttributs().put("proportioncorrect", String.valueOf(proportioncorrect));
nodSpages.getNodes().add(page);
}
//********************************************************
//** Parcours les nodes enfants du node <structurepage> **
//********************************************************

View File

@ -408,6 +408,12 @@ public class evaluationAttribut {
retour = evalPasParagrapheVide(sujet,nodeStudent,retour,nameElt);
}
//evaluation du nombre de page maximal
if(k.equals("evalNombreDePageMaxi") && sujet.getNomElt().equals("structurepage")) {
retour = evalNombreDePageMaxi(sujet,nodeStudent,retour,nameElt);
}
}
}
@ -816,6 +822,36 @@ public class evaluationAttribut {
return retour;
}
private static node evalNombreDePageMaxi(node sujet,node nodeStudent, node retour, String nameElt) {
int point = 0;
int nombrePage = 1;
if(sujet.getAttributs().get("evalNombreDePageMaxi")!=null) {
String valeur = sujet.getAttributs().get("evalNombreDePageMaxi");
String A = valeur.substring(0, valeur.lastIndexOf("page"));
nombrePage = Integer.valueOf(A);
A = valeur.substring(valeur.lastIndexOf("page")+4, valeur.length());
point = Integer.valueOf(A);
}
String reponseSujet = "Nombre page inférieur ou égal à " +String.valueOf(nombrePage);
String reponseStudent = "Nombre page n'est pas inférieur ou égal à " +String.valueOf(nombrePage);
if(nodeStudent!=null) {
if(nodeStudent.getNodes().size()<=nombrePage) {
reponseStudent = "Nombre page inférieur ou égal à " +String.valueOf(nombrePage);
}
retour = evaluationNombreDePageMaxi(retour,reponseStudent, reponseSujet, String.valueOf(point),"Nombre de page maxi");
}else {
retour = evaluationNombreDePageMaxi(retour,reponseStudent, reponseSujet, String.valueOf(point),"Nombre de page maxi");
}
return retour;
}
/**
* Méthode evalPasParagrapheVide.</br>
* Evaluer l'absence de paragraphe vide dans la page.</br>
@ -1275,6 +1311,30 @@ public class evaluationAttribut {
return retour;
}
/**
*
* @param retour
* @param reponseStudent
* @param reponseSujet
* @param point
* @param nameElt
* @return
*/
private static node evaluationNombreDePageMaxi(node retour, String reponseStudent, String reponseSujet, String point, String nameElt) {
node item = null;
if(reponseStudent!=null) {
//compare la même valeur "contenuParagraph" pour obtenir les points mais si un voisinage du contenu.
item = retourneNoteAvecResultatsAnalyse("Absence","", reponseStudent , reponseSujet + "" +point, nameElt );
}else {
evaluation.IncrementPointTotal(Integer.valueOf(point));
item = new node("Absence", "Erreur : -"+ point, "" , "null", reponseSujet , 2, evaluation.getPointEnJeu(),nameElt);
}
retour.getNodes().add(item);
return retour;
}
/**
*
* @param retour

View File

@ -78,6 +78,7 @@ public class afficheText extends JEditorPane {
String imageEvalFormatageDirect= "<img src="+afficheText.class.getResource("/resources/evalformatagedirectmini.png").toString()+">";
String imageEvalSautPageColonne= "<img src="+afficheText.class.getResource("/resources/sautpagecolonnemini.png").toString()+">";
String imageEvalPasParagrapheVide= "<img src="+afficheText.class.getResource("/resources/evalpasparagraphevidemini.png").toString()+">";
String imageEvalNombreDePageMaxi= "<img src="+afficheText.class.getResource("/resources/evalnombredepagemaximini.png").toString()+">";
StringBuilder sb = new StringBuilder();
@ -259,6 +260,9 @@ public class afficheText extends JEditorPane {
if(Lesattributsdunode.get(i).equals("evalPasParagrapheVide") && !nod.getAttributs().get(Lesattributsdunode.get(i)).equals("0")) {
sb.append("<li class=\"p4\">"+imageEvalPasParagrapheVide+ "<b> " + Lesattributsdunode.get(i) + " = \"" + nod.getAttributs().get(Lesattributsdunode.get(i))+"\"</b></li>");
}
if(Lesattributsdunode.get(i).equals("evalNombreDePageMaxi") && !nod.getAttributs().get(Lesattributsdunode.get(i)).isEmpty()) {
sb.append("<li class=\"p4\">"+imageEvalNombreDePageMaxi+ "<b> " + Lesattributsdunode.get(i) + " = \"" + nod.getAttributs().get(Lesattributsdunode.get(i))+"\"</b></li>");
}
// sb.append("<li class=\"p4\"><b>" + Lesattributsdunode.get(i) + "=\"" + nod.getAttributs().get(Lesattributsdunode.get(i))+"\"</b></li>");
}

View File

@ -37,6 +37,8 @@ import fenetres.create_act.actEvalNamePageNon;
import fenetres.create_act.actEvalNamePageOui;
import fenetres.create_act.actEvalNameSequenceNon;
import fenetres.create_act.actEvalNameSequenceOui;
import fenetres.create_act.actEvalNombreDePageMaxiNon;
import fenetres.create_act.actEvalNombreDePageMaxiOui;
import fenetres.create_act.actEvalNumeroAbsoluePageNon;
import fenetres.create_act.actEvalNumeroAbsoluePageOui;
import fenetres.create_act.actEvalNumeroPageNon;
@ -138,6 +140,8 @@ public class createPopupMenu extends JPopupMenu {
mnPopupTree.addSeparator();
mnPopupTree.add(mnNiveau1(nod));
if(nod.getNomElt().equals("structurepage")) {
mnPopupTree.addSeparator();
mnPopupTree.add(mnGroupeMethodeEvaluer(nod));
mnPopupTree.addSeparator();
mnPopupTree.add(mnGroupeMethodeEvaluerMultiple(nod));
}
@ -484,7 +488,7 @@ public class createPopupMenu extends JPopupMenu {
}
/**
* Menu ent^te pas active.</br>
* Menu entête pas active.</br>
* @return
*/
private JMenu mnevalEntetePasActive() {
@ -513,12 +517,25 @@ public class createPopupMenu extends JPopupMenu {
*/
private JMenu mnEvalPiedPagePasActive() {
JMenu mnEvalPiedPagePasActive = new JMenu("Pied page pas activé");
mnEvalPiedPagePasActive.setIcon(new ImageIcon(create.class.getResource("/resources/piedpagenonmini.png")));
mnEvalPiedPagePasActive.setIcon(new ImageIcon(create.class.getResource("/resources/evalnombredepagemaximini.png")));
mnEvalPiedPagePasActive.add(new actEvalPiedPagePasActive());
mnEvalPiedPagePasActive.add(new actEvalPiedPagePasActiveNon());
return mnEvalPiedPagePasActive;
}
/**
* Menu pour évaluer le nombre de page.</br>
* @return
*/
private JMenu mnEvalNombreDePageMaxi() {
JMenu mnEvalNombreDePageMaxi = new JMenu("Nombre de page maximal");
mnEvalNombreDePageMaxi.setIcon(new ImageIcon(create.class.getResource("/resources/evalnombredepagemaximini.png")));
mnEvalNombreDePageMaxi.add(new actEvalNombreDePageMaxiOui());
mnEvalNombreDePageMaxi.add(new actEvalNombreDePageMaxiNon());
return mnEvalNombreDePageMaxi;
}
/**
* Menu évaluer le nom du node.</br>
* Revient à évaluer la présence du node.</br>
@ -816,6 +833,11 @@ public class createPopupMenu extends JPopupMenu {
mnGroupeMethodeEvaluer.setIcon( new ImageIcon(create.class.getResource("/resources/evaluatemini.png")));
if(nod.getNomElt().equals("structurepage")) {
mnGroupeMethodeEvaluer.addSeparator();
mnGroupeMethodeEvaluer.add(mnEvalNombreDePageMaxi());
}
// Pour la méthode AllContent
if(listeDesNodesAllContent.isAllContent(nod) ) {
mnGroupeMethodeEvaluer.addSeparator();

View File

@ -54,7 +54,7 @@ public class actCoefficient extends AbstractAction{
if(poids<=0) {
nod.poids(Double.valueOf(1));
fenetres.create.getTextNodeSelect().setText(baliseStyle.balise());
fenetres.create.getTextNodeSelect().setText("<h2>Erreur la valeur doit être un nombre entier POSITIF supérieur à zéro.<br>Cependant,la valeur a été modifiée.<br>poids=1.</h2>");
fenetres.create.getTextNodeSelect().setText("<h2>Erreur la valeur doit être un nombre POSITIF supérieur à zéro.<br>Cependant,la valeur a été modifiée.<br>poids=1.</h2>");
}else {
nod.poids(Double.valueOf(poids));
fenetres.create.getTextNodeSelect().refreshAffichage(nod);

View File

@ -0,0 +1,30 @@
package fenetres.create_act;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ImageIcon;
import cXML.node;
import fenetres.create;
public class actEvalNombreDePageMaxiNon extends AbstractAction{
{
putValue( Action.NAME, "Supprimer l'évaluation" );
putValue( Action.SHORT_DESCRIPTION, "Supprime l'évaluation du nombre de page maxi" );
putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/falsemini.png")) );
}
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public void actionPerformed(ActionEvent e) {
node nod = (node) fenetres.create.getSelectNode().getUserObject();
nod.getAttributs().remove("evalNombreDePageMaxi");
fenetres.create.getTextNodeSelect().refreshAffichage(nod);
}
}

View File

@ -0,0 +1,84 @@
package fenetres.create_act;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import cXML.node;
import fenetres.baliseStyle;
import fenetres.create;
public class actEvalNombreDePageMaxiOui extends AbstractAction{
{
putValue( Action.NAME, "Oui, combien et combien de point?" );
putValue( Action.SHORT_DESCRIPTION, "Evaluer le nombre de page maximal dans le document" );
putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/truemini.png")) );
}
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public void actionPerformed(ActionEvent e) {
node nod = (node) fenetres.create.getSelectNode().getUserObject();
int point = 0;
int nombrePage = 1;
if(nod.getAttributs().get("evalNombreDePageMaxi")!=null) {
String valeur = nod.getAttributs().get("evalNombreDePageMaxi");
String A = valeur.substring(0, valeur.lastIndexOf("page"));
nombrePage = Integer.valueOf(A);
A = valeur.substring(valeur.lastIndexOf("page")+4, valeur.length());
point = Integer.valueOf(A);
}
JTextField nombrePageField = new JTextField(8);
nombrePageField.setText(String.valueOf(nombrePage));
JTextField pointField = new JTextField(8);
pointField.setText(String.valueOf(point));
JPanel myPanel = new JPanel();
myPanel.add(new JLabel("Nombre de page maxi :"));
myPanel.add(Box.createHorizontalStrut(2)); // a spacer
myPanel.add(nombrePageField);
myPanel.add(new JLabel("Nombre de point :"));
myPanel.add(Box.createHorizontalStrut(2)); // a spacer
myPanel.add(pointField);
int result = JOptionPane.showConfirmDialog(null, myPanel, "Saisissez le nombre de page maximal", JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION) {
try {
point = Integer.valueOf(pointField.getText());
nombrePage = Integer.valueOf(nombrePageField.getText());
if(point<=0 && nombrePage<=0) {
nod.getAttributs().put("evalNombreDePageMaxi","1page1");
}
if(point<=0 && nombrePage>0) {
nod.getAttributs().put("evalNombreDePageMaxi",nombrePageField.getText()+"page1");
}
if(point>=0 && nombrePage<=0) {
nod.getAttributs().put("evalNombreDePageMaxi","1page" + pointField.getText() );
}
if(point>=0 && nombrePage>0) {
nod.getAttributs().put("evalNombreDePageMaxi",nombrePageField.getText()+"page" + pointField.getText() );
}
} catch (Exception e2) {
fenetres.create.getTextNodeSelect().setText(baliseStyle.balise());
fenetres.create.getTextNodeSelect().setText("<h2>Erreur la valeur doit être un nombre entier.<br>La valeur n'a pas été modifiée.</h2>");
}
}
fenetres.create.getTextNodeSelect().refreshAffichage(nod);
}
}

View File

@ -57,6 +57,7 @@ public class listeAttributsAnalyseWriter {
case "evalFormatageDirect": return true;
case "evalSautPageColonne": return true;
case "evalPasParagrapheVide": return true;
case "evalNombreDePageMaxi": return true;
case "analysis_filename": return true;
case "auteur": return true;

View File

@ -21,16 +21,16 @@ public class listeDesNodesAllContent {
if(nameNode.equals("text:date")) return true;
if(nameNode.equals("text:time")) return true;
if(nameNode.equals("structurepage")) return false;
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(nod.retourneLesContenusEnfants("").length()<=0) return false;
if(nameNode.contains("text:")) return true;
return true;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B