diff --git a/analyseWriter.exe b/analyseWriter.exe index 9cca531..9599456 100644 Binary files a/analyseWriter.exe and b/analyseWriter.exe differ diff --git a/analyseWriter.jar b/analyseWriter.jar index 8631bf4..db8ab99 100644 Binary files a/analyseWriter.jar and b/analyseWriter.jar differ diff --git a/bin/.gitignore b/bin/.gitignore index b257aca..0bc2271 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -3,7 +3,13 @@ /evaluer/ /fenetres/ /list/ -/resources/ -/ajoutetitretouteslespages.png -/ajoutetitretouteslespages.svg -/ajoutetitretouteslespagesmini.png +/voir.svg +/voirmini.png +/what.svg +/whatmini.png +/zip.png +/zip.svg +/zipmini.png +/zipstudent.png +/zipstudent.svg +/zipstudentmini.png diff --git a/bin/MEPTL/rechercherUnNodeStudent.class b/bin/MEPTL/rechercherUnNodeStudent.class index dd00178..2a498ef 100644 Binary files a/bin/MEPTL/rechercherUnNodeStudent.class and b/bin/MEPTL/rechercherUnNodeStudent.class differ diff --git a/bin/ajoutetitretouteslespages.png b/bin/ajoutetitretouteslespages.png new file mode 100644 index 0000000..e00f485 Binary files /dev/null and b/bin/ajoutetitretouteslespages.png differ diff --git a/bin/ajoutetitretouteslespages.svg b/bin/ajoutetitretouteslespages.svg new file mode 100644 index 0000000..7a4612c --- /dev/null +++ b/bin/ajoutetitretouteslespages.svg @@ -0,0 +1,93 @@ + + + + + + + + + + T + T + + + + + diff --git a/bin/ajoutetitretouteslespagesmini.png b/bin/ajoutetitretouteslespagesmini.png new file mode 100644 index 0000000..55bd7ca Binary files /dev/null and b/bin/ajoutetitretouteslespagesmini.png differ diff --git a/bin/evaluer/evaluationAttribut.class b/bin/evaluer/evaluationAttribut.class index a0b0003..8811e62 100644 Binary files a/bin/evaluer/evaluationAttribut.class and b/bin/evaluer/evaluationAttribut.class differ diff --git a/bin/fenetres/createPopupMenu.class b/bin/fenetres/createPopupMenu.class index ae08c71..553259f 100644 Binary files a/bin/fenetres/createPopupMenu.class and b/bin/fenetres/createPopupMenu.class differ diff --git a/bin/fenetres/create_act/actNewFichierAnalyse.class b/bin/fenetres/create_act/actNewFichierAnalyse.class index 78318f4..55cf4de 100644 Binary files a/bin/fenetres/create_act/actNewFichierAnalyse.class and b/bin/fenetres/create_act/actNewFichierAnalyse.class differ diff --git a/bin/list/listeAttributsAnalyseWriter.class b/bin/list/listeAttributsAnalyseWriter.class index 7229e43..4e016c6 100644 Binary files a/bin/list/listeAttributsAnalyseWriter.class and b/bin/list/listeAttributsAnalyseWriter.class differ diff --git a/bin/list/listeDesNodesEvalPlacement.class b/bin/list/listeDesNodesEvalPlacement.class index af6c2ce..102f1b1 100644 Binary files a/bin/list/listeDesNodesEvalPlacement.class and b/bin/list/listeDesNodesEvalPlacement.class differ diff --git a/bin/resources/ajoutetitretouteslespages.png b/bin/resources/ajoutetitretouteslespages.png new file mode 100644 index 0000000..e00f485 Binary files /dev/null and b/bin/resources/ajoutetitretouteslespages.png differ diff --git a/bin/resources/ajoutetitretouteslespagesmini.png b/bin/resources/ajoutetitretouteslespagesmini.png new file mode 100644 index 0000000..55bd7ca Binary files /dev/null and b/bin/resources/ajoutetitretouteslespagesmini.png differ diff --git a/src/MEPTL/rechercherUnNodeStudent.java b/src/MEPTL/rechercherUnNodeStudent.java index 7eb6c2d..9a5e166 100644 --- a/src/MEPTL/rechercherUnNodeStudent.java +++ b/src/MEPTL/rechercherUnNodeStudent.java @@ -84,6 +84,7 @@ public class rechercherUnNodeStudent { if(nodSujet.getNomElt().contains("text:")) { nodStudent = findNodeByContenuTextuel(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a); if(nameNode.equals("text:line-break")) return nodStudent; + if(nodSujet.getAttributs().get("isDoublon")!=null) if(nodSujet.getAttributs().get("isDoublon").equals("true")) return nodStudent; if(nodStudent!=null) return nodStudent; } @@ -243,7 +244,7 @@ public class rechercherUnNodeStudent { if(nodSujet.retourneLesContenusEnfants("").length()<1) return null; String valueAttribut = evaluation.withoutCodeAndPointPourRechercheContenuExact(nodSujet.retourneLesContenusEnfants("")); - Pattern p = Pattern.compile("^text:p$|^text:h$|^text:span$|^text:list|^text:line-break$|^text:note$"); //le node qui peuvent rechercher par le contenu textuel + Pattern p = Pattern.compile("^text:p$|^text:h$|^text:span$|^text:list|^text:line-break$|^text:note$|^text:tab$"); //le node qui peuvent rechercher par le contenu textuel Matcher m = p.matcher(nameNode); if(m.find()) { @@ -253,9 +254,10 @@ public class rechercherUnNodeStudent { if(nod2Student!=null) if(nodStudent==null) { ArrayList tousLesfreres = nod2Student.retourneTousLesFreres(); //Retourne tous les frère d'une même page for(int i = 0 ; i < tousLesfreres.size();i++) { - if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNameNodeByFindContentExactly(tousLesfreres.get(i).getNodes(), valueAttribut, nameNode); + if(nodStudent==null) if(!tousLesfreres.get(i).equals(nod2Student)) nodStudent = a.retourneFirstNameNodeByFindContentExactly(tousLesfreres.get(i).getNodes(), valueAttribut, nameNode); } - } + } + if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNameNodeByFindContentExactly(nod1Student.getNodes(), valueAttribut, nameNode); if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNameNodeByFindContentExactly(nod0Student.getNodes(), valueAttribut, nameNode); @@ -287,18 +289,8 @@ public class rechercherUnNodeStudent { }else { - //méthode texte rigoureusement exact + //Recherche le doublon if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeDoublonStudent(nod2Student.getNodes(), valueAttribut, nameNode, nodSujet); -// if(nod2Student!=null) if(nodStudent==null) { -// ArrayList tousLesfreres = nod2Student.retourneTousLesFreres(); //Retourne tous les frère d'une même page -// for(int i = 0 ; i < tousLesfreres.size();i++) { -// if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeDoublonStudent(tousLesfreres.get(i).getNodes(), valueAttribut, nameNode, nodSujet); -// } -// } -// if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeDoublonStudent(nod1Student.getNodes(), valueAttribut, nameNode, nodSujet); -// if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeDoublonStudent(nod0Student.getNodes(), valueAttribut, nameNode, nodSujet); - - } } diff --git a/src/evaluer/evaluationAttribut.java b/src/evaluer/evaluationAttribut.java index 6f0dafd..7d1754d 100644 --- a/src/evaluer/evaluationAttribut.java +++ b/src/evaluer/evaluationAttribut.java @@ -592,7 +592,11 @@ public class evaluationAttribut { } }else { node nodeSujetAvant = sujet.retourneLeNodeFrereAvant(); - retour = evaluationPlacement(retour,null, nodeSujetAvant.retourneLesContenusEnfants(""), sujet.getAttributs().get("evalPlacement"),"Placement"); + if(nodeSujetAvant!=null) { + retour = evaluationPlacement(retour,null, nodeSujetAvant.retourneLesContenusEnfants(""), sujet.getAttributs().get("evalPlacement"),"Placement"); + }else { + retour = evaluationPlacement(retour,null, "", sujet.getAttributs().get("evalPlacement"),"Placement"); + } } return retour; } diff --git a/src/fenetres/createPopupMenu.java b/src/fenetres/createPopupMenu.java index 37049ac..28215de 100644 --- a/src/fenetres/createPopupMenu.java +++ b/src/fenetres/createPopupMenu.java @@ -16,6 +16,8 @@ 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; @@ -45,6 +47,8 @@ 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; @@ -67,6 +71,8 @@ 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; @@ -163,7 +169,7 @@ public class createPopupMenu extends JPopupMenu { } // Le groupe méthode évaluer les nodes enfants - if(listeDesNodesContientEnfant.isContientEnfant(nod)) { + if(listeDesNodesContientEnfant.isContientEnfant(nod) && nod.getNodes().size()>0) { mnPopupTree.addSeparator(); mnPopupTree.add(mnGroupeMethodeEvaluerMultiple(nod)); } @@ -355,6 +361,15 @@ public class createPopupMenu extends JPopupMenu { return mnEvalAncrageNumeroAbsoluPageAncrage; } + private JMenu mnEvalAncrageNumeroAbsoluPageEnfants() { + JMenu mnEvalAncrageNumeroAbsoluPageEnfants = new JMenu("Ancrage dans la page de tous les nodes enfants"); + mnEvalAncrageNumeroAbsoluPageEnfants.setIcon(new ImageIcon(create.class.getResource("/resources/evalnumeropageancragemini.png"))); + mnEvalAncrageNumeroAbsoluPageEnfants.add(new actEvalAncrageNumeroAbsoluePageEnfantsOui()); + mnEvalAncrageNumeroAbsoluPageEnfants.add(new actEvalAncrageNumeroAbsoluePageEnfantsNon()); + return mnEvalAncrageNumeroAbsoluPageEnfants; + } + + /** * Menu Titre pour le niveau 1.
@@ -518,6 +533,14 @@ public class createPopupMenu extends JPopupMenu { return mnEvalNameNode; } + private JMenu mnEvalNameNodeEnfants() { + JMenu mnEvalNameNodeEnfants = new JMenu("Evaluer la présence de tous les nodes enfants"); + mnEvalNameNodeEnfants.setIcon(new ImageIcon(create.class.getResource("/resources/evalnodemini.png"))); + mnEvalNameNodeEnfants.add(new actNameNodeEnfantsOui()); + mnEvalNameNodeEnfants.add(new actNameNodeEnfantsNon()); + return mnEvalNameNodeEnfants; + } + /** * Menu évaluer une variable de séquence.
* @return @@ -657,6 +680,14 @@ public class createPopupMenu extends JPopupMenu { return mnPlacementParagraphe; } + private JMenu mnEvalPlacementDesEnfants() { + JMenu mnEvalPlacementDesEnfants = new JMenu("Placement de tous les enfants"); + mnEvalPlacementDesEnfants.setIcon(new ImageIcon(create.class.getResource("/resources/ordreparagraphemini.png"))); + mnEvalPlacementDesEnfants.add(new actEvalPlacementEnfantOui()); + mnEvalPlacementDesEnfants.add(new actEvalPlacementEnfantNon()); + return mnEvalPlacementDesEnfants; + } + /** * Menu pour évaluer si le node est le dernier enfant.
* @return @@ -915,21 +946,25 @@ public class createPopupMenu extends JPopupMenu { } - if(listeDesNodesAllContent.isAllContent(nod) ) { - if(listeDesNodesPourEvaluerPage.isPage(nod)) { - mnGroupeMethodeEvaluerMultiple.addSeparator(); - mnGroupeMethodeEvaluerMultiple.add(new actAllContentChilds()); - } - } - - if(listeDesNodesEvalPlacement.isPlacement(nod)) { - if(listeDesNodesPourEvaluerPage.isPage(nod)) { - mnGroupeMethodeEvaluerMultiple.addSeparator(); - mnGroupeMethodeEvaluerMultiple.add(mnEvalPlacementParagraphe()); - } + if(nod.getNomElt().equals("text:p") || nod.getNomElt().equals("text:h") || nod.getNomElt().equals("text:list") || nod.getNomElt().equals("text:list-item")) { + mnGroupeMethodeEvaluerMultiple.addSeparator(); + mnGroupeMethodeEvaluerMultiple.add(new actAllContentChilds()); + mnGroupeMethodeEvaluerMultiple.addSeparator(); + mnGroupeMethodeEvaluerMultiple.add(mnEvalNameNodeEnfants()); + mnGroupeMethodeEvaluerMultiple.addSeparator(); + mnGroupeMethodeEvaluerMultiple.add(mnEvalPlacementDesEnfants()); } + if(listeDesNodesPourEvaluerPage.isPage(nod)) { + mnGroupeMethodeEvaluerMultiple.addSeparator(); + mnGroupeMethodeEvaluerMultiple.add(new actAllContentChilds()); + mnGroupeMethodeEvaluerMultiple.addSeparator(); + mnGroupeMethodeEvaluerMultiple.add(mnEvalNameNodeEnfants()); + mnGroupeMethodeEvaluerMultiple.addSeparator(); + mnGroupeMethodeEvaluerMultiple.add(mnEvalAncrageNumeroAbsoluPageEnfants()); + mnGroupeMethodeEvaluerMultiple.addSeparator(); + mnGroupeMethodeEvaluerMultiple.add(mnEvalPlacementParagraphe()); mnGroupeMethodeEvaluerMultiple.addSeparator(); mnGroupeMethodeEvaluerMultiple.add(mnEvaluerStylesParagraphes()); mnGroupeMethodeEvaluerMultiple.addSeparator(); diff --git a/src/fenetres/create_act/actEvalAncrageNumeroAbsoluePageEnfantsNon.java b/src/fenetres/create_act/actEvalAncrageNumeroAbsoluePageEnfantsNon.java new file mode 100644 index 0000000..66cc235 --- /dev/null +++ b/src/fenetres/create_act/actEvalAncrageNumeroAbsoluePageEnfantsNon.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 actEvalAncrageNumeroAbsoluePageEnfantsNon extends AbstractAction{ + { + putValue( Action.NAME, "Supprime évaluer de l'ancrage au numéro absolue de la page de tous les nodes enfants" ); + putValue( Action.SHORT_DESCRIPTION, "Supprime l'évaluation de l'ancrage au numéro absolue de la page de tous les nodes enfants." ); + 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(); + for(int i = 0 ; i < nod.getNodes().size();i++) { + nod.getNodes().get(i).supprimeAttribut("evalAncrageNumeroAbsoluePage"); + } + fenetres.create.getTextNodeSelect().refreshAffichage(nod); } +} diff --git a/src/fenetres/create_act/actEvalAncrageNumeroAbsoluePageEnfantsOui.java b/src/fenetres/create_act/actEvalAncrageNumeroAbsoluePageEnfantsOui.java new file mode 100644 index 0000000..21fbc0f --- /dev/null +++ b/src/fenetres/create_act/actEvalAncrageNumeroAbsoluePageEnfantsOui.java @@ -0,0 +1,58 @@ +package fenetres.create_act; + +import java.awt.event.ActionEvent; + +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.ImageIcon; +import javax.swing.JOptionPane; + +import cXML.node; +import fenetres.baliseStyle; +import fenetres.create; + +public class actEvalAncrageNumeroAbsoluePageEnfantsOui extends AbstractAction{ + { + putValue( Action.NAME, "Oui, combien de point?" ); + putValue( Action.SHORT_DESCRIPTION, "Evaluer l'ancrage au numéro absolue de tous les nodes enfants" ); + 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; + if(nod.getAttributs().get("evalAncrageNumeroAbsoluePage")!=null) { + point = Integer.valueOf(nod.getAttributs().get("evalAncrageNumeroAbsoluePage")); + } + + String a = JOptionPane.showInputDialog(null,"Quel est le nombre de point?",point); + + if(!a.isEmpty()) { + try { + point = Integer.valueOf(a); + if(point<=0) { + for(int i = 0 ; i < nod.getNodes().size();i++) { + nod.getNodes().get(i).getAttributs().put("evalAncrageNumeroAbsoluePage", String.valueOf(0)); + } + fenetres.create.getTextNodeSelect().setText(baliseStyle.balise()); + fenetres.create.getTextNodeSelect().setText("

Erreur la valeur doit être un nombre entier POSITIF supérieur à zéro.
Cependant,la valeur a été modifiée.
evalAncrageNumeroAbsoluePage=0.

"); + }else { + for(int i = 0 ; i < nod.getNodes().size();i++) { + nod.getNodes().get(i).getAttributs().put("evalAncrageNumeroAbsoluePage", String.valueOf(point)); + } + } + } catch (Exception e2) { + fenetres.create.getTextNodeSelect().setText(baliseStyle.balise()); + fenetres.create.getTextNodeSelect().setText("

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

"); + } + } + fenetres.create.getTextNodeSelect().refreshAffichage(nod); + + } + +} diff --git a/src/fenetres/create_act/actEvalAncrageNumeroAbsoluePageOui.java b/src/fenetres/create_act/actEvalAncrageNumeroAbsoluePageOui.java index da15e71..59c121f 100644 --- a/src/fenetres/create_act/actEvalAncrageNumeroAbsoluePageOui.java +++ b/src/fenetres/create_act/actEvalAncrageNumeroAbsoluePageOui.java @@ -16,7 +16,6 @@ public class actEvalAncrageNumeroAbsoluePageOui extends AbstractAction{ putValue( Action.NAME, "Oui, combien de point?" ); putValue( Action.SHORT_DESCRIPTION, "Evaluer l'ancrage au numéro absolue de la page" ); putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/truemini.png")) ); - putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/truemini.png")) ); } /** * diff --git a/src/fenetres/create_act/actEvalPlacementEnfantNon.java b/src/fenetres/create_act/actEvalPlacementEnfantNon.java new file mode 100644 index 0000000..1ed318b --- /dev/null +++ b/src/fenetres/create_act/actEvalPlacementEnfantNon.java @@ -0,0 +1,35 @@ +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; +import list.listeDesNodesEvalPlacement; + +public class actEvalPlacementEnfantNon extends AbstractAction{ + { + putValue( Action.NAME, "Supprimer évaluer le placement de tous les enfants" ); + putValue( Action.SHORT_DESCRIPTION, "Supprime l'évaluation du placement de tous les enfants" ); + 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(); + for(int i =0 ; i < nod.getNodes().size(); i++) { + if(listeDesNodesEvalPlacement.isPlacement(nod.getNodes().get(i))) { + nod.getNodes().get(i).getAttributs().put("evalPlacement", "0"); + } + } + fenetres.create.getTextNodeSelect().refreshAffichage(nod); + } + +} diff --git a/src/fenetres/create_act/actEvalPlacementEnfantOui.java b/src/fenetres/create_act/actEvalPlacementEnfantOui.java new file mode 100644 index 0000000..557df04 --- /dev/null +++ b/src/fenetres/create_act/actEvalPlacementEnfantOui.java @@ -0,0 +1,62 @@ +package fenetres.create_act; + +import java.awt.event.ActionEvent; + +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.ImageIcon; +import javax.swing.JOptionPane; + +import cXML.node; +import fenetres.baliseStyle; +import fenetres.create; +import list.listeDesNodesEvalPlacement; + +public class actEvalPlacementEnfantOui extends AbstractAction{ + { + putValue( Action.NAME, "Oui, combien de point?" ); + putValue( Action.SHORT_DESCRIPTION, "Evaluer le placement de tous les enfants"); + 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; + if(nod.getAttributs().get("evalPlacement")!=null) { + point = Integer.valueOf(nod.getAttributs().get("evalPlacement")); + } + + String a = JOptionPane.showInputDialog(null,"Quel est le nombre de point?",point); + + if(a!=null) if(!a.isEmpty()) { + try { + point = Integer.valueOf(a); + if(point<=0) { + fenetres.create.getTextNodeSelect().setText(baliseStyle.balise()); + fenetres.create.getTextNodeSelect().setText("

Erreur la valeur doit être un nombre entier POSITIF supérieur à zéro.
Cependant,la valeur a été modifiée.
evalPlacement=0.

"); + for(int i =0 ; i < nod.getNodes().size(); i++) { + if(listeDesNodesEvalPlacement.isPlacement(nod.getNodes().get(i))) { + nod.getNodes().get(i).getAttributs().put("evalPlacement", "0"); + } + } + }else { + for(int i =0 ; i < nod.getNodes().size(); i++) { + if(listeDesNodesEvalPlacement.isPlacement(nod.getNodes().get(i))) { + nod.getNodes().get(i).getAttributs().put("evalPlacement", String.valueOf(point)); + } + } + } + } catch (Exception e2) { + fenetres.create.getTextNodeSelect().setText(baliseStyle.balise()); + fenetres.create.getTextNodeSelect().setText("

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

"); + } + } + fenetres.create.getTextNodeSelect().refreshAffichage(nod); + } + +} diff --git a/src/fenetres/create_act/actNameNodeEnfantsNon.java b/src/fenetres/create_act/actNameNodeEnfantsNon.java new file mode 100644 index 0000000..5f82cd3 --- /dev/null +++ b/src/fenetres/create_act/actNameNodeEnfantsNon.java @@ -0,0 +1,31 @@ +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 actNameNodeEnfantsNon extends AbstractAction{ + { + putValue( Action.NAME, "Supprime l'évaluation de la présence de tous les nodes enfants" ); + putValue( Action.SHORT_DESCRIPTION, "Supprime l'évaluation de la présence de tous les nodes enfants." ); + 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(); + for(int i = 0 ; i < nod.getNodes().size();i++) { + nod.getNodes().get(i).supprimeAttribut("evalNameNode"); + } + fenetres.create.getTextNodeSelect().refreshAffichage(nod); + } +} diff --git a/src/fenetres/create_act/actNameNodeEnfantsOui.java b/src/fenetres/create_act/actNameNodeEnfantsOui.java new file mode 100644 index 0000000..c8c3cee --- /dev/null +++ b/src/fenetres/create_act/actNameNodeEnfantsOui.java @@ -0,0 +1,57 @@ +package fenetres.create_act; + +import java.awt.event.ActionEvent; + +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.ImageIcon; +import javax.swing.JOptionPane; + +import cXML.node; +import fenetres.baliseStyle; +import fenetres.create; + +public class actNameNodeEnfantsOui extends AbstractAction{ + { + putValue( Action.NAME, "Oui, combien de point?" ); + putValue( Action.SHORT_DESCRIPTION, "Evaluer la présence de tous les nodes enfants." ); + 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; + if(nod.getAttributs().get("evalNameNode")!=null) { + point = Integer.valueOf(nod.getAttributs().get("evalNameNode")); + } + + String a = JOptionPane.showInputDialog(null,"Quel est le nombre de point?",point); + + if(!a.isEmpty()) { + try { + point = Integer.valueOf(a); + if(point<=0) { + for(int i = 0 ; i < nod.getNodes().size();i++) { + nod.getNodes().get(i).getAttributs().put("evalNameNode", String.valueOf(0)); + } + fenetres.create.getTextNodeSelect().setText(baliseStyle.balise()); + fenetres.create.getTextNodeSelect().setText("

Erreur la valeur doit être un nombre entier POSITIF supérieur à zéro.
Cependant,la valeur a été modifiée.
evalNameNode=0.

"); + }else { + for(int i = 0 ; i < nod.getNodes().size();i++) { + nod.getNodes().get(i).getAttributs().put("evalNameNode", String.valueOf(point)); + } + } + } catch (Exception e2) { + fenetres.create.getTextNodeSelect().setText(baliseStyle.balise()); + fenetres.create.getTextNodeSelect().setText("

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

"); + } + } + fenetres.create.getTextNodeSelect().refreshAffichage(nod); + } + +} diff --git a/src/fenetres/create_act/actNewFichierAnalyse.java b/src/fenetres/create_act/actNewFichierAnalyse.java index cbbf557..ce6587b 100644 --- a/src/fenetres/create_act/actNewFichierAnalyse.java +++ b/src/fenetres/create_act/actNewFichierAnalyse.java @@ -95,9 +95,10 @@ public class actNewFichierAnalyse extends AbstractAction{ commandes.sujet = meptl.LectureFichierEtudiantSousFormeDeNode(commandes.sujet,b,0); //Pour les sujets, il faut rechercher les nodes en doublons (par exemple : text:p, text:h, text:list-item) - //L'information sera portée par l'attribut isDoublon="1" ou isDoublon="2", etc.. + //L'information sera portée par l'attribut isDoublon="true" // Cela permet de recherche par le numéro du child. placeIsDoublonInStructure(commandes.sujet.retourneFirstEnfantsByName("structurepage")); + placeIsDoublonInStylePage(commandes.sujet.retourneFirstEnfantsByName("style:page")); commandes.sujet.getAttributs().put("analysis_filename","sujet.xml"); @@ -142,11 +143,10 @@ public class actNewFichierAnalyse extends AbstractAction{ public static void placeIsDoublonInStructure(node nod) { - if(nod.getNomElt().equals("structurepage")) { Enumeration pages = Collections.enumeration(nod.getNodes()); while(pages.hasMoreElements()) { node nodLaPage = pages.nextElement(); - Pattern p = Pattern.compile("^text:p$|^text:h$|^text:list$|^text:list-item$|^text:line-break$|^text:span$"); //le node qui peuvent rechercher par le contenu textuel + Pattern p = Pattern.compile("^text:p$|^text:h$|^text:list$|^text:list-item$|^text:line-break$|^text:span$|^text:tab$"); //le node qui peuvent rechercher par le contenu textuel ArrayList listTextesInPage = new ArrayList(); for(int i = 0 ; i < nodLaPage.getNodes().size();i++) { Matcher m = p.matcher(nodLaPage.getNodes().get(i).getNomElt()); @@ -164,15 +164,40 @@ public class actNewFichierAnalyse extends AbstractAction{ } } } - } } + + public static void placeIsDoublonInStylePage(node nod) { + Enumeration pages = Collections.enumeration(nod.getNodes()); + while(pages.hasMoreElements()) { + node nodLaPage = pages.nextElement(); + Pattern p = Pattern.compile("^text:p$|^text:h$|^text:list$|^text:list-item$|^text:line-break$|^text:span$|^text:tab$"); //le node qui peuvent rechercher par le contenu textuel + ArrayList listTextesInPage = new ArrayList(); + for(int i = 0 ; i < nodLaPage.getNodes().size();i++) { + Matcher m = p.matcher(nodLaPage.getNodes().get(i).getNomElt()); + if(m.find()) { + String content = nodLaPage.getNodes().get(i).retourneLesContenusEnfants(""); + if(listTextesInPage.contains(content)) { + nodLaPage.getNodes().get(i).getAttributs().put("isDoublon", "true"); + }else { + nodLaPage.getNodes().get(i).getAttributs().remove("isDoublon"); + listTextesInPage.add(content); + } + } + if(nodLaPage.getNodes().get(i).getNodes().size()>0) { + placeIsDoublon(nodLaPage.getNodes().get(i)); + } + } + } +} + + /** * * @param nod */ private static void placeIsDoublon(node nod) { - Pattern p = Pattern.compile("^text:p$|^text:h$|^text:list$|^text:list-item$|^text:line-break$|^text:span$"); //le node qui peuvent rechercher par le contenu textuel + Pattern p = Pattern.compile("^text:p$|^text:h$|^text:list$|^text:list-item$|^text:line-break$|^text:span$|^text:tab$"); //le node qui peuvent rechercher par le contenu textuel ArrayList listTextesInPage = new ArrayList(); for(int i = 0 ; i < nod.getNodes().size();i++) { Matcher m = p.matcher(nod.getNodes().get(i).getNomElt()); diff --git a/src/list/listeAttributsAnalyseWriter.java b/src/list/listeAttributsAnalyseWriter.java index 32f3189..fbd945f 100644 --- a/src/list/listeAttributsAnalyseWriter.java +++ b/src/list/listeAttributsAnalyseWriter.java @@ -57,7 +57,6 @@ public class listeAttributsAnalyseWriter { case "evalFormatageDirect": return true; case "evalSautPageColonne": return true; case "evalPasParagrapheVide": return true; - case "evalAUnStyleParent":return true; // A faire avautation de l'existence d'un style parent case "analysis_filename": return true; case "auteur": return true; diff --git a/src/list/listeDesNodesEvalPlacement.java b/src/list/listeDesNodesEvalPlacement.java index 82c0956..914b1ee 100644 --- a/src/list/listeDesNodesEvalPlacement.java +++ b/src/list/listeDesNodesEvalPlacement.java @@ -20,6 +20,8 @@ public class listeDesNodesEvalPlacement { case "text:initial-creator": return true; case "text:creator": return true; case "text:editing-cycles": return true; + case "text:tab":return true; + case "text:page-number":return true; case "draw:frame": return true;