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

This commit is contained in:
pablo rodriguez 2023-01-01 21:07:07 +01:00
parent 0253cfe549
commit 375fbb47ee
20 changed files with 216 additions and 124 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -178,12 +178,22 @@ public class calculNombrePointEvaluation {
try {
String valeur = nod.getAttributs().get("evalNombreDePageMaxi");
String A = valeur.substring(valeur.lastIndexOf("page")+4, valeur.length());
point = point + Integer.valueOf(A);;
point = point + Integer.valueOf(A);
} catch (Exception e) {
JOptionPane.showInternalMessageDialog(null, "Erreur dans la valeur de l'attribut evalNombreDePageMaxi");
}
}
if(nod.getAttributs().get("evalNombreDePageMini")!=null) {
try {
String valeur = nod.getAttributs().get("evalNombreDePageMini");
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 evalNombreDePageMini");
}
}
//***********************************************
//** Les points par la méthode analyseStyle *****
//***********************************************

View File

@ -1118,31 +1118,11 @@ 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);
}
//**********************************
//** Evalue le node structurepage **
//**********************************
nodSpages = analyseLeNodeStructurePage(nodStudentS, nodSujetS, a, nodmenu, nodSujetParagraphs, nodStudentParagraphs, nodSpages);
//********************************************************
@ -1226,5 +1206,42 @@ public class analyseLesNodesPrincipaux {
}
public static node analyseLeNodeStructurePage(node nodStudentS, node nodSujetS, Run a, node nodmenu, node nodSujetParagraphs, node nodStudentParagraphs, node nodSpages) {
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);
return nodSpages;
}
}

View File

@ -413,6 +413,10 @@ public class evaluationAttribut {
retour = evalNombreDePageMaxi(sujet,nodeStudent,retour,nameElt);
}
//evaluation du nombre de page maximal
if(k.equals("evalNombreDePageMini") && sujet.getNomElt().equals("structurepage")) {
retour = evalNombreDePageMini(sujet,nodeStudent,retour,nameElt);
}
}
}
@ -850,6 +854,32 @@ public class evaluationAttribut {
return retour;
}
private static node evalNombreDePageMini(node sujet,node nodeStudent, node retour, String nameElt) {
int point = 0;
int nombrePage = 1;
if(sujet.getAttributs().get("evalNombreDePageMini")!=null) {
String valeur = sujet.getAttributs().get("evalNombreDePageMini");
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 supérieur ou égal à " +String.valueOf(nombrePage);
String reponseStudent = "Nombre page n'est pas supérieur ou égal à " +String.valueOf(nombrePage);
if(nodeStudent!=null) {
if(nodeStudent.getNodes().size()>=nombrePage) {
reponseStudent = "Nombre page supérieur ou égal à " +String.valueOf(nombrePage);
}
retour = evaluationNombreDePageMaxi(retour,reponseStudent, reponseSujet, String.valueOf(point),"Nombre de page mini");
}else {
retour = evaluationNombreDePageMaxi(retour,reponseStudent, reponseSujet, String.valueOf(point),"Nombre de page mini");
}
return retour;
}
/**

View File

@ -79,6 +79,7 @@ public class afficheText extends JEditorPane {
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()+">";
String imageEvalNombreDePageMini= "<img src="+afficheText.class.getResource("/resources/evalnombredepageminimini.png").toString()+">";
StringBuilder sb = new StringBuilder();
@ -263,6 +264,9 @@ public class afficheText extends JEditorPane {
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>");
}
if(Lesattributsdunode.get(i).equals("evalNombreDePageMini") && !nod.getAttributs().get(Lesattributsdunode.get(i)).isEmpty()) {
sb.append("<li class=\"p4\">"+imageEvalNombreDePageMini+ "<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

@ -5,103 +5,7 @@ import javax.swing.JMenu;
import javax.swing.JPopupMenu;
import cXML.node;
import fenetres.create_act.actAddMenuFalse;
import fenetres.create_act.actAddMenuTrue;
import fenetres.create_act.actAllContent;
import fenetres.create_act.actAllContentChilds;
import fenetres.create_act.actAttribut;
import fenetres.create_act.actCoefficient;
import fenetres.create_act.actCollapseAll;
import fenetres.create_act.actCollapseNode;
import fenetres.create_act.actCopy;
import fenetres.create_act.actDeleteNode;
import fenetres.create_act.actDownNode;
import fenetres.create_act.actEvalAncrageNumeroAbsoluePageEnfantsNon;
import fenetres.create_act.actEvalAncrageNumeroAbsoluePageEnfantsOui;
import fenetres.create_act.actEvalAncrageNumeroAbsoluePageNon;
import fenetres.create_act.actEvalAncrageNumeroAbsoluePageOui;
import fenetres.create_act.actEvalEnteteActive;
import fenetres.create_act.actEvalEnteteActiveNon;
import fenetres.create_act.actEvalEntetePasActive;
import fenetres.create_act.actEvalEntetePasActiveNon;
import fenetres.create_act.actEvalFirstChildFalse;
import fenetres.create_act.actEvalFirstChildTrue;
import fenetres.create_act.actEvalFormatageDirectNon;
import fenetres.create_act.actEvalFormatageDirectOui;
import fenetres.create_act.actEvalInitialCreator;
import fenetres.create_act.actEvalLastChildFalse;
import fenetres.create_act.actEvalLastChildTrue;
import fenetres.create_act.actEvalNameNodeNon;
import fenetres.create_act.actEvalNameNodeOui;
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;
import fenetres.create_act.actEvalNumeroPageOui;
import fenetres.create_act.actEvalPasParagrapheVideNon;
import fenetres.create_act.actEvalPasParagrapheVideOui;
import fenetres.create_act.actEvalPiedPageActive;
import fenetres.create_act.actEvalPiedPageActiveNon;
import fenetres.create_act.actEvalPiedPagePasActive;
import fenetres.create_act.actEvalPiedPagePasActiveNon;
import fenetres.create_act.actEvalPlacementEnfantNon;
import fenetres.create_act.actEvalPlacementEnfantOui;
import fenetres.create_act.actEvalPlacementParagrapheNon;
import fenetres.create_act.actEvalPlacementParagrapheOui;
import fenetres.create_act.actEvalSautPageColonneNon;
import fenetres.create_act.actEvalSautPageColonneOui;
import fenetres.create_act.actEvalTextUserDefinedNon;
import fenetres.create_act.actEvalTextUserDefinedOui;
import fenetres.create_act.actEvalueFalse;
import fenetres.create_act.actEvalueTrue;
import fenetres.create_act.actEvaluerNomDuStyleHeriteFalse;
import fenetres.create_act.actEvaluerNomDuStyleHeriteTousLesNodesFalse;
import fenetres.create_act.actEvaluerNomDuStyleHeriteTousLesNodesTrue;
import fenetres.create_act.actEvaluerNomDuStyleHeriteTrue;
import fenetres.create_act.actEvaluerStyleFalse;
import fenetres.create_act.actEvaluerStyleTrue;
import fenetres.create_act.actEvaluerTousLesStylesParagraphesFalse;
import fenetres.create_act.actEvaluerTousLesStylesParagraphesTrue;
import fenetres.create_act.actExpandAll;
import fenetres.create_act.actExpandNode;
import fenetres.create_act.actInsereInformationFalse;
import fenetres.create_act.actInsereInformationMultipleFalse;
import fenetres.create_act.actInsereInformationMultipleTrue;
import fenetres.create_act.actInsereInformationTrue;
import fenetres.create_act.actNameNodeEnfantsNon;
import fenetres.create_act.actNameNodeEnfantsOui;
import fenetres.create_act.actOu;
import fenetres.create_act.actPaste;
import fenetres.create_act.actRechercheAnchorPageNumberFalse;
import fenetres.create_act.actRechercheAnchorPageNumberTrue;
import fenetres.create_act.actRechercheContenuPlusProcheVoisinfalse;
import fenetres.create_act.actRechercheContenuPlusProcheVoisintrue;
import fenetres.create_act.actRechercheContenufalse;
import fenetres.create_act.actRechercheContenutrue;
import fenetres.create_act.actRechercheIndexfalse;
import fenetres.create_act.actRechercheIndextrue;
import fenetres.create_act.actSupprimeTitre;
import fenetres.create_act.actTitre1;
import fenetres.create_act.actTitre2;
import fenetres.create_act.actTitre3;
import fenetres.create_act.actTitrePrincipal;
import fenetres.create_act.actUpNode;
import fenetres.create_act.actevalNameCreator;
import fenetres.create_act.actmarquenodefalse;
import fenetres.create_act.actmarquenodetrue;
import fenetres.create_act.actsautfalse;
import fenetres.create_act.actsautmultiplefalse;
import fenetres.create_act.actsautmultipletrue;
import fenetres.create_act.actsauttrue;
import fenetres.create_act.addTitreToutesLesPagesFalse;
import fenetres.create_act.addTitreToutesLesPagesTrue;
import fenetres.create_act.mnEvaluerATraversAnalyseStyleFalse;
import fenetres.create_act.mnEvaluerATraversAnalyseStyleTrue;
import fenetres.create_act.*;
import list.listeDesNodesAllContent;
import list.listeDesNodesAnalyseStyle;
import list.listeDesNodesAncrable;
@ -524,7 +428,7 @@ public class createPopupMenu extends JPopupMenu {
}
/**
* Menu pour évaluer le nombre de page.</br>
* Menu pour évaluer le nombre de page maxi.</br>
* @return
*/
private JMenu mnEvalNombreDePageMaxi() {
@ -535,6 +439,18 @@ public class createPopupMenu extends JPopupMenu {
return mnEvalNombreDePageMaxi;
}
/**
* Menu pour évaluer le nombre de page mini.</br>
* @return
*/
private JMenu mnEvalNombreDePageMini() {
JMenu mnEvalNombreDePageMini = new JMenu("Nombre de page minimal");
mnEvalNombreDePageMini.setIcon(new ImageIcon(create.class.getResource("/resources/evalnombredepageminimini.png")));
mnEvalNombreDePageMini.add(new actEvalNombreDePageMiniOui());
mnEvalNombreDePageMini.add(new actEvalNombreDePageMiniNon());
return mnEvalNombreDePageMini;
}
/**
* Menu évaluer le nom du node.</br>
@ -836,6 +752,8 @@ public class createPopupMenu extends JPopupMenu {
if(nod.getNomElt().equals("structurepage")) {
mnGroupeMethodeEvaluer.addSeparator();
mnGroupeMethodeEvaluer.add(mnEvalNombreDePageMaxi());
mnGroupeMethodeEvaluer.addSeparator();
mnGroupeMethodeEvaluer.add(mnEvalNombreDePageMini());
}
// Pour la méthode AllContent

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 actEvalNombreDePageMiniNon extends AbstractAction{
{
putValue( Action.NAME, "Supprimer l'évaluation" );
putValue( Action.SHORT_DESCRIPTION, "Supprime l'évaluation du nombre de page mini" );
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("evalNombreDePageMini");
fenetres.create.getTextNodeSelect().refreshAffichage(nod);
}
}

View File

@ -0,0 +1,82 @@
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 actEvalNombreDePageMiniOui extends AbstractAction{
{
putValue( Action.NAME, "Oui, combien et combien de point?" );
putValue( Action.SHORT_DESCRIPTION, "Evaluer le nombre de page minimal 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("evalNombreDePageMini")!=null) {
String valeur = nod.getAttributs().get("evalNombreDePageMini");
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 mini :"));
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 minimal", 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("evalNombreDePageMini","1page1");
}
if(point<=0 && nombrePage>0) {
nod.getAttributs().put("evalNombreDePageMini",nombrePageField.getText()+"page1");
}
if(point>=0 && nombrePage<=0) {
nod.getAttributs().put("evalNombreDePageMini","1page" + pointField.getText() );
}
if(point>=0 && nombrePage>0) {
nod.getAttributs().put("evalNombreDePageMini",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

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 652 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 427 B

After

Width:  |  Height:  |  Size: 794 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 836 B