diff --git a/.classpath b/.classpath index 148593c..4b5675b 100644 --- a/.classpath +++ b/.classpath @@ -12,6 +12,6 @@ - + diff --git a/analyseWriter.exe b/analyseWriter.exe index bb484d1..4eca12e 100644 Binary files a/analyseWriter.exe and b/analyseWriter.exe differ diff --git a/analyseWriter.jar b/analyseWriter.jar index 09527ed..127f009 100644 Binary files a/analyseWriter.jar and b/analyseWriter.jar differ diff --git a/bin/.gitignore b/bin/.gitignore index 56b75eb..00c5928 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -3,105 +3,6 @@ /evaluer/ /fenetres/ /list/ -/property.png -/property.svg -/recherche.png -/recherche.svg -/rechercheDoublon.png -/rechercheDoublon.svg -/rechercheDoublonmini.png -/rechercheancragepage.png -/rechercheancragepage.svg -/rechercheancragepagemini.png -/recherchecontenu.png -/recherchecontenu.svg -/recherchecontenumini.png -/recherchecontenuplusprochevoisin.png -/recherchecontenuplusprochevoisin.svg -/recherchecontenuplusprochevoisinmini.png -/rechercheindex.png -/rechercheindex.svg -/rechercheindexmini.png -/recherchemini.png -/redo.png -/saut.svg -/sautmini.png -/sautmultiple.png -/sautmultiple.svg -/sautmultiplemini.png -/sautpageColonne.svg -/sautpagecolonne.png -/sautpagecolonnemini.png -/save.png -/save.svg -/save_as.png -/saveas.svg -/saveasmini.png -/savemini.png -/savepreference.png -/savepreference.svg -/savepreferencemini.png -/section.png -/section.svg -/sequence.png -/sequence.svg -/setting.png -/setting.svg -/settingmini.png -/similitude.png -/similitude.svg -/similitudemini.png -/structurepage.png -/structurepage.svg -/stylepage.png -/stylepage.svg -/styleparagraphe.png -/styleparagraphe.svg -/supprime.svg -/supprimemini.png -/textclean.png -/textclean.svg -/textcleanmini.png -/titre.svg -/titremini.png -/totalpoint.png -/totalpoint.svg -/totalpointmini.png -/totalpointnode.png -/totalpointnode.svg -/totalpointnodemini.png -/touslesnodes.png -/touslesnodes.svg -/touslesnodesmini.png -/toutext.png -/toutext.svg -/toutextmini.png -/traduction.png -/traduction.svg -/traductionmini.png -/treeClose.png -/treeClose.svg -/treeLeaf.png -/treeLeaf.svg -/treeOpen.png -/treeOpen.svg -/triche.png -/triche.svg -/trichemini.png -/true.png -/true.svg -/truemini.png -/tutoriel.png -/tutoriel.svg -/tutorielmini.png -/undo.png -/upnode.png -/upnode.svg -/upnodemini.png -/verifhistorique.png -/verifhistoriquemax.png -/verifhistoriquemini.png -/verifhistoriquestudent.png /verifhistoriquestudent.svg /verifhistoriquestudentmini.png /versevaluate.png diff --git a/bin/MEPTL/meptl.class b/bin/MEPTL/meptl.class index 9b3b826..5a8c7c1 100644 Binary files a/bin/MEPTL/meptl.class and b/bin/MEPTL/meptl.class differ diff --git a/bin/evaluer/analyseFichier.class b/bin/evaluer/analyseFichier.class index 6e919ca..d4850a4 100644 Binary files a/bin/evaluer/analyseFichier.class and b/bin/evaluer/analyseFichier.class differ diff --git a/bin/fenetres/afficheText.class b/bin/fenetres/afficheText.class index fa417e4..1c514cd 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 707e70a..d57885d 100644 Binary files a/bin/fenetres/createPopupMenu.class and b/bin/fenetres/createPopupMenu.class differ diff --git a/bin/fenetres/create_act/actEvalFormatageDirectNon.class b/bin/fenetres/create_act/actEvalFormatageDirectNon.class index bca4adb..0e91767 100644 Binary files a/bin/fenetres/create_act/actEvalFormatageDirectNon.class and b/bin/fenetres/create_act/actEvalFormatageDirectNon.class differ diff --git a/bin/fenetres/create_act/actEvalFormatageDirectOui.class b/bin/fenetres/create_act/actEvalFormatageDirectOui.class index 558248a..bf5f09a 100644 Binary files a/bin/fenetres/create_act/actEvalFormatageDirectOui.class and b/bin/fenetres/create_act/actEvalFormatageDirectOui.class differ diff --git a/bin/fenetres/evaluerLesFichiersEtudiants.class b/bin/fenetres/evaluerLesFichiersEtudiants.class index db25960..bbe6c7d 100644 Binary files a/bin/fenetres/evaluerLesFichiersEtudiants.class and b/bin/fenetres/evaluerLesFichiersEtudiants.class differ diff --git a/src/MEPTL/meptl.java b/src/MEPTL/meptl.java index 6e4ccbc..a834f52 100644 --- a/src/MEPTL/meptl.java +++ b/src/MEPTL/meptl.java @@ -1724,7 +1724,7 @@ public class meptl { } if(nodSujet.getAttributs().get("creationDate")!=null) { - if(!(b.getContenu().contains(nodSujet.getAttributs().get("creationDate")))) { //nodSujet.getAttributs().get("creationDate").contains(b.getContenu()) + if(!(b.getContenu().toString().contains(nodSujet.getAttributs().get("creationDate")))) { //nodSujet.getAttributs().get("creationDate").contains(b.getContenu()) manqueValeurCreationDate = true; } } @@ -1765,6 +1765,7 @@ public class meptl { erreurs.getAttributs().put("manqueValeurCreationDate", String.valueOf(manqueValeurCreationDate)); erreurs.getAttributs().put("manqueInitialCreator", String.valueOf(manqueInitialCreator)); + if(nodSujet.getAttributs().get("historiquePresent")!=null) { if(nodSujet.getAttributs().get("historiquePresent").equalsIgnoreCase("true")) { if(manqueHistorique) { diff --git a/src/evaluer/analyseFichier.java b/src/evaluer/analyseFichier.java index 6e87025..22e4a16 100644 --- a/src/evaluer/analyseFichier.java +++ b/src/evaluer/analyseFichier.java @@ -96,7 +96,9 @@ public class analyseFichier { // verification si au moins une erreur alors l'analyse est terminée if(Boolean.valueOf(erreurs.getAttributs().get("oneError"))){ - return clotureNodeAnalyse(nodouverture, nodbodyetnotation, nodmenu, erreurs, nodmeta, nodpage, nodparagraph, nodsequence, nodnumerochapitre, nodframes, nodsections, nodtableaux, nodbiblio, nodtablematieres, nodtableillustrations, nodstructurepage, nodSujet.getContenu().get(0), null); + String texte = ""; + if(nodSujet.getContenu().size()>0) texte = nodSujet.getContenu().get(0); + return clotureNodeAnalyse(nodouverture, nodbodyetnotation, nodmenu, erreurs, nodmeta, nodpage, nodparagraph, nodsequence, nodnumerochapitre, nodframes, nodsections, nodtableaux, nodbiblio, nodtablematieres, nodtableillustrations, nodstructurepage, texte, null); } diff --git a/src/fenetres/afficheText.java b/src/fenetres/afficheText.java index 6970eb9..b297540 100644 --- a/src/fenetres/afficheText.java +++ b/src/fenetres/afficheText.java @@ -437,7 +437,8 @@ public class afficheText extends JEditorPane { + "

Nom du fichier d'analyse : "+ commandes.nameSujet + "



"); text.append("

Le titre de l'exercice est : " + commandes.analyse_titre+"

"); text.append("

Le sujet (metaSujet) est : " + commandes.analyse_metaSujet+"

"); - text.append("

L'auteur de l'exercice est : " + commandes.analyse_auteur+"

"); + text.append("

L'auteur de l'exercice est : " + commandes.analyse_auteur+"

"); + text.append("


"); if(commandes.analyse_baremeABC==true) { text.append("

La notation est sous la forme d'une note alphabétique ABCDE.

"); text.append("

La progression est de " + String.valueOf(commandes.analyse_progression)+ "

"); @@ -450,7 +451,9 @@ public class afficheText extends JEditorPane { calculNotesProgression C = new calculNotesProgression(commandes.analyse_progression, commandes.analyse_notefrom); text.append("

" + C.getMessageLigne() + "

"); } - text.append("
"); + text.append("


"); + text.append("

La distance de Lenvenhein : " + String.valueOf(commandes.tolerance_text)+ ".

"); + text.append("


"); text.append("

Le nom du fichier : " + commandes.analysis_filename + "

"); text.append("

Le hash de l'évaluation est : " + commandes.hash + "

"); text.append("
"); @@ -458,16 +461,15 @@ public class afficheText extends JEditorPane { text.append("
"); text.append("

Verification de la presence metaSujet : " + commandes.analyse_presenceMetaSujet + "

"); text.append("
"); - text.append("

Contrôle la date de céation : " + commandes.analyse_controleDateCreation+ "

"); + text.append("

Contrôle la date de création : " + commandes.analyse_controleDateCreation+ "

"); text.append("
"); text.append("

Contrôle l'auteur initial du fichier : " + commandes.analyse_controle_Initial_Creator + "

"); - text.append("
"); + text.append("


"); text.append("

Dossier de l'analyse contenant les fichiers des étudiants, feedbacks et notes :

"); text.append("

"+commandes.path+"

"); - text.append("
"); - text.append("

Fichier d'analyse :

"); + text.append("


"); + text.append("

Fichier d'analyse :

"); text.append("

"+commandes.analysis_filename+"

"); - setContentType("text/html"); setText(text.toString()); diff --git a/src/fenetres/createPopupMenu.java b/src/fenetres/createPopupMenu.java index 1d72390..f45dfcb 100644 --- a/src/fenetres/createPopupMenu.java +++ b/src/fenetres/createPopupMenu.java @@ -29,6 +29,10 @@ public class createPopupMenu extends JPopupMenu { */ private static final long serialVersionUID = 1L; + /** + * Création de la popupmenu.
+ * @param nod + */ public createPopupMenu(node nod) { if(nod!=null) { @@ -125,6 +129,8 @@ public class createPopupMenu extends JPopupMenu { mnEvalTousParagraphes.add(new actAllContentChilds()); mnEvalTousParagraphes.addSeparator(); mnEvalTousParagraphes.add(mnEvalNameLegacyStyleTousLesNodes()); + mnEvalTousParagraphes.addSeparator(); + mnEvalTousParagraphes.add(mnEvalFormatageDirectTousLesNodes()); return mnEvalTousParagraphes; } @@ -167,6 +173,21 @@ public class createPopupMenu extends JPopupMenu { return mnEvalFormatageDirect; } + /** + * Evaluer l'absence ou la présence du formatage directe.
+ * De tous les nodes de la structurepage.
+ * Uniquement présent sur les paragraphes ou les titres.
+ * @return + */ + private JMenu mnEvalFormatageDirectTousLesNodes() { + JMenu mnEvalFormatageDirectTousLesNodes = new JMenu("Evaluer l'absence ou la présence du formatage direct"); + mnEvalFormatageDirectTousLesNodes.setIcon( new ImageIcon(create.class.getResource("/resources/evalformatagedirectmini.png"))); + mnEvalFormatageDirectTousLesNodes.add(new actEvalFormatageDirectTousLesNodesTrue()); + mnEvalFormatageDirectTousLesNodes.add( new actEvalFormatageDirectTousLesNodesFalse()); + return mnEvalFormatageDirectTousLesNodes; + } + + /** * Evaluer l'absence de paragraphe vide dans les pages.
* Uniquement présent sur les nodes page.
diff --git a/src/fenetres/create_act/actEvalFormatageDirectNon.java b/src/fenetres/create_act/actEvalFormatageDirectNon.java index 96378c5..d18efb3 100644 --- a/src/fenetres/create_act/actEvalFormatageDirectNon.java +++ b/src/fenetres/create_act/actEvalFormatageDirectNon.java @@ -24,6 +24,8 @@ public class actEvalFormatageDirectNon extends AbstractAction{ public void actionPerformed(ActionEvent e) { node nod = (node) fenetres.create.getSelectNode().getUserObject(); nod.supprimeAttribut("evalFormatageDirect"); - fenetres.create.getTextNodeSelect().refreshAffichage(nod); } + fenetres.create.getTextNodeSelect().refreshAffichage(nod); + + } } diff --git a/src/fenetres/create_act/actEvalFormatageDirectOui.java b/src/fenetres/create_act/actEvalFormatageDirectOui.java index 2560607..e384117 100644 --- a/src/fenetres/create_act/actEvalFormatageDirectOui.java +++ b/src/fenetres/create_act/actEvalFormatageDirectOui.java @@ -14,7 +14,7 @@ import fenetres.create; public class actEvalFormatageDirectOui extends AbstractAction{ { putValue( Action.NAME, "Oui, combien de point?" ); - putValue( Action.SHORT_DESCRIPTION, "Evaluer la présence ou l'basence du formatage direct." ); + putValue( Action.SHORT_DESCRIPTION, "Evaluer la présence ou l'absence du formatage direct." ); 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/actEvalFormatageDirectTousLesNodesFalse.java b/src/fenetres/create_act/actEvalFormatageDirectTousLesNodesFalse.java new file mode 100644 index 0000000..b7e75e5 --- /dev/null +++ b/src/fenetres/create_act/actEvalFormatageDirectTousLesNodesFalse.java @@ -0,0 +1,48 @@ +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.listeDesNodesAnalyseStyle; + +public class actEvalFormatageDirectTousLesNodesFalse extends AbstractAction{ + { + putValue( Action.NAME, "Supprime évaluer l'absence ou la présence du formatage direct" ); + putValue( Action.SHORT_DESCRIPTION, "Supprime évaluer l'absence ou la présence du formatage direct." ); + 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(); + if(nod.getNomElt().equals("page")) { + supprimeAttribut(nod); + } + if(nod.getNomElt().equals("structurepage")) { + for(int i = 0 ; i < nod.getNodes().size();i++) { + if(nod.getNodes().get(i).getNomElt().equals("page")) { + supprimeAttribut(nod.getNodes().get(i)); + } + } + } + fenetres.create.getTextNodeSelect().refreshAffichage(nod); + } + + private void supprimeAttribut(node nodePage) { + for(int i = 0 ; i < nodePage.getNodes().size();i++) { + if(listeDesNodesAnalyseStyle.isAnalyseStyle(nodePage.getNodes().get(i))) { + nodePage.getNodes().get(i).supprimeAttribut("evalFormatageDirect"); + } + } + } + +} diff --git a/src/fenetres/create_act/actEvalFormatageDirectTousLesNodesTrue.java b/src/fenetres/create_act/actEvalFormatageDirectTousLesNodesTrue.java new file mode 100644 index 0000000..1478220 --- /dev/null +++ b/src/fenetres/create_act/actEvalFormatageDirectTousLesNodesTrue.java @@ -0,0 +1,74 @@ +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.listeDesNodesAnalyseStyle; + +public class actEvalFormatageDirectTousLesNodesTrue extends AbstractAction{ + { + putValue( Action.NAME, "Oui, combien de point?" ); + putValue( Action.SHORT_DESCRIPTION, "Evaluer la présence ou l'absence du formatage direct." ); + putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/truemini.png")) ); + 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("evalFormatageDirect")!=null) { + point = Integer.valueOf(nod.getAttributs().get("evalFormatageDirect")); + } + + 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("evalFormatageDirect", 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.
evalFormatageDirect=0.

"); + }else { + String pointString = String.valueOf(point); + if(nod.getNomElt().equals("page")) { + ajouteAttribut(nod,pointString); + } + if(nod.getNomElt().equals("structurepage")) { + for(int i = 0 ; i < nod.getNodes().size(); i++) { + if(nod.getNodes().get(i).getNomElt().equals("page")) { + ajouteAttribut(nod.getNodes().get(i),pointString); + } + } + } + } + } 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); + } + + + private void ajouteAttribut(node nodePage, String pointString) { + for(int i = 0 ; i < nodePage.getNodes().size(); i++) { + if(listeDesNodesAnalyseStyle.isAnalyseStyle(nodePage.getNodes().get(i))) { + nodePage.getNodes().get(i).getAttributs().put("evalFormatageDirect", pointString); + } + } + } + +} diff --git a/src/fenetres/evaluerLesFichiersEtudiants.java b/src/fenetres/evaluerLesFichiersEtudiants.java index 97c069a..66f55fe 100644 --- a/src/fenetres/evaluerLesFichiersEtudiants.java +++ b/src/fenetres/evaluerLesFichiersEtudiants.java @@ -150,14 +150,17 @@ public class evaluerLesFichiersEtudiants implements Runnable{ node nod = Run.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(i)); node nodStudent=null; try { - //Supprime l'historique des modifications - nod.supprimeTousLesNodesEnfantWithThisName("text:tracked-changes"); - nod.supprimeTousLesNodesEnfantWithThisName("text:change-start"); - nod.supprimeTousLesNodesEnfantWithThisName("text:change-end"); - nod.supprimeTousLesNodesEnfantWithThisName("text:deletion"); + //Création du node de l'étudiant nodStudent = meptl.LectureFichierEtudiantSousFormeDeNode(nod,a,i); + + //Supprime l'historique des modifications + nodStudent.supprimeTousLesNodesEnfantWithThisName("text:tracked-changes"); + nodStudent.supprimeTousLesNodesEnfantWithThisName("text:change-start"); + nodStudent.supprimeTousLesNodesEnfantWithThisName("text:change-end"); + nodStudent.supprimeTousLesNodesEnfantWithThisName("text:deletion"); + } catch (IOException e1) { e1.printStackTrace(); } diff --git a/src/fenetres/filechooserXML.java b/src/fenetres/filechooserXML.java index 0b07918..3348814 100644 --- a/src/fenetres/filechooserXML.java +++ b/src/fenetres/filechooserXML.java @@ -102,7 +102,7 @@ public class filechooserXML extends JFileChooser { //node.node2(targetString); node sujetLoad = new node(targetString.toString().replace("\t","").replace("\r", "").replace("\n", "")); - //Supprime l'historique des modifications + //Supprime l'historique des modifications pour pouvoir créer le fichier d'nalyse sujetLoad.supprimeTousLesNodesEnfantWithThisName("text:tracked-changes"); sujetLoad.supprimeTousLesNodesEnfantWithThisName("text:deletion"); sujetLoad.supprimeTousLesNodesEnfantWithThisName("text:change-start");