diff --git a/analyseWriter.jar b/analyseWriter.jar
index 111b798..61caa3a 100644
Binary files a/analyseWriter.jar and b/analyseWriter.jar differ
diff --git a/bin/.gitignore b/bin/.gitignore
index b6e699c..16f24aa 100644
--- a/bin/.gitignore
+++ b/bin/.gitignore
@@ -1,3 +1,8 @@
+/MEPTL/
+/accueilanalyseCalcl.svg
+/accueilanalysecalc.png
+/calcul/
+/evaluer/
/fenetres/
/list/
-/MEPTL/
+/resources/
diff --git a/bin/evaluer/evaluationAttribut.class b/bin/evaluer/evaluationAttribut.class
index b4e6fb5..2166b28 100644
Binary files a/bin/evaluer/evaluationAttribut.class and b/bin/evaluer/evaluationAttribut.class differ
diff --git a/bin/list/listeAttributsAnalyseWriter.class b/bin/list/listeAttributsAnalyseWriter.class
index 4fcf811..3c1d59f 100644
Binary files a/bin/list/listeAttributsAnalyseWriter.class and b/bin/list/listeAttributsAnalyseWriter.class differ
diff --git a/icons/evaltextuserdefined.png b/icons/evaltextuserdefined.png
new file mode 100644
index 0000000..c22422e
Binary files /dev/null and b/icons/evaltextuserdefined.png differ
diff --git a/icons/evaltextuserdefined.svg b/icons/evaltextuserdefined.svg
new file mode 100644
index 0000000..82d1db0
--- /dev/null
+++ b/icons/evaltextuserdefined.svg
@@ -0,0 +1,319 @@
+
+
diff --git a/icons/evaltextuserdefinedmini.png b/icons/evaltextuserdefinedmini.png
new file mode 100644
index 0000000..fe7952e
Binary files /dev/null and b/icons/evaltextuserdefinedmini.png differ
diff --git a/src/evaluer/evaluationAttribut.java b/src/evaluer/evaluationAttribut.java
index 7cdad8b..817de80 100644
--- a/src/evaluer/evaluationAttribut.java
+++ b/src/evaluer/evaluationAttribut.java
@@ -244,6 +244,14 @@ public class evaluationAttribut {
}
}
+ if(k.equals("evalTextUserDefined") && sujet.getNomElt().equals("text:user-defined") && sujet.chemin().contains("structurepage")) {
+ if(nodeStudent!=null) {
+ retour = evaluTextUserDefined(retour,nodeStudent, sujet.getAttributs().get("text:name"), sujet.getAttributs().get("evalTextUserDefined"),"Propriété personnalisé");
+ }else {
+ retour = evaluTextUserDefined(retour,null, "Pas trouvé la valeur", sujet.getAttributs().get("evalTextUserDefined"),"Propriété personnalisé");
+ }
+ }
+
if(k.equals("evalNumeroPage") && sujet.getNomElt().equals("page")) {
if(nodeStudent!=null) {
retour = evaluNumeroPage(retour,nodeStudent, sujet.getAttributs().get("numero"), sujet.getAttributs().get("evalNumeroPage"),"numéro");
@@ -450,6 +458,28 @@ public class evaluationAttribut {
return retour;
}
+
+ /**
+ * evalue la valeur de la propriété personalisée dans la structure ("text:name") de text:user-defined
+ * @param retour
+ * @param nodStudent
+ * @param textUserDefined
+ * @param point
+ * @param nameElt
+ * @return
+ */
+ private static node evaluTextUserDefined(node retour, node nodStudent, String textUserDefined, String point, String nameElt) {
+ node item = null;
+ if(nodStudent!=null) {
+ item = retourneNoteAvecResultatsAnalyse(textUserDefined,"valeur", nodStudent.getAttributs().get("text:name"),textUserDefined + "↑‽" +point, nameElt );
+ }else {
+ evaluation.IncrementPointTotal(Integer.valueOf(point));
+ item = new node(textUserDefined, "Erreur", "valeur de la propriété" , "null", textUserDefined, 2, evaluation.getPointEnJeu(),nameElt);
+ }
+ retour.getNodes().add(item);
+ return retour;
+ }
+
/**
*
* @param retour
diff --git a/src/fenetres/afficheText.java b/src/fenetres/afficheText.java
index 2de4619..5af4493 100644
--- a/src/fenetres/afficheText.java
+++ b/src/fenetres/afficheText.java
@@ -56,6 +56,7 @@ public class afficheText extends JEditorPane {
String imagePoids= "";
String imageEvalNumeroPage= "";
String imageEvalNumeroAbsoluePage= "";
+ String imageEvalTextUserDefined= "";
StringBuilder sb = new StringBuilder();
@@ -186,6 +187,9 @@ public class afficheText extends JEditorPane {
if(Lesattributsdunode.get(i).equals("poids") && !nod.getAttributs().get(Lesattributsdunode.get(i)).equals("0")) {
sb.append("
"+imagePoids + " " + Lesattributsdunode.get(i) + " = \"" + nod.getAttributs().get(Lesattributsdunode.get(i))+"\"");
}
+ if(Lesattributsdunode.get(i).equals("evalTextUserDefined") && !nod.getAttributs().get(Lesattributsdunode.get(i)).equals("0")) {
+ sb.append(""+imageEvalTextUserDefined + " " + 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/create.java b/src/fenetres/create.java
index 1efe105..e74cf38 100644
--- a/src/fenetres/create.java
+++ b/src/fenetres/create.java
@@ -63,6 +63,8 @@ import fenetres.create_act.actEvalNumeroPageNon;
import fenetres.create_act.actEvalNumeroPageOui;
import fenetres.create_act.actEvalPiedPageActive;
import fenetres.create_act.actEvalPiedPagePasActive;
+import fenetres.create_act.actEvalTextUserDefinedNon;
+import fenetres.create_act.actEvalTextUserDefinedOui;
import fenetres.create_act.actEvalueFalse;
import fenetres.create_act.actEvalueTrue;
import fenetres.create_act.actEvaluer;
@@ -286,25 +288,6 @@ public final class create extends JFrame {
if(nod!=null) {
-// boolean nodeSetting = false;
-// boolean nodeFormatageDirectePasDeTitrePasAddMenu = false;
-//
-//
-// node nodStyleParent = nod.retourneParentAyantLAttribut("style:name");
-// if(!nod.getNomElt().equals("page")) {
-// if(nodStyleParent!=null) {
-// String nomDuStle = nodStyleParent.getAttributs().get("style:name");
-// Pattern p = Pattern.compile("^P[0-9]{1,}$|^T[0-9]{1,}$");
-// Matcher m = p.matcher(nomDuStle);
-// if(m.find()) {
-// nodeFormatageDirectePasDeTitrePasAddMenu = true;
-// }
-// }
-// }
-
-
-
-
//Menu Evaluer
JMenu mnEvaluer = new JMenu("Evaluer");
mnEvaluer.add(new actEvalueTrue());
@@ -321,6 +304,7 @@ public final class create extends JFrame {
mnManageTree.add(new actCollapseAll());
mnManageTree.add(new actCollapseNode());
+
//Menu Saut niveau >1
JMenu mnSaut = new JMenu("Saut de ligne avant");
mnSaut.setIcon( new ImageIcon(create.class.getResource("/resources/sautmini.png")));
@@ -437,6 +421,12 @@ public final class create extends JFrame {
mnEvalNumeroAbsoluePage.add(new actEvalNumeroAbsoluePageOui());
mnEvalNumeroAbsoluePage.add(new actEvalNumeroAbsoluePageNon());
+ //Menu evalTextUserDefined
+ JMenu mnEvalTextUserDefined = new JMenu("Evaluer la valeur de la propriété");
+ mnEvalTextUserDefined.setIcon(new ImageIcon(create.class.getResource("/resources/evaltextuserdefinedmini.png")));
+ mnEvalTextUserDefined.add(new actEvalTextUserDefinedOui());
+ mnEvalTextUserDefined.add(new actEvalTextUserDefinedNon());
+
//Menue Recherche par le numéro de la page ancrer
JMenu mnRechercheParNumeroPageAncrer = new JMenu("Recherche par le numéro de la page");
mnRechercheParNumeroPageAncrer.setIcon(new ImageIcon(create.class.getResource("/resources/rechercheancragepagemini.png")));
@@ -499,16 +489,6 @@ public final class create extends JFrame {
mnPopupTree.addSeparator();
mnPopupTree.add(new actevalNameCreator());
}
- if(ecritureSujet.listeDesNodesByRecherche(nod.getNomElt())) {
- mnPopupTree.addSeparator();
- mnPopupTree.add(mnRechercheIndex);
- mnPopupTree.addSeparator();
- mnPopupTree.add(mnRechercheContenu);
- mnPopupTree.addSeparator();
- mnPopupTree.add(mnRechercheContenuPlusProcheVoisin);
- mnPopupTree.addSeparator();
- mnPopupTree.add(mnAnalyseStyle);
- }
if(listeRechercheParAnchorPageNumber.isRechercheParAnchorPageNumber(nod)) {
mnPopupTree.addSeparator();
mnPopupTree.add(mnRechercheParNumeroPageAncrer);
@@ -533,6 +513,21 @@ public final class create extends JFrame {
mnPopupTree.addSeparator();
mnPopupTree.add(mnEvalNumeroAbsoluePage);
}
+ if(nod.getNomElt().equals("text:user-defined") && nod.chemin().contains("structurepage")) {
+ mnPopupTree.addSeparator();
+ mnPopupTree.add(mnEvalTextUserDefined);
+ }
+
+ if(ecritureSujet.listeDesNodesByRecherche(nod.getNomElt())) {
+ mnPopupTree.addSeparator();
+ mnPopupTree.add(mnRechercheIndex);
+ mnPopupTree.addSeparator();
+ mnPopupTree.add(mnRechercheContenu);
+ mnPopupTree.addSeparator();
+ mnPopupTree.add(mnRechercheContenuPlusProcheVoisin);
+ mnPopupTree.addSeparator();
+ mnPopupTree.add(mnAnalyseStyle);
+ }
mnPopupTree.addSeparator();
mnPopupTree.add(new actAttribut());
}
@@ -541,6 +536,10 @@ public final class create extends JFrame {
mnPopupTree.addSeparator();
mnPopupTree.add(mnManageTree);
mnPopupTree.addSeparator();
+ mnPopupTree.add(new actCopy());
+ mnPopupTree.addSeparator();
+ mnPopupTree.add(new actPaste());
+ mnPopupTree.addSeparator();
mnPopupTree.add(new actDeleteNode());
diff --git a/src/fenetres/create_act/actCopy.java b/src/fenetres/create_act/actCopy.java
index 9d051a4..7122004 100644
--- a/src/fenetres/create_act/actCopy.java
+++ b/src/fenetres/create_act/actCopy.java
@@ -31,15 +31,15 @@ public class actCopy extends AbstractAction{
@Override
public void actionPerformed(ActionEvent e) {
- node nod = (node) fenetres.create.getSelectNode().getUserObject();
+ node nod = (node) fenetres.create.getSelectNode().getUserObject();
- Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
+ Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
+
+ StringSelection texto = new StringSelection(Run.ecritureNode(nod, 0).toString());
- StringSelection texto = new StringSelection(Run.ecritureNode(nod, 0).toString());
-
- cb.setContents(texto, texto);
+ cb.setContents(texto, texto);
- fenetres.create.getTextNodeSelect().setText(baliseStyle.balise()+"
Le node est copié dans le presse papier.
");
+ fenetres.create.getTextNodeSelect().setText(baliseStyle.balise()+"
Le node est copié dans le presse papier.
");
}
}
diff --git a/src/fenetres/create_act/actEvalTextUserDefinedNon.java b/src/fenetres/create_act/actEvalTextUserDefinedNon.java
new file mode 100644
index 0000000..2e0f95d
--- /dev/null
+++ b/src/fenetres/create_act/actEvalTextUserDefinedNon.java
@@ -0,0 +1,27 @@
+package fenetres.create_act;
+
+import java.awt.event.ActionEvent;
+
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+
+import cXML.node;
+
+public class actEvalTextUserDefinedNon extends AbstractAction{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ {
+ putValue( Action.NAME, "Supprime évaluer la valeur de la propriété personnalisé" );
+ putValue( Action.SHORT_DESCRIPTION, "Supprime l'évaluation de la valeur personnalisé." );
+ }
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ node nod = (node) fenetres.create.getSelectNode().getUserObject();
+ nod.supprimeAttribut("evalTextUserDefined");
+ fenetres.create.getTextNodeSelect().refreshAffichage(nod);
+ }
+
+}
diff --git a/src/fenetres/create_act/actEvalTextUserDefinedOui.java b/src/fenetres/create_act/actEvalTextUserDefinedOui.java
new file mode 100644
index 0000000..65bcd44
--- /dev/null
+++ b/src/fenetres/create_act/actEvalTextUserDefinedOui.java
@@ -0,0 +1,50 @@
+package fenetres.create_act;
+
+import java.awt.event.ActionEvent;
+
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.JOptionPane;
+
+import cXML.node;
+import fenetres.baliseStyle;
+
+public class actEvalTextUserDefinedOui extends AbstractAction{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ {
+ putValue( Action.NAME, "Oui, combien de point?" );
+ putValue( Action.SHORT_DESCRIPTION, "Evaluer la valeur de la propriété personnalisé" );
+ }
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ node nod = (node) fenetres.create.getSelectNode().getUserObject();
+ int point = 0;
+ if(nod.getAttributs().get("evalTextUserDefined")!=null) {
+ point = Integer.valueOf(nod.getAttributs().get("evalTextUserDefined"));
+ }
+
+ String a = JOptionPane.showInputDialog(null,"Quel est le nombre de point?",point);
+
+ if(!a.isEmpty()) {
+ try {
+ point = Integer.valueOf(a);
+ if(point<=0) {
+ nod.getAttributs().put("evalTextUserDefined", 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.
evalTextUserDefined=0.
");
+ }else {
+ nod.getAttributs().put("evalTextUserDefined", 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/actPaste.java b/src/fenetres/create_act/actPaste.java
index 0b8d46b..d2de66d 100644
--- a/src/fenetres/create_act/actPaste.java
+++ b/src/fenetres/create_act/actPaste.java
@@ -14,8 +14,8 @@ import java.util.logging.Logger;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ImageIcon;
+import javax.swing.JOptionPane;
import javax.swing.KeyStroke;
-
import cXML.Run;
import cXML.node;
@@ -36,24 +36,32 @@ public class actPaste extends AbstractAction{
@Override
public void actionPerformed(ActionEvent e) {
String initial = "";
-
- try {
+
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
- String paste = c.getContents(null).getTransferData(DataFlavor.stringFlavor).toString();
- if (!paste.equals(initial)) {
- node nodCopy = Run.XMLContent(paste);
- node nod = (node) fenetres.create.getSelectNode().getUserObject();
- nod.getNodes().add(nodCopy);
- fenetres.create.constructionTree();
- initial = paste;
+ String paste;
+ try {
+ paste = c.getContents(null).getTransferData(DataFlavor.stringFlavor).toString();
+ if (!paste.equals(initial)) {
+ node nodCopy = Run.XMLContent(paste);
+ if(!nodCopy.getNomElt().isEmpty()) {
+ node nod = (node) fenetres.create.getSelectNode().getUserObject();
+ nod.getNodes().add(nodCopy);
+ fenetres.create.constructionTree();
+ initial = paste;
+ }else {
+ JOptionPane.showMessageDialog(null, "Le collage n'est pas réalisé.
Ce n'est pas un node.");
+ }
+
+ }
+ } catch (UnsupportedFlavorException | IOException e1) {
+ JOptionPane.showConfirmDialog(null, e1.toString());
+ e1.printStackTrace();
+ }
+
+ try {
+ Thread.sleep(40);
+ } catch (InterruptedException ex) {
}
- } catch (UnsupportedFlavorException | IOException ex) {
- Logger.getLogger(actPaste.class.getName()).log(Level.SEVERE, null, ex);
- }
- try {
- Thread.sleep(40);
- } catch (InterruptedException ex) {
- }
}
diff --git a/src/list/listeAttributsAnalyseWriter.java b/src/list/listeAttributsAnalyseWriter.java
index 27a01a0..ff262f4 100644
--- a/src/list/listeAttributsAnalyseWriter.java
+++ b/src/list/listeAttributsAnalyseWriter.java
@@ -40,6 +40,7 @@ public class listeAttributsAnalyseWriter {
if(attribut.equals("evalPiedPagePasActive")) return true;
if(attribut.equals("evalNameSequence")) return true;
if(attribut.equals("evalNamePage")) return true;
+ if(attribut.equals("evalTextUserDefined")) return true;
if(attribut.equals("evalNumeroAbsoluePage")) return true;
if(attribut.equals("evalNumeroPage")) return true;
diff --git a/src/resources/evaltextuserdefined.png b/src/resources/evaltextuserdefined.png
new file mode 100644
index 0000000..c22422e
Binary files /dev/null and b/src/resources/evaltextuserdefined.png differ
diff --git a/src/resources/evaltextuserdefinedmini.png b/src/resources/evaltextuserdefinedmini.png
new file mode 100644
index 0000000..fe7952e
Binary files /dev/null and b/src/resources/evaltextuserdefinedmini.png differ