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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + 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