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 @@
+
+
+
+
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;