diff --git a/analyseWriter.exe b/analyseWriter.exe index 35f1ce0..25ae2a6 100644 Binary files a/analyseWriter.exe and b/analyseWriter.exe differ diff --git a/analyseWriter.jar b/analyseWriter.jar index ec534d9..9003a0e 100644 Binary files a/analyseWriter.jar and b/analyseWriter.jar differ diff --git a/bin/calcul/calculNombrePointEvaluation.class b/bin/calcul/calculNombrePointEvaluation.class index 5f32e81..81dbcab 100644 Binary files a/bin/calcul/calculNombrePointEvaluation.class and b/bin/calcul/calculNombrePointEvaluation.class differ diff --git a/bin/evaluer/analyseLesNodesPrincipaux.class b/bin/evaluer/analyseLesNodesPrincipaux.class index 0f8dc2e..85b0136 100644 Binary files a/bin/evaluer/analyseLesNodesPrincipaux.class and b/bin/evaluer/analyseLesNodesPrincipaux.class differ diff --git a/bin/evaluer/evaluationAttribut.class b/bin/evaluer/evaluationAttribut.class index 8851010..3efc052 100644 Binary files a/bin/evaluer/evaluationAttribut.class and b/bin/evaluer/evaluationAttribut.class differ diff --git a/bin/fenetres/afficheText.class b/bin/fenetres/afficheText.class index 8211985..91c68ea 100644 Binary files a/bin/fenetres/afficheText.class and b/bin/fenetres/afficheText.class differ diff --git a/bin/fenetres/createPopupMenu.class b/bin/fenetres/createPopupMenu.class index fc6c1ca..8fdd830 100644 Binary files a/bin/fenetres/createPopupMenu.class and b/bin/fenetres/createPopupMenu.class differ diff --git a/bin/list/listeAttributsAnalyseWriter.class b/bin/list/listeAttributsAnalyseWriter.class index cb4e8c3..913ab11 100644 Binary files a/bin/list/listeAttributsAnalyseWriter.class and b/bin/list/listeAttributsAnalyseWriter.class differ diff --git a/src/calcul/calculNombrePointEvaluation.java b/src/calcul/calculNombrePointEvaluation.java index 6fa1e54..e90358f 100644 --- a/src/calcul/calculNombrePointEvaluation.java +++ b/src/calcul/calculNombrePointEvaluation.java @@ -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 ***** //*********************************************** diff --git a/src/evaluer/analyseLesNodesPrincipaux.java b/src/evaluer/analyseLesNodesPrincipaux.java index 1d4318d..a4cb18a 100644 --- a/src/evaluer/analyseLesNodesPrincipaux.java +++ b/src/evaluer/analyseLesNodesPrincipaux.java @@ -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; + + + + } + + + } diff --git a/src/evaluer/evaluationAttribut.java b/src/evaluer/evaluationAttribut.java index 0dc2af0..9daeae9 100644 --- a/src/evaluer/evaluationAttribut.java +++ b/src/evaluer/evaluationAttribut.java @@ -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; + } + /** diff --git a/src/fenetres/afficheText.java b/src/fenetres/afficheText.java index fe2b669..35a69be 100644 --- a/src/fenetres/afficheText.java +++ b/src/fenetres/afficheText.java @@ -79,6 +79,7 @@ public class afficheText extends JEditorPane { String imageEvalSautPageColonne= ""; String imageEvalPasParagrapheVide= ""; String imageEvalNombreDePageMaxi= ""; + String imageEvalNombreDePageMini= ""; 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("
  • "+imageEvalNombreDePageMaxi+ " " + Lesattributsdunode.get(i) + " = \"" + nod.getAttributs().get(Lesattributsdunode.get(i))+"\"
  • "); } + if(Lesattributsdunode.get(i).equals("evalNombreDePageMini") && !nod.getAttributs().get(Lesattributsdunode.get(i)).isEmpty()) { + sb.append("
  • "+imageEvalNombreDePageMini+ " " + Lesattributsdunode.get(i) + " = \"" + nod.getAttributs().get(Lesattributsdunode.get(i))+"\"
  • "); + } // sb.append("
  • " + Lesattributsdunode.get(i) + "=\"" + nod.getAttributs().get(Lesattributsdunode.get(i))+"\"
  • "); } diff --git a/src/fenetres/createPopupMenu.java b/src/fenetres/createPopupMenu.java index a0dd247..c8df7fc 100644 --- a/src/fenetres/createPopupMenu.java +++ b/src/fenetres/createPopupMenu.java @@ -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.
    + * Menu pour évaluer le nombre de page maxi.
    * @return */ private JMenu mnEvalNombreDePageMaxi() { @@ -535,6 +439,18 @@ public class createPopupMenu extends JPopupMenu { return mnEvalNombreDePageMaxi; } + /** + * Menu pour évaluer le nombre de page mini.
    + * @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.
    @@ -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 diff --git a/src/fenetres/create_act/actEvalNombreDePageMiniNon.java b/src/fenetres/create_act/actEvalNombreDePageMiniNon.java new file mode 100644 index 0000000..d1a1c80 --- /dev/null +++ b/src/fenetres/create_act/actEvalNombreDePageMiniNon.java @@ -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); + } + +} diff --git a/src/fenetres/create_act/actEvalNombreDePageMiniOui.java b/src/fenetres/create_act/actEvalNombreDePageMiniOui.java new file mode 100644 index 0000000..b82f36c --- /dev/null +++ b/src/fenetres/create_act/actEvalNombreDePageMiniOui.java @@ -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("

    Erreur la valeur doit être un nombre entier.
    La valeur n'a pas été modifiée.

    "); + } + } + + fenetres.create.getTextNodeSelect().refreshAffichage(nod); } + +} diff --git a/src/list/listeAttributsAnalyseWriter.java b/src/list/listeAttributsAnalyseWriter.java index b96b66c..afed813 100644 --- a/src/list/listeAttributsAnalyseWriter.java +++ b/src/list/listeAttributsAnalyseWriter.java @@ -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; diff --git a/src/resources/evalnombredepagemaxi.png b/src/resources/evalnombredepagemaxi.png index f811118..a70eb6e 100644 Binary files a/src/resources/evalnombredepagemaxi.png and b/src/resources/evalnombredepagemaxi.png differ diff --git a/src/resources/evalnombredepagemaximini.png b/src/resources/evalnombredepagemaximini.png index fa0da9b..778f415 100644 Binary files a/src/resources/evalnombredepagemaximini.png and b/src/resources/evalnombredepagemaximini.png differ diff --git a/src/resources/evalnombredepagemini.png b/src/resources/evalnombredepagemini.png new file mode 100644 index 0000000..6759e96 Binary files /dev/null and b/src/resources/evalnombredepagemini.png differ diff --git a/src/resources/evalnombredepageminimini.png b/src/resources/evalnombredepageminimini.png new file mode 100644 index 0000000..11c2a13 Binary files /dev/null and b/src/resources/evalnombredepageminimini.png differ