diff --git a/.classpath b/.classpath index 148593c..0bb8a38 100644 --- a/.classpath +++ b/.classpath @@ -2,7 +2,7 @@ - + diff --git a/Menu/menucontextuel/CreatePopupMenu.java b/Menu/menucontextuel/CreatePopupMenu.java new file mode 100644 index 0000000..0e1941b --- /dev/null +++ b/Menu/menucontextuel/CreatePopupMenu.java @@ -0,0 +1,140 @@ +package menucontextuel; + +import javax.swing.ImageIcon; +import javax.swing.JMenu; +import javax.swing.JPopupMenu; + +import action.actAttribut; +import action.actCoefficient; +import action.actCopy; +import action.actDeleteNode; +import action.actOu; +import action.actPaste; +import cXML.node; +import fenetres.create; +import list.listeDesNodesAEvaluer; +import list.listeDesNodesAllContent; +import list.listeDesNodesAvecOU; +import list.listeDesNodesContientEnfant; +import list.listeDesNodesPourEvaluationEntetePage; +import list.listeDesNodesPourEvaluerPage; +import list.listeDesNodesPourEvaluerPiedDePage; +import list.listeDesNodesRechercheByContenu; +import list.listeEvalNameNode; +import list.listeRechercheParAnchorPageNumber; +import sousmenuArbre.mnArbre; +import sousmenuEvaluation.mnEvaluer; + +/** + * Le menu contextuel des nodes dans le tree.
+ * @author pabr6 + * + */ +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) { + + + //************************************************************** + //** La popupMenu qui s'affiche sur le tree pour les niveau 1 ** + //************************************************************** + JPopupMenu mnPopupTree = new JPopupMenu(); + mnPopupTree.add( mnEvaluer.menu()); + if(nod.getLevel()==1 ) { + mnPopupTree.addSeparator(); + mnPopupTree.add(new actCoefficient()); + mnPopupTree.addSeparator(); + mnPopupTree.add(MnGroupePourFeedbackNiveau1.menu(nod)); + if(nod.getNomElt().equals("structurepage")) { + mnPopupTree.addSeparator(); + mnPopupTree.add( MnGroupeMethodeEvaluer.menu(nod)); + mnPopupTree.addSeparator(); + mnPopupTree.add(MnGroupeMethodeEvaluerMultiple.menu(nod)); + } + } + + //******************************************** + //** Pour les nodes de niveau supérieur à 1 ** + //******************************************** + if(nod.getLevel()>1 ) { + + // Le groupe représentation dans le feedback + mnPopupTree.addSeparator(); + mnPopupTree.add(MnGroupePourFeedback.menu(nod)); + + // Le groupe méthode de recherche + if(listeDesNodesRechercheByContenu.isRechercheByContenu(nod)||listeRechercheParAnchorPageNumber.isRechercheParAnchorPageNumber(nod)) { + mnPopupTree.addSeparator(); + mnPopupTree.add(mnGroupeRechercheContenu.menu(nod)); + } + + + // Le groupe méthode évaluer le node + if(listeEvalNameNode.isNodeEvalNameNode(nod)||listeDesNodesAllContent.isAllContent(nod)|| + listeDesNodesPourEvaluationEntetePage.isEntete(nod) || listeDesNodesPourEvaluerPiedDePage.isPiedDePage(nod)|| + listeDesNodesPourEvaluerPage.isPage(nod) || listeDesNodesAEvaluer.isAEvaluer(nod)) { + mnPopupTree.addSeparator(); + mnPopupTree.add(MnGroupeMethodeEvaluer.menu(nod)); + } + + // Le groupe méthode évaluer les nodes enfants + if(listeDesNodesContientEnfant.isContientEnfant(nod) && nod.getNodes().size()>0) { + mnPopupTree.addSeparator(); + mnPopupTree.add(MnGroupeMethodeEvaluerMultiple.menu(nod)); + } + + // Le groupe accès aux attributs + mnPopupTree.addSeparator(); + mnPopupTree.add(new actAttribut()); + + // Le OU + if(listeDesNodesAvecOU.isOU(nod)) { + mnPopupTree.addSeparator(); + mnPopupTree.add(mnOu()); + } + + + } + + // Le groupe Arbre + mnPopupTree.addSeparator(); + mnPopupTree.add(mnArbre.menu()); + mnPopupTree.addSeparator(); + mnPopupTree.add(new actCopy()); + mnPopupTree.addSeparator(); + mnPopupTree.add(new actPaste()); + mnPopupTree.addSeparator(); + mnPopupTree.add(new actDeleteNode()); + + + //************************************* + //** Applique le popMenu sur la tree ** + //************************************* + create.getTree().setComponentPopupMenu(mnPopupTree); + + } + } + + + /** + * Menu permettant insérer le node OU.
+ * Uniquement accésible pour les nodes avec recherche par contenu.
+ * @return + */ + private JMenu mnOu() { + JMenu mnOu = new JMenu("Insérer un node OU"); + mnOu.setIcon(new ImageIcon(create.class.getResource("/resources/oumini.png"))); + mnOu.add( new actOu()); + return mnOu; + } + + +} diff --git a/src/menucontextuel/MnGroupeMethodeEvaluer.java b/Menu/menucontextuel/MnGroupeMethodeEvaluer.java similarity index 100% rename from src/menucontextuel/MnGroupeMethodeEvaluer.java rename to Menu/menucontextuel/MnGroupeMethodeEvaluer.java diff --git a/src/menucontextuel/MnGroupeMethodeEvaluerMultiple.java b/Menu/menucontextuel/MnGroupeMethodeEvaluerMultiple.java similarity index 100% rename from src/menucontextuel/MnGroupeMethodeEvaluerMultiple.java rename to Menu/menucontextuel/MnGroupeMethodeEvaluerMultiple.java diff --git a/src/menucontextuel/MnGroupePourFeedback.java b/Menu/menucontextuel/MnGroupePourFeedback.java similarity index 100% rename from src/menucontextuel/MnGroupePourFeedback.java rename to Menu/menucontextuel/MnGroupePourFeedback.java diff --git a/src/menucontextuel/MnGroupePourFeedbackNiveau1.java b/Menu/menucontextuel/MnGroupePourFeedbackNiveau1.java similarity index 100% rename from src/menucontextuel/MnGroupePourFeedbackNiveau1.java rename to Menu/menucontextuel/MnGroupePourFeedbackNiveau1.java diff --git a/Menu/menucontextuel/mnGroupeRechercheContenu.java b/Menu/menucontextuel/mnGroupeRechercheContenu.java new file mode 100644 index 0000000..bd28f00 --- /dev/null +++ b/Menu/menucontextuel/mnGroupeRechercheContenu.java @@ -0,0 +1,42 @@ +package menucontextuel; + +import javax.swing.ImageIcon; +import javax.swing.JMenu; + +import cXML.node; +import fenetres.create; +import list.listeDesNodesRechercheByContenu; +import list.listeRechercheParAnchorPageNumber; +import sousmenuRecherche.mnRechercheContenuExact; +import sousmenuRecherche.mnRechercheContenuPlusProcheVoisin; +import sousmenuRecherche.mnRechercheIndex; +import sousmenuRecherche.mnRechercheParNumeroPageAncrer; + +/** + * Menu regroupant les menus permettant de recherche un node par son contenu textuel.
+ * Ce menu apparaît uniquement pour les node de la liste recherche par contenu.
+ * @author pabr6 + * + */ +public class mnGroupeRechercheContenu { + public static JMenu menu(node nod) { + JMenu mnGroupeRechercheContenu = new JMenu("Recherche le node"); + mnGroupeRechercheContenu.setIcon( new ImageIcon(create.class.getResource("/resources/recherchemini.png"))); + + if(listeDesNodesRechercheByContenu.isRechercheByContenu(nod)) { + if(nod.retourneLesContenusEnfants("").length()>0) { + mnGroupeRechercheContenu.add(mnRechercheContenuExact.menu()); + mnGroupeRechercheContenu.addSeparator(); + mnGroupeRechercheContenu.add(mnRechercheContenuPlusProcheVoisin.menu()); + } + mnGroupeRechercheContenu.addSeparator(); + mnGroupeRechercheContenu.add(mnRechercheIndex.menu()); + } + if(listeRechercheParAnchorPageNumber.isRechercheParAnchorPageNumber(nod)) { + mnGroupeRechercheContenu.addSeparator(); + mnGroupeRechercheContenu.add(mnRechercheParNumeroPageAncrer.menu()); + } + + return mnGroupeRechercheContenu; + } +} diff --git a/Menu/sousmenuArbre/mnArbre.java b/Menu/sousmenuArbre/mnArbre.java new file mode 100644 index 0000000..6a6db3f --- /dev/null +++ b/Menu/sousmenuArbre/mnArbre.java @@ -0,0 +1,30 @@ +package sousmenuArbre; + +import javax.swing.JMenu; + +import action.actCollapseAll; +import action.actCollapseNode; +import action.actDownNode; +import action.actExpandAll; +import action.actExpandNode; +import action.actUpNode; + +/** + * Menu Arbre.
+ * @author pabr6 + * + */ +public class mnArbre { + public static JMenu menu() { + JMenu mnManageTree = new JMenu("Arbre"); + mnManageTree.add(new actUpNode()); + mnManageTree.add(new actDownNode()); + mnManageTree.addSeparator(); + mnManageTree.add(new actExpandAll()); + mnManageTree.add(new actExpandNode()); + mnManageTree.addSeparator(); + mnManageTree.add(new actCollapseAll()); + mnManageTree.add(new actCollapseNode()); + return mnManageTree; + } +} diff --git a/src/sousmenuEvaluation/mnAnalyseStyle.java b/Menu/sousmenuEvaluation/mnAnalyseStyle.java similarity index 100% rename from src/sousmenuEvaluation/mnAnalyseStyle.java rename to Menu/sousmenuEvaluation/mnAnalyseStyle.java diff --git a/src/sousmenuEvaluation/mnAnalyseStyleTousLesNodes.java b/Menu/sousmenuEvaluation/mnAnalyseStyleTousLesNodes.java similarity index 100% rename from src/sousmenuEvaluation/mnAnalyseStyleTousLesNodes.java rename to Menu/sousmenuEvaluation/mnAnalyseStyleTousLesNodes.java diff --git a/src/sousmenuEvaluation/mnEvalAncrageNumeroAbsoluPage.java b/Menu/sousmenuEvaluation/mnEvalAncrageNumeroAbsoluPage.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalAncrageNumeroAbsoluPage.java rename to Menu/sousmenuEvaluation/mnEvalAncrageNumeroAbsoluPage.java diff --git a/src/sousmenuEvaluation/mnEvalAncrageNumeroAbsoluPageEnfants.java b/Menu/sousmenuEvaluation/mnEvalAncrageNumeroAbsoluPageEnfants.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalAncrageNumeroAbsoluPageEnfants.java rename to Menu/sousmenuEvaluation/mnEvalAncrageNumeroAbsoluPageEnfants.java diff --git a/src/sousmenuEvaluation/mnEvalEnteteActive.java b/Menu/sousmenuEvaluation/mnEvalEnteteActive.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalEnteteActive.java rename to Menu/sousmenuEvaluation/mnEvalEnteteActive.java diff --git a/src/sousmenuEvaluation/mnEvalEntetePasActive.java b/Menu/sousmenuEvaluation/mnEvalEntetePasActive.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalEntetePasActive.java rename to Menu/sousmenuEvaluation/mnEvalEntetePasActive.java diff --git a/src/sousmenuEvaluation/mnEvalFormatageDirect.java b/Menu/sousmenuEvaluation/mnEvalFormatageDirect.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalFormatageDirect.java rename to Menu/sousmenuEvaluation/mnEvalFormatageDirect.java diff --git a/src/sousmenuEvaluation/mnEvalFormatageDirectTousLesNodes.java b/Menu/sousmenuEvaluation/mnEvalFormatageDirectTousLesNodes.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalFormatageDirectTousLesNodes.java rename to Menu/sousmenuEvaluation/mnEvalFormatageDirectTousLesNodes.java diff --git a/src/sousmenuEvaluation/mnEvalLegacyStyleParentPresent.java b/Menu/sousmenuEvaluation/mnEvalLegacyStyleParentPresent.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalLegacyStyleParentPresent.java rename to Menu/sousmenuEvaluation/mnEvalLegacyStyleParentPresent.java diff --git a/src/sousmenuEvaluation/mnEvalNameLegacyStyle.java b/Menu/sousmenuEvaluation/mnEvalNameLegacyStyle.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalNameLegacyStyle.java rename to Menu/sousmenuEvaluation/mnEvalNameLegacyStyle.java diff --git a/src/sousmenuEvaluation/mnEvalNameLegacyStyleTousLesNodes.java b/Menu/sousmenuEvaluation/mnEvalNameLegacyStyleTousLesNodes.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalNameLegacyStyleTousLesNodes.java rename to Menu/sousmenuEvaluation/mnEvalNameLegacyStyleTousLesNodes.java diff --git a/src/sousmenuEvaluation/mnEvalNameNode.java b/Menu/sousmenuEvaluation/mnEvalNameNode.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalNameNode.java rename to Menu/sousmenuEvaluation/mnEvalNameNode.java diff --git a/src/sousmenuEvaluation/mnEvalNameNodeEnfants.java b/Menu/sousmenuEvaluation/mnEvalNameNodeEnfants.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalNameNodeEnfants.java rename to Menu/sousmenuEvaluation/mnEvalNameNodeEnfants.java diff --git a/src/sousmenuEvaluation/mnEvalNamePage.java b/Menu/sousmenuEvaluation/mnEvalNamePage.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalNamePage.java rename to Menu/sousmenuEvaluation/mnEvalNamePage.java diff --git a/src/sousmenuEvaluation/mnEvalNameSequence.java b/Menu/sousmenuEvaluation/mnEvalNameSequence.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalNameSequence.java rename to Menu/sousmenuEvaluation/mnEvalNameSequence.java diff --git a/src/sousmenuEvaluation/mnEvalNombreDePageMaxi.java b/Menu/sousmenuEvaluation/mnEvalNombreDePageMaxi.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalNombreDePageMaxi.java rename to Menu/sousmenuEvaluation/mnEvalNombreDePageMaxi.java diff --git a/src/sousmenuEvaluation/mnEvalNombreDePageMini.java b/Menu/sousmenuEvaluation/mnEvalNombreDePageMini.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalNombreDePageMini.java rename to Menu/sousmenuEvaluation/mnEvalNombreDePageMini.java diff --git a/src/sousmenuEvaluation/mnEvalNumeroAbsoluePage.java b/Menu/sousmenuEvaluation/mnEvalNumeroAbsoluePage.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalNumeroAbsoluePage.java rename to Menu/sousmenuEvaluation/mnEvalNumeroAbsoluePage.java diff --git a/src/sousmenuEvaluation/mnEvalNumeroPage.java b/Menu/sousmenuEvaluation/mnEvalNumeroPage.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalNumeroPage.java rename to Menu/sousmenuEvaluation/mnEvalNumeroPage.java diff --git a/src/sousmenuEvaluation/mnEvalPasParagrapheVide.java b/Menu/sousmenuEvaluation/mnEvalPasParagrapheVide.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalPasParagrapheVide.java rename to Menu/sousmenuEvaluation/mnEvalPasParagrapheVide.java diff --git a/src/sousmenuEvaluation/mnEvalPasParagrapheVideTousLesPages.java b/Menu/sousmenuEvaluation/mnEvalPasParagrapheVideTousLesPages.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalPasParagrapheVideTousLesPages.java rename to Menu/sousmenuEvaluation/mnEvalPasParagrapheVideTousLesPages.java diff --git a/src/sousmenuEvaluation/mnEvalPiedPageActive.java b/Menu/sousmenuEvaluation/mnEvalPiedPageActive.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalPiedPageActive.java rename to Menu/sousmenuEvaluation/mnEvalPiedPageActive.java diff --git a/src/sousmenuEvaluation/mnEvalPiedPagePasActive.java b/Menu/sousmenuEvaluation/mnEvalPiedPagePasActive.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalPiedPagePasActive.java rename to Menu/sousmenuEvaluation/mnEvalPiedPagePasActive.java diff --git a/src/sousmenuEvaluation/mnEvalPlacementDesEnfants.java b/Menu/sousmenuEvaluation/mnEvalPlacementDesEnfants.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalPlacementDesEnfants.java rename to Menu/sousmenuEvaluation/mnEvalPlacementDesEnfants.java diff --git a/src/sousmenuEvaluation/mnEvalPlacementParagraphe.java b/Menu/sousmenuEvaluation/mnEvalPlacementParagraphe.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalPlacementParagraphe.java rename to Menu/sousmenuEvaluation/mnEvalPlacementParagraphe.java diff --git a/src/sousmenuEvaluation/mnEvalSautPageColonne.java b/Menu/sousmenuEvaluation/mnEvalSautPageColonne.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalSautPageColonne.java rename to Menu/sousmenuEvaluation/mnEvalSautPageColonne.java diff --git a/src/sousmenuEvaluation/mnEvalTextUserDefined.java b/Menu/sousmenuEvaluation/mnEvalTextUserDefined.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalTextUserDefined.java rename to Menu/sousmenuEvaluation/mnEvalTextUserDefined.java diff --git a/src/sousmenuEvaluation/mnEvalTousParagraphes.java b/Menu/sousmenuEvaluation/mnEvalTousParagraphes.java similarity index 100% rename from src/sousmenuEvaluation/mnEvalTousParagraphes.java rename to Menu/sousmenuEvaluation/mnEvalTousParagraphes.java diff --git a/src/sousmenuEvaluation/mnEvaluer.java b/Menu/sousmenuEvaluation/mnEvaluer.java similarity index 100% rename from src/sousmenuEvaluation/mnEvaluer.java rename to Menu/sousmenuEvaluation/mnEvaluer.java diff --git a/src/sousmenuEvaluation/mnEvaluerATraversAnalyseStyle.java b/Menu/sousmenuEvaluation/mnEvaluerATraversAnalyseStyle.java similarity index 100% rename from src/sousmenuEvaluation/mnEvaluerATraversAnalyseStyle.java rename to Menu/sousmenuEvaluation/mnEvaluerATraversAnalyseStyle.java diff --git a/src/sousmenuEvaluation/mnEvaluerDernierEnfant.java b/Menu/sousmenuEvaluation/mnEvaluerDernierEnfant.java similarity index 100% rename from src/sousmenuEvaluation/mnEvaluerDernierEnfant.java rename to Menu/sousmenuEvaluation/mnEvaluerDernierEnfant.java diff --git a/src/sousmenuEvaluation/mnEvaluerPremierEnfant.java b/Menu/sousmenuEvaluation/mnEvaluerPremierEnfant.java similarity index 100% rename from src/sousmenuEvaluation/mnEvaluerPremierEnfant.java rename to Menu/sousmenuEvaluation/mnEvaluerPremierEnfant.java diff --git a/src/sousmenuEvaluation/mnEvaluerStylesParagraphes.java b/Menu/sousmenuEvaluation/mnEvaluerStylesParagraphes.java similarity index 100% rename from src/sousmenuEvaluation/mnEvaluerStylesParagraphes.java rename to Menu/sousmenuEvaluation/mnEvaluerStylesParagraphes.java diff --git a/Menu/sousmenuRecherche/mnRechercheContenuExact.java b/Menu/sousmenuRecherche/mnRechercheContenuExact.java new file mode 100644 index 0000000..bc34759 --- /dev/null +++ b/Menu/sousmenuRecherche/mnRechercheContenuExact.java @@ -0,0 +1,24 @@ +package sousmenuRecherche; + +import javax.swing.ImageIcon; +import javax.swing.JMenu; + +import action.actRechercheContenufalse; +import action.actRechercheContenutrue; +import fenetres.create; + +/** + * Menu rechercher par le contenu exact.
+ * Ignore la case et les epaces avant et après.
+ * @author pabr6 + * + */ +public class mnRechercheContenuExact { + public static JMenu menu(){ + JMenu mnRechercheContenu = new JMenu("Recherche par le contenu exact"); + mnRechercheContenu.setIcon(new ImageIcon(create.class.getResource("/resources/recherchecontenumini.png"))); + mnRechercheContenu.add( new actRechercheContenutrue()); + mnRechercheContenu.add( new actRechercheContenufalse()); + return mnRechercheContenu; + } +} diff --git a/Menu/sousmenuRecherche/mnRechercheContenuPlusProcheVoisin.java b/Menu/sousmenuRecherche/mnRechercheContenuPlusProcheVoisin.java new file mode 100644 index 0000000..f8539fd --- /dev/null +++ b/Menu/sousmenuRecherche/mnRechercheContenuPlusProcheVoisin.java @@ -0,0 +1,23 @@ +package sousmenuRecherche; + +import javax.swing.ImageIcon; +import javax.swing.JMenu; + +import action.actRechercheContenuPlusProcheVoisinfalse; +import action.actRechercheContenuPlusProcheVoisintrue; +import fenetres.create; + +/** + * Menu rechercher par le contenu du plus proche voisin.
+ * @author pabr6 + * + */ +public class mnRechercheContenuPlusProcheVoisin { + public static JMenu menu(){ + JMenu mnRechercheContenuPlusProcheVoisin2 = new JMenu("Recherche par le plus proche voisin"); + mnRechercheContenuPlusProcheVoisin2.setIcon(new ImageIcon(create.class.getResource("/resources/recherchecontenuplusprochevoisinmini.png"))); + mnRechercheContenuPlusProcheVoisin2.add( new actRechercheContenuPlusProcheVoisintrue()); + mnRechercheContenuPlusProcheVoisin2.add(new actRechercheContenuPlusProcheVoisinfalse()); + return mnRechercheContenuPlusProcheVoisin2; + } +} diff --git a/Menu/sousmenuRecherche/mnRechercheIndex.java b/Menu/sousmenuRecherche/mnRechercheIndex.java new file mode 100644 index 0000000..9c4a822 --- /dev/null +++ b/Menu/sousmenuRecherche/mnRechercheIndex.java @@ -0,0 +1,23 @@ +package sousmenuRecherche; + +import javax.swing.ImageIcon; +import javax.swing.JMenu; + +import action.actRechercheIndexfalse; +import action.actRechercheIndextrue; +import fenetres.create; + +/** + * Menu rechercher par l'index.
+ * @author pabr6 + * + */ +public class mnRechercheIndex { + public static JMenu menu(){ + JMenu mnRechercheIndex = new JMenu("Recherche par l'index"); + mnRechercheIndex.setIcon(new ImageIcon(create.class.getResource("/resources/rechercheindexmini.png"))); + mnRechercheIndex.add( new actRechercheIndextrue()) ; + mnRechercheIndex.add(new actRechercheIndexfalse()); + return mnRechercheIndex; + } +} diff --git a/Menu/sousmenuRecherche/mnRechercheParNumeroPageAncrer.java b/Menu/sousmenuRecherche/mnRechercheParNumeroPageAncrer.java new file mode 100644 index 0000000..7a2e3f2 --- /dev/null +++ b/Menu/sousmenuRecherche/mnRechercheParNumeroPageAncrer.java @@ -0,0 +1,25 @@ +package sousmenuRecherche; + +import javax.swing.ImageIcon; +import javax.swing.JMenu; + +import action.actRechercheAnchorPageNumberFalse; +import action.actRechercheAnchorPageNumberTrue; +import fenetres.create; + +/** + * Menu rechercher par le numéro de la page ancrer.
+ * Ce menu est utilisé pour les frames.
+ * @author pabr6 + * + */ +public class mnRechercheParNumeroPageAncrer { + public static JMenu menu(){ + JMenu mnRechercheParNumeroPageAncrer = new JMenu("Recherche par le numéro de la page"); + mnRechercheParNumeroPageAncrer.setIcon(new ImageIcon(create.class.getResource("/resources/rechercheancragepagemini.png"))); + mnRechercheParNumeroPageAncrer.add( new actRechercheAnchorPageNumberTrue()); + mnRechercheParNumeroPageAncrer.addSeparator(); + mnRechercheParNumeroPageAncrer.add( new actRechercheAnchorPageNumberFalse()); + return mnRechercheParNumeroPageAncrer; + } +} diff --git a/src/sousmenuRepresentation/mnAddMenuNiveau1.java b/Menu/sousmenuRepresentation/mnAddMenuNiveau1.java similarity index 100% rename from src/sousmenuRepresentation/mnAddMenuNiveau1.java rename to Menu/sousmenuRepresentation/mnAddMenuNiveau1.java diff --git a/src/sousmenuRepresentation/mnAddMenuNiveauSup1.java b/Menu/sousmenuRepresentation/mnAddMenuNiveauSup1.java similarity index 100% rename from src/sousmenuRepresentation/mnAddMenuNiveauSup1.java rename to Menu/sousmenuRepresentation/mnAddMenuNiveauSup1.java diff --git a/src/sousmenuRepresentation/mnInsereInformation.java b/Menu/sousmenuRepresentation/mnInsereInformation.java similarity index 100% rename from src/sousmenuRepresentation/mnInsereInformation.java rename to Menu/sousmenuRepresentation/mnInsereInformation.java diff --git a/src/sousmenuRepresentation/mnInsereInformationMultiple.java b/Menu/sousmenuRepresentation/mnInsereInformationMultiple.java similarity index 100% rename from src/sousmenuRepresentation/mnInsereInformationMultiple.java rename to Menu/sousmenuRepresentation/mnInsereInformationMultiple.java diff --git a/src/sousmenuRepresentation/mnMarqueNode.java b/Menu/sousmenuRepresentation/mnMarqueNode.java similarity index 100% rename from src/sousmenuRepresentation/mnMarqueNode.java rename to Menu/sousmenuRepresentation/mnMarqueNode.java diff --git a/src/sousmenuRepresentation/mnSaut.java b/Menu/sousmenuRepresentation/mnSaut.java similarity index 100% rename from src/sousmenuRepresentation/mnSaut.java rename to Menu/sousmenuRepresentation/mnSaut.java diff --git a/src/sousmenuRepresentation/mnSautMultiple.java b/Menu/sousmenuRepresentation/mnSautMultiple.java similarity index 100% rename from src/sousmenuRepresentation/mnSautMultiple.java rename to Menu/sousmenuRepresentation/mnSautMultiple.java diff --git a/src/sousmenuRepresentation/mnSautNiveau1.java b/Menu/sousmenuRepresentation/mnSautNiveau1.java similarity index 100% rename from src/sousmenuRepresentation/mnSautNiveau1.java rename to Menu/sousmenuRepresentation/mnSautNiveau1.java diff --git a/src/sousmenuRepresentation/mnTitre.java b/Menu/sousmenuRepresentation/mnTitre.java similarity index 100% rename from src/sousmenuRepresentation/mnTitre.java rename to Menu/sousmenuRepresentation/mnTitre.java diff --git a/src/sousmenuRepresentation/mnTitreNiveau1.java b/Menu/sousmenuRepresentation/mnTitreNiveau1.java similarity index 100% rename from src/sousmenuRepresentation/mnTitreNiveau1.java rename to Menu/sousmenuRepresentation/mnTitreNiveau1.java diff --git a/src/sousmenuRepresentation/mnaddTitreToutesLesPages.java b/Menu/sousmenuRepresentation/mnaddTitreToutesLesPages.java similarity index 100% rename from src/sousmenuRepresentation/mnaddTitreToutesLesPages.java rename to Menu/sousmenuRepresentation/mnaddTitreToutesLesPages.java diff --git a/analyseWriter.exe b/analyseWriter.exe index e2af232..e875f77 100644 Binary files a/analyseWriter.exe and b/analyseWriter.exe differ diff --git a/analyseWriter.jar b/analyseWriter.jar index 1a493a1..38a60f4 100644 Binary files a/analyseWriter.jar and b/analyseWriter.jar differ diff --git a/bin/.gitignore b/bin/.gitignore index 44e82dc..18328e2 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -1,3 +1,8 @@ -/MEPTL/ /fenetres/ -/calcul/ +/list/ +/menucontextuel/ +/sousmenuArbre/ +/sousmenuEvaluation/ +/sousmenuRecherche/ +/sousmenuRepresentation/ +/MEPTL/ diff --git a/bin/MEPTL/commandes.class b/bin/MEPTL/commandes.class index f35e4d8..0c7d69f 100644 Binary files a/bin/MEPTL/commandes.class and b/bin/MEPTL/commandes.class differ diff --git a/bin/MEPTL/meptl.class b/bin/MEPTL/meptl.class index ee33f85..6a2c88a 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 d4850a4..2a1ef1f 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 527a891..5deea25 100644 Binary files a/bin/fenetres/afficheText.class and b/bin/fenetres/afficheText.class differ diff --git a/bin/fenetres/baliseStyle.class b/bin/fenetres/baliseStyle.class index 915e9e1..f003189 100644 Binary files a/bin/fenetres/baliseStyle.class and b/bin/fenetres/baliseStyle.class differ diff --git a/bin/fenetres/create$1.class b/bin/fenetres/create$1.class index 726a523..b0112ee 100644 Binary files a/bin/fenetres/create$1.class and b/bin/fenetres/create$1.class differ diff --git a/bin/fenetres/create$10.class b/bin/fenetres/create$10.class index 1956848..b93e40c 100644 Binary files a/bin/fenetres/create$10.class and b/bin/fenetres/create$10.class differ diff --git a/bin/fenetres/create$11.class b/bin/fenetres/create$11.class index 66f04bf..1039ed0 100644 Binary files a/bin/fenetres/create$11.class and b/bin/fenetres/create$11.class differ diff --git a/bin/fenetres/create$12.class b/bin/fenetres/create$12.class index 2d8e79d..813a86b 100644 Binary files a/bin/fenetres/create$12.class and b/bin/fenetres/create$12.class differ diff --git a/bin/fenetres/create$13.class b/bin/fenetres/create$13.class index 5051c69..9077dab 100644 Binary files a/bin/fenetres/create$13.class and b/bin/fenetres/create$13.class differ diff --git a/bin/fenetres/create$14.class b/bin/fenetres/create$14.class index d34f543..7aed51c 100644 Binary files a/bin/fenetres/create$14.class and b/bin/fenetres/create$14.class differ diff --git a/bin/fenetres/create$15.class b/bin/fenetres/create$15.class index b15fbdf..0ae5db8 100644 Binary files a/bin/fenetres/create$15.class and b/bin/fenetres/create$15.class differ diff --git a/bin/fenetres/create$2.class b/bin/fenetres/create$2.class index bf48d5d..9e1b75b 100644 Binary files a/bin/fenetres/create$2.class and b/bin/fenetres/create$2.class differ diff --git a/bin/fenetres/create$3.class b/bin/fenetres/create$3.class index 2fae042..c87b8f5 100644 Binary files a/bin/fenetres/create$3.class and b/bin/fenetres/create$3.class differ diff --git a/bin/fenetres/create$4.class b/bin/fenetres/create$4.class index e0bce9c..84c72f2 100644 Binary files a/bin/fenetres/create$4.class and b/bin/fenetres/create$4.class differ diff --git a/bin/fenetres/create$5.class b/bin/fenetres/create$5.class index c17ee21..54cb271 100644 Binary files a/bin/fenetres/create$5.class and b/bin/fenetres/create$5.class differ diff --git a/bin/fenetres/create$6.class b/bin/fenetres/create$6.class index 0bca3c4..a89b9b0 100644 Binary files a/bin/fenetres/create$6.class and b/bin/fenetres/create$6.class differ diff --git a/bin/fenetres/create$7.class b/bin/fenetres/create$7.class index e40f5f3..431c72d 100644 Binary files a/bin/fenetres/create$7.class and b/bin/fenetres/create$7.class differ diff --git a/bin/fenetres/create$8.class b/bin/fenetres/create$8.class index 056a393..08442ec 100644 Binary files a/bin/fenetres/create$8.class and b/bin/fenetres/create$8.class differ diff --git a/bin/fenetres/create$9.class b/bin/fenetres/create$9.class index 3141605..3c25f47 100644 Binary files a/bin/fenetres/create$9.class and b/bin/fenetres/create$9.class differ diff --git a/bin/fenetres/create.class b/bin/fenetres/create.class index c910865..5efa7c5 100644 Binary files a/bin/fenetres/create.class and b/bin/fenetres/create.class differ diff --git a/bin/fenetres/evaluate$1.class b/bin/fenetres/evaluate$1.class index 95ccd5c..b133568 100644 Binary files a/bin/fenetres/evaluate$1.class and b/bin/fenetres/evaluate$1.class differ diff --git a/bin/fenetres/evaluate$10.class b/bin/fenetres/evaluate$10.class index 8e5bc1b..6b8227f 100644 Binary files a/bin/fenetres/evaluate$10.class and b/bin/fenetres/evaluate$10.class differ diff --git a/bin/fenetres/evaluate$11.class b/bin/fenetres/evaluate$11.class index 826cbea..afeff6d 100644 Binary files a/bin/fenetres/evaluate$11.class and b/bin/fenetres/evaluate$11.class differ diff --git a/bin/fenetres/evaluate$12.class b/bin/fenetres/evaluate$12.class index 5e8ea95..ce80651 100644 Binary files a/bin/fenetres/evaluate$12.class and b/bin/fenetres/evaluate$12.class differ diff --git a/bin/fenetres/evaluate$13.class b/bin/fenetres/evaluate$13.class index 45b1959..9931406 100644 Binary files a/bin/fenetres/evaluate$13.class and b/bin/fenetres/evaluate$13.class differ diff --git a/bin/fenetres/evaluate$14.class b/bin/fenetres/evaluate$14.class index 35485e4..21d2baf 100644 Binary files a/bin/fenetres/evaluate$14.class and b/bin/fenetres/evaluate$14.class differ diff --git a/bin/fenetres/evaluate$15.class b/bin/fenetres/evaluate$15.class index 2129c4c..50e2fc7 100644 Binary files a/bin/fenetres/evaluate$15.class and b/bin/fenetres/evaluate$15.class differ diff --git a/bin/fenetres/evaluate$2.class b/bin/fenetres/evaluate$2.class index 5075ce2..65c6fa1 100644 Binary files a/bin/fenetres/evaluate$2.class and b/bin/fenetres/evaluate$2.class differ diff --git a/bin/fenetres/evaluate$25.class b/bin/fenetres/evaluate$25.class index 1ad886a..3eeebe0 100644 Binary files a/bin/fenetres/evaluate$25.class and b/bin/fenetres/evaluate$25.class differ diff --git a/bin/fenetres/evaluate$26.class b/bin/fenetres/evaluate$26.class index fe6c3b4..3260d62 100644 Binary files a/bin/fenetres/evaluate$26.class and b/bin/fenetres/evaluate$26.class differ diff --git a/bin/fenetres/evaluate$27.class b/bin/fenetres/evaluate$27.class index 6875810..5b598dc 100644 Binary files a/bin/fenetres/evaluate$27.class and b/bin/fenetres/evaluate$27.class differ diff --git a/bin/fenetres/evaluate$28.class b/bin/fenetres/evaluate$28.class index 52a3630..0653e11 100644 Binary files a/bin/fenetres/evaluate$28.class and b/bin/fenetres/evaluate$28.class differ diff --git a/bin/fenetres/evaluate$29.class b/bin/fenetres/evaluate$29.class index 0236f4c..05b919d 100644 Binary files a/bin/fenetres/evaluate$29.class and b/bin/fenetres/evaluate$29.class differ diff --git a/bin/fenetres/evaluate$3.class b/bin/fenetres/evaluate$3.class index b55e5ec..e186ad0 100644 Binary files a/bin/fenetres/evaluate$3.class and b/bin/fenetres/evaluate$3.class differ diff --git a/bin/fenetres/evaluate$30.class b/bin/fenetres/evaluate$30.class index 313c24b..7683159 100644 Binary files a/bin/fenetres/evaluate$30.class and b/bin/fenetres/evaluate$30.class differ diff --git a/bin/fenetres/evaluate$31.class b/bin/fenetres/evaluate$31.class index 155f8f2..26fdb1c 100644 Binary files a/bin/fenetres/evaluate$31.class and b/bin/fenetres/evaluate$31.class differ diff --git a/bin/fenetres/evaluate$32.class b/bin/fenetres/evaluate$32.class index 592d7fd..9cb468f 100644 Binary files a/bin/fenetres/evaluate$32.class and b/bin/fenetres/evaluate$32.class differ diff --git a/bin/fenetres/evaluate$33.class b/bin/fenetres/evaluate$33.class index 88e89a9..3859207 100644 Binary files a/bin/fenetres/evaluate$33.class and b/bin/fenetres/evaluate$33.class differ diff --git a/bin/fenetres/evaluate$4.class b/bin/fenetres/evaluate$4.class index 0be6a7c..6247e88 100644 Binary files a/bin/fenetres/evaluate$4.class and b/bin/fenetres/evaluate$4.class differ diff --git a/bin/fenetres/evaluate$5.class b/bin/fenetres/evaluate$5.class index 288ad1c..02e483c 100644 Binary files a/bin/fenetres/evaluate$5.class and b/bin/fenetres/evaluate$5.class differ diff --git a/bin/fenetres/evaluate$6.class b/bin/fenetres/evaluate$6.class index 37bff84..be03f50 100644 Binary files a/bin/fenetres/evaluate$6.class and b/bin/fenetres/evaluate$6.class differ diff --git a/bin/fenetres/evaluate$7.class b/bin/fenetres/evaluate$7.class index 3c3bef7..744fcfe 100644 Binary files a/bin/fenetres/evaluate$7.class and b/bin/fenetres/evaluate$7.class differ diff --git a/bin/fenetres/evaluate$8.class b/bin/fenetres/evaluate$8.class index 2091954..e63de34 100644 Binary files a/bin/fenetres/evaluate$8.class and b/bin/fenetres/evaluate$8.class differ diff --git a/bin/fenetres/evaluate$9.class b/bin/fenetres/evaluate$9.class index 159486c..44edb77 100644 Binary files a/bin/fenetres/evaluate$9.class and b/bin/fenetres/evaluate$9.class differ diff --git a/bin/fenetres/evaluate.class b/bin/fenetres/evaluate.class index 0a046ed..01c61f1 100644 Binary files a/bin/fenetres/evaluate.class and b/bin/fenetres/evaluate.class differ diff --git a/bin/fenetres/evaluerLesFichiersEtudiants.class b/bin/fenetres/evaluerLesFichiersEtudiants.class index f0b696d..b5132b7 100644 Binary files a/bin/fenetres/evaluerLesFichiersEtudiants.class and b/bin/fenetres/evaluerLesFichiersEtudiants.class differ diff --git a/bin/fenetres/mainApp$1.class b/bin/fenetres/mainApp$1.class index e309d87..c2adeae 100644 Binary files a/bin/fenetres/mainApp$1.class and b/bin/fenetres/mainApp$1.class differ diff --git a/bin/fenetres/mainApp$2.class b/bin/fenetres/mainApp$2.class index f4e3c29..19b5aa7 100644 Binary files a/bin/fenetres/mainApp$2.class and b/bin/fenetres/mainApp$2.class differ diff --git a/bin/fenetres/mainApp.class b/bin/fenetres/mainApp.class index 639f231..45acbab 100644 Binary files a/bin/fenetres/mainApp.class and b/bin/fenetres/mainApp.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse.class b/bin/fenetres/proprieteFichierAnalyse.class index b6512f9..a65f968 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse.class and b/bin/fenetres/proprieteFichierAnalyse.class differ diff --git a/bin/fenetres/setting$1.class b/bin/fenetres/setting$1.class index 5203d84..253dc09 100644 Binary files a/bin/fenetres/setting$1.class and b/bin/fenetres/setting$1.class differ diff --git a/bin/fenetres/setting$2.class b/bin/fenetres/setting$2.class index ce3f0d0..09cc3f1 100644 Binary files a/bin/fenetres/setting$2.class and b/bin/fenetres/setting$2.class differ diff --git a/bin/fenetres/setting$3.class b/bin/fenetres/setting$3.class index 98867a9..1ca948d 100644 Binary files a/bin/fenetres/setting$3.class and b/bin/fenetres/setting$3.class differ diff --git a/bin/fenetres/setting$4.class b/bin/fenetres/setting$4.class index b179b54..6713904 100644 Binary files a/bin/fenetres/setting$4.class and b/bin/fenetres/setting$4.class differ diff --git a/bin/fenetres/setting$5.class b/bin/fenetres/setting$5.class index 84eab7c..0c5fbb6 100644 Binary files a/bin/fenetres/setting$5.class and b/bin/fenetres/setting$5.class differ diff --git a/bin/fenetres/setting.class b/bin/fenetres/setting.class index 1368206..a4757a0 100644 Binary files a/bin/fenetres/setting.class and b/bin/fenetres/setting.class differ diff --git a/bin/menucontextuel/CreatePopupMenu.class b/bin/menucontextuel/CreatePopupMenu.class index 16edc88..0a45270 100644 Binary files a/bin/menucontextuel/CreatePopupMenu.class and b/bin/menucontextuel/CreatePopupMenu.class differ diff --git a/src/MEPTL/VerificationHistorique.java b/src/MEPTL/VerificationHistorique.java index d038dd8..6ff5429 100644 --- a/src/MEPTL/VerificationHistorique.java +++ b/src/MEPTL/VerificationHistorique.java @@ -4,7 +4,6 @@ import java.text.ParseException; import java.util.ArrayList; import java.util.Date; import java.util.Dictionary; -import java.util.Enumeration; import java.util.Hashtable; import cXML.Run; @@ -20,8 +19,9 @@ public class VerificationHistorique { * @param a * @return le node verif * @throws ParseException + * @throws CloneNotSupportedException */ - public static node verificationHistorique(node verification, Run a) throws ParseException { + public static node verificationHistorique(node verification, Run a) throws ParseException, CloneNotSupportedException { node verif = new node(); @@ -66,6 +66,8 @@ public class VerificationHistorique { Date DateMini = null; //Première date de modification + ArrayList listeModification = new ArrayList(); + // Parcours toutes les modifications dans l'historique for(int j = 0 ; j < HitoriqueDuFichier.size(); j++) { @@ -74,108 +76,160 @@ public class VerificationHistorique { String dcdate1 =""; @SuppressWarnings("unused") String dccreator =""; + String typeModification = ""; + String xmlid = ""; + + nodDate = HitoriqueDuFichier.get(j).retourneFirstEnfantsByName("dc:date"); nodDateCreator = HitoriqueDuFichier.get(j).retourneFirstEnfantsByName("dc:creator"); - if(nodDate!=null) { - dcdate1 = nodDate.getContenu().get(0); - } - if(nodDate!=null) { - dccreator = nodDateCreator.getContenu().get(0); - } - - Date DcDate1 = formatDateWriter.DateLibreOffice(dcdate1); + typeModification = HitoriqueDuFichier.get(j).getNodes().get(0).getNomElt(); + xmlid = HitoriqueDuFichier.get(j).getAttributs().get("xml:id"); - if(DateMini==null) DateMini = DcDate1; // Amorçage de la date premère date de modification - if(DateMini!=null && DateMini.after(DcDate1)) DateMini = DcDate1; //recherche la première date de modification - - - if(lesdates.get(dcdate1)==null) { - lesdates.put(dcdate1, 1); - }else { - int compteur = lesdates.get(dcdate1) + 1; - lesdates.put(dcdate1, compteur); - } - - - node N1 = HitoriqueDuFichier.get(j).getNodes().get(0); - - - for(int i2 = 0 ; i2 < LesFichiers2.size(); i2++) { - String nameStudent2 = LesFichiers2.get(i2).getAttributs().get("dossier"); - ArrayList HitoriqueDuFichier2 = LesFichiers2.get(i2).retourneEnfantsByName("text:changed-region", new ArrayList()); - for(int j2 = 0 ; j2 correspondances = nodStudent.retourneEnfantsByName("correspondance", new ArrayList()); - node c = correspondances.get(correspondances.size()-1); - if(c.getAttributs().get("Avec_etudiant").equals(nameStudent2)&&c.getAttributs().get("dc:creator").equals(dccreator2)) { - compteurnombreCorrespondancesSuivi++; - if(compteurnombreCorrespondancesconsecutive+1>compteurnombreCorrespondancesconsecutive) compteurnombreCorrespondancesconsecutive++; - }else { - compteurnombreCorrespondancesSuivi=0; + + //Le copier et coller dans les fichiers + if(!xmlid.isEmpty()) { + if(!listeModification.contains(xmlid)) { + listeModification.add(xmlid); + ArrayList TousIdentiques = LesFichiers.get(i).retourneEnfantsByNameAndValueAttribut("text:changed-region", "xml:id",xmlid,new ArrayList()); + int NbrParagrapheModifier = 0; + for(int n=0 ; n < TousIdentiques.size(); n++) { + NbrParagrapheModifier = NbrParagrapheModifier + TousIdentiques.get(n).retourneEnfantsByName("text:p",new ArrayList()).size(); + NbrParagrapheModifier = NbrParagrapheModifier + TousIdentiques.get(n).retourneEnfantsByName("text:h",new ArrayList()).size(); + NbrParagrapheModifier = NbrParagrapheModifier + TousIdentiques.get(n).retourneEnfantsByName("draw:frame",new ArrayList()).size(); + NbrParagrapheModifier = NbrParagrapheModifier + TousIdentiques.get(n).retourneEnfantsByName("text:list-item",new ArrayList()).size(); + NbrParagrapheModifier = NbrParagrapheModifier + TousIdentiques.get(n).retourneEnfantsByName("text:table-of-content",new ArrayList()).size(); + NbrParagrapheModifier = NbrParagrapheModifier + TousIdentiques.get(n).retourneEnfantsByName("text:index-title",new ArrayList()).size(); + } + + if(NbrParagrapheModifier <= 0) { + ArrayList Applati = a.Applatir(LesFichiers.get(i).clone(), new ArrayList()); + node A = a.retourneFirstNodeByNameAttributValue(Applati, "text:change-start", "text:change-id", xmlid); + node B = a.retourneFirstNodeByNameAttributValue(Applati, "text:change-end", "text:change-id", xmlid); + int index1 = Applati.indexOf(A); + int index2 = Applati.indexOf(B); + for(int k = index1+1; k HitoriqueDuFichier2 = LesFichiers2.get(i2).retourneEnfantsByName("text:changed-region", new ArrayList()); + for(int j2 = 0 ; j2 correspondances = nodStudent.retourneEnfantsByName("correspondance", new ArrayList()); + node c = correspondances.get(correspondances.size()-1); + if(c.getAttributs().get("Avec_etudiant").equals(nameStudent2)&&c.getAttributs().get("dc:creator").equals(dccreator2)) { + compteurnombreCorrespondancesSuivi++; + if(compteurnombreCorrespondancesconsecutive+1>compteurnombreCorrespondancesconsecutive) compteurnombreCorrespondancesconsecutive++; + }else { + compteurnombreCorrespondancesSuivi=0; + } + } + + node correspondance = new node(); + correspondance.getNodes().add(N2); + + correspondance.setNomElt("correspondance"); + correspondance.getAttributs().put("date", formatDateWriter.DateLibreOffice(DateMini)); + correspondance.getAttributs().put("type",N1.getNomElt()); + correspondance.getAttributs().put("Avec_etudiant", nameStudent2); + correspondance.getAttributs().put("dc:creator", dccreator2); + nodStudent.getNodes().add(correspondance); + System.out.println("\t** Trouve une correspondance ** " + dcdate1); + commandes.message.append("\n\t** Trouve une correspondance ** " + dcdate1); + break; + } + + } + } + } } + } - Enumeration key = lesdates.keys(); - while(key.hasMoreElements()) { - String k = key.nextElement(); - if(lesdates.get(k)>1) { - node modificationsMemeDate = new node(); - modificationsMemeDate.setNomElt("memeinstant"); - modificationsMemeDate.getAttributs().put("date", k); - modificationsMemeDate.getAttributs().put("nombres_modifications_simultané", String.valueOf(lesdates.get(k))); - if(commandes.nombres_modifications_simultané_maxi0)compteurnombreCorrespondancesconsecutive++; //C'est histoire des arbres et des intervalles entre les arbres. Il faut ajouter plus 1 au nombre de correspondances consecutives. nodStudent.getAttributs().put("nombre_correspondance", String.valueOf(compteurnombreCorrespondance)); nodStudent.getAttributs().put("nombre_modifications_date_unique", String.valueOf(lesdates.size())); nodStudent.getAttributs().put("nombre_correspondances_consecutives", String.valueOf(compteurnombreCorrespondancesconsecutive)); - nodStudent.getAttributs().put("first_modification_date", formatDateWriter.DateLibreOffice(DateMini)); + if(DateMini!=null) { + nodStudent.getAttributs().put("first_modification_date", formatDateWriter.DateLibreOffice(DateMini)); + }else { + nodStudent.getAttributs().put("first_modification_date", "0000-01-01T00:00:00"); + } + verif.getNodes().add(nodStudent); System.out.println("\tDate de modification date unique " + String.valueOf(lesdates.size())); diff --git a/src/MEPTL/commandes.java b/src/MEPTL/commandes.java index 255a79a..3ef8060 100644 --- a/src/MEPTL/commandes.java +++ b/src/MEPTL/commandes.java @@ -1,19 +1,11 @@ package MEPTL; -import java.io.BufferedReader; -import java.io.File; import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; import java.util.Date; -import java.util.regex.Matcher; -import java.util.regex.Pattern; + import javax.swing.JTree; - -import cXML.*; -import cXML.Run.UserStatus; +import cXML.node; /** @@ -33,7 +25,7 @@ public class commandes { public static node nodeCSV = null; //**version - public static String version ="V4.4.2"; // La version actuelle + public static String version ="V4.4.3"; // La version actuelle public static String branch = "Origin"; public static String Annee ="2023"; @@ -77,7 +69,7 @@ public class commandes { public static double tolerance_text = 0.8; public static int number_match = 2; public static int mini_number_modification = 0; - public static int nombres_modifications_simultané_maxi = 100; + public static int nombres_modifications_simultané_maxi = 5; public static int tolerance_rouge = 30; public static int tolerance_vert = 30; public static int tolerance_bleu = 30; @@ -180,522 +172,8 @@ public class commandes { message = new StringBuilder(); } - /** - * - * @param args : table des arguments - * @param patch : chemin vers le répertoire courant de l'application - * @throws IOException - * @throws InterruptedException - */ - public commandes(String[] args, String path) throws IOException, InterruptedException { - commandes.path = path; - - for(int i = 0 ; i < args.length ; i++) { - Command = Command + " " +args[i]; - } - - try { - if(args.length==0) {badCommand=true; System.out.println("Il doit y avoir une commande.");System.out.println("Vous pouvez saisir les commandes -aide ou -help pour obtenir la liste des commandes.");} - for(int i = 0 ; i < args.length ; i++) { - if(args[i].equals("-use")) if((i+1)=0){ - if(args[i-1].equals("-use")) analyse=true; - if(args[i-1].equals("-hash")) calculLeHashDuFichier=true; - if(args[i-1].equals("-a")) ecritNodeAnalyse=true; - if(!analyse&&!calculLeHashDuFichier&&!ecritNodeAnalyse) { - badCommand=true; - System.out.println("Les commandes -use ou -hash ou -a doit être suivi du nom du fichier d'analyse."); - } - } - } - - if(args[i].contains(".csv")) { - Matcher m = Pattern.compile("{1,}.csv$").matcher(args[i]); - if(m.find()) {fourniCSV=true; nameCSV = args[i];}else {badCommand=true;System.out.println("Il y a un problème avec l'extension du fichier CSV.\nL'extension doit être \".csv\".");} - if(!args[i-1].equals("-csv") && !args[i-1].equals("-verifcsv")) {badCommand=true; System.out.println("Les commandes -csv ou -verifcsv doivent être suivies par le fichier CSV contenant les identifiants des étudiants.");} - } - if(args[i].equals("-csv")) { - if(!analyse) {badCommand=true;System.out.println("Vous devez saisir la commande -use suivi du nom du fichier d'analyse et après la commande -csv.");} - ecritNoteCSV=true; - } - if(args[i].contains(".svg")) { - Matcher m = Pattern.compile("{1,}.svg$").matcher(args[i]); - if(m.find()) {newLogo=true; nameSVG = args[i];}else {badCommand=true;System.out.println("Il y a un problème avec l'extension du fichier SVG.\nL'extension doit être \".svg\".");} - if(!args[i-1].equals("-newLogo")) {badCommand=true; System.out.println("La commande -newLogo doit être suivi du nom du fichier SVG.");} - } - if(args[i].equals("-newLogo")) { - if(!analyse) {badCommand=true;System.out.println("Vous devez saisir la commade -use puis le nom du fichier d'analyse et après la commande -newLogo.");} - if(noLogo) {badCommand=true;System.out.println("la commande -newLogo et -nologo ne peuvent pas être executées ensemble.");} - newLogo=true; - } - if(args[i].equals("-verifcsv")) { - if(verifHisto) {badCommand=true;System.out.println("Les commandes -verifcsv et -verif ne peuvent pas être executées ensemble.");} - ecritNoteCSV=true; - verifHisto=false; - verifHisto2=true; - if(!analyse) {badCommand=true;System.out.println("Vous devez saisir la commade -use puis le nom du fichier d'analyse et après la commande -verifcsv.");} - } - if(args[i].equals("-nofeedback")) { - if(zipfeedback) {badCommand=true;System.out.println("Ce n'est pas possible d'executer les commandes -nofeedback et -zipfeedback en même temps.");} - sansFeeback=true; - } - if(args[i].equals("-verif")) { - if(verifHisto2) {badCommand=true;System.out.println("Les commandes -verifcsv et -verif ne peuvent pas être executées ensemble.");} - verifHisto=true; - verifHisto2=false; - } - if(args[i].equals("-help")) { - if(args.length>1) {System.out.println("\n\n***\nLa commande -help doit être la seule commande.\n***");clotureWithError();} - helpEN(); - clotureWithHelp(); - } - if(args[i].equals("-aide")) { - if(args.length>1) {System.out.println("\n\n***\nLa commande -aide doit être la seule commande.\n***");clotureWithError();} - helpFR(); - clotureWithHelp(); - } - if(args[i].equals("-licence")) { - if(args.length>1) {System.out.println("\n\n***\nla commande -licence doite être la seule commande..\n***");clotureWithError();} - licence(); - } - if(args[i].equals("-write")) { - if(args.length>1) {System.out.println("\n\n***\nLa commande -write doit être la seule commande.\n***");clotureWithError();} - ecritCode=true; - Profil = UserStatus.STUDENT; - } - if(args[i].equals("-writefiles")) { - if(!(args.length==1 && Command.contains("-writefiles") || args.length==2 && Command.contains("-writefiles")&&Command.contains("-f")) ) {System.out.println("\n\n***\nLa commande -writefiles doit être la seule commande.\nElle peut être suivi de la commande -f uniquement.\n***");clotureWithError();} - writefiles=true; - } - if(args[i].equals("-hash")) { - if(args.length>2) {System.out.println("\n\n***\nLa commande -hash suivi du nom du fichier d'analyse doit être la seule commande.\n***");clotureWithError();} - calculLeHashDuFichier=true; - } - if(args[i].equals("-a")) { - if(args.length>=3 && !Command.contains("-f")) {System.out.println("\n\n***\nLa commande -a suivi du nom du fichier d'analyse doit être la seule commande, à l'exception de la commande -f.\n***");clotureWithError();} - ecritNodeAnalyse=true; - } - if(args[i].equals("-sujet")) { - if(!(analyse&&args.length==3&&Command.contains("-use"))) {badCommand=true; System.out.println("Vous devez saisir la commande -use suivi du fichier d'analyse et après vous pouvez saisir la commande -sujet.");} - ecritSujet=true; - } - if(args[i].equals("-nologo")) { - if(!analyse) {badCommand=true;System.out.println("Vous devez saisir la commande -use suivi du fichier d'analyse et après vous pouvez saisir la commande -nologo.");} - if(newLogo) {badCommand=true;System.out.println("Les commandes -newlogo et -nologo ne peuvent pas être executées en même temps.");} - noLogo=true; - } - if(args[i].equals("-about")) { - if(args.length>1) {System.out.println("\n\n***\nLa commande -about doit être la seule commande.\n***");clotureWithError();} - about(); - clotureApplication(); - } - if(args[i].equals("-nonote")) { - noNote=true; - } - if(args[i].equals("-zipfeedback")) { - if(!analyse) {badCommand=true;System.out.println("Vous devez saisir la commande -use suivi du fichier d'analyse et après vous pouvez saisir la commande -zipfeedback.");} - if(sansFeeback) {badCommand=true;System.out.println("Ce n'est pas possible d'executer les commandes -nofeedback et -zipfeedback en même temps.");} - zipfeedback=true; - } - if(args[i].equals("-f")) { - if(Command.contains(" -d ")) {badCommand=true;System.out.println("Les commandes -f et -d ne peuvent pas être executées ensemble.");} - fichierStudentMoodle=true; - } - if(args[i].equals("-dest")) if((i+1) " + path); - System.out.println(); - System.out.println("P. Rodriguez"); - - } - - /** - * Message dans la console - * @throws IOException - * @throws InterruptedException - */ - private static void helpEN() throws InterruptedException, IOException { - CLS(); - System.out.println(); - System.out.println("**************************************"); - System.out.println("* LIST OF ANALYSEWRITER COMMANDS * "); - System.out.println("**************************************"); - System.out.println(); - - System.out.println(" -use : \t Used to indicate the analysis file."); - System.out.println(" : \t The analysis file (XML format) must be placed just after the command."); - System.out.println(" : \t Student files must be in named folders (export from moodle)."); - System.out.println(" : \t Student files must be in ODF format with the extension .odt."); - System.out.println(); - - System.out.println(" file.xml : \t The analysis file in XML format."); - System.out.println(" : \t file.xml must be placed just after the -use command."); - System.out.println(" : \t The file.xml file must be located in the current folder*."); - System.out.println(" : \t This file must be obtained with the -write command."); - System.out.println(" : \t This file must be manually modified to adapt it to your analysis."); - System.out.println(); - - System.out.println(" -f : \t Indicates that all student files are directly in the current folder."); - System.out.println(" : \t By default student files are in named folders."); - System.out.println(" : \t Student files must be in ODF format with the extension .odt."); - System.out.println(); - - System.out.println(" -verif : \t Allows you to compare all the modifications between the modification track logs."); - System.out.println(" : \t If this is the only command then there is no analysis, no rating, no feedback."); - System.out.println(" : \t This command does not depend on an analysis file (independent of subjects)."); - System.out.println(" : \t You can analyze the logs even if you do not have an analysis file."); - System.out.println(" : \t In the current folder*, you will find the \"Verif.xml\" file."); - System.out.println(); - - System.out.println(" -cvs : \t Allows to import all the notes in a file in CSV format (separator the semicolon)."); - System.out.println(" : \t The -use file.xml command must be placed before the -csv command."); - System.out.println(" : \t The generated file is located in the current folder*."); - System.out.println(" : \t This command can be followed by a file in CSV format containing the list of students."); - System.out.println(" : \t If this command is followed by the \"file.csv\" file then retrieves the student IDs."); - System.out.println(); - - System.out.println(" -verifcvs : \t Allows you to compare all the modifications between the modification track logs."); - System.out.println(" : \t Allows to import all the notes in a file in CSV format (separator the semicolon)."); - System.out.println(" : \t The -use file.xml command must be placed before the -verifcsv command."); - System.out.println(" : \t In the current folder, you will find the \"Verif.xml\" file."); - System.out.println(" : \t The -verifcsv command can be followed by a file in CSV format containing the list of students."); - System.out.println(" : \t If this command is followed by the \"file.csv\" file then retrieves the student IDs."); - System.out.println(); - - System.out.println(" file.csv : \t The file containing the list of students in CSV format."); - System.out.println(" : \t The \"file.csv\" file must be placed just after the -csv or -verifcsv command."); - System.out.println(" : \t The \"file.csv\" file must be in the current folder*."); - System.out.println(" : \t The default separator in the CSV file is the semicolon."); - System.out.println(" : \t In this file, there must be the columns \"First name\", \"Last name\", \"Identification number\"and \"Email\"."); - System.out.println(" : \t You are exporting this file from the Moodle server (gradebook, exporter)."); - System.out.println(); - - System.out.println(" -write : \t Allows you to write an analysis file."); - System.out.println(" : \t The generated file is located in the current folder*."); - System.out.println(" : \t The generated file is in XML format."); - System.out.println(" : \t You must adapt it by modifying the XML code to perform your own analyzes."); - System.out.println(); - - System.out.println(" -writefiles : \t Allows you to write all files in XML."); - System.out.println(" : \t The generated files are located in the current folder*."); - System.out.println(" : \t The generated files are in XML format."); - System.out.println(); - - System.out.println(" -zipfeedback : \t Allows you to generate a ZIP archive containing student feedback. "); - System.out.println(" : \t The archive is named \"moodleFeedback.zip\"."); - System.out.println(" : \t The archive respects the format for importing feedback into Moodle."); - System.out.println(); - - System.out.println(" -nofeedback : \t If TRUE allows you to not generate feedback for the students.."); - System.out.println(" : \t Feedbacks are files in HTML format.."); - System.out.println(" : \t Feedbacks can be found in the current folder*."); - System.out.println(); - - System.out.println(" -nonote : \t Avoid display in the feedbacks of the grade."); - System.out.println(" : \t Avoid placing the student's grade in the file name."); - System.out.println(); - - System.out.println(" -dest : \t Specifies the destination directory for feedbacks and XML and CSV files."); - System.out.println(" : \t Example: -dest \"./output/\" destination folder the \"output\" directory."); - System.out.println(" : \t The destination directory must be in the current directory of the application."); - System.out.println(" : \t There can only be one directory (no subdirectory). "); - System.out.println(" : \t The path must begin with \"./\"."); - System.out.println(" : \t If the folder name contains the $ symbol, it is ignored by the scan. "); - System.out.println(); - - System.out.println(" -sujet : \t Used to retrieve the scan file containing only the evaluated nodes. "); - System.out.println(" : \t The \"sujet.xml\" file is generated from the \"file.xml\" analysis file. "); - System.out.println(" : \t The \"subject.xml\" file is located in the current application folder. "); - System.out.println(); - - System.out.println(" -hash : \t Allows you to calculate the hash of a file."); - System.out.println(" : \t Allows you to verify that an analysis file has not been mofidized."); - System.out.println(); - - System.out.println(" -about : \t Displays the version, author and license. "); - System.out.println(); - - System.out.println(" -licence : \t Displays the text of the application license. "); - System.out.println(); - - System.out.println(" -aide : \t Display application help in French."); - System.out.println(); - - System.out.println(); - System.out.println("---"); - System.out.println("* The current folder is the folder in which the application is located \"analyseWriter.jar\".\n" - +"Dossier courant -> " + path); - System.out.println(); - System.out.println("P. Rodriguez"); - - } - - - /** - * Message dans la console - * @throws IOException - * @throws InterruptedException - */ - private static void about() throws InterruptedException, IOException { - CLS(); - int nbespace = 58-version.length(); - if (nbespace<0) nbespace=1; - - System.out.println(); - System.out.println("\t\t┌─────────────────────────────────────────────────────────────────────┐"); - System.out.println("\t\t│ ANALYSEWRITER (Origin ) │"); - System.out.println("\t\t│ Version : " + version+ new String(new char[nbespace]).replace("\0", " ") +"│" ); - System.out.println("\t\t│ │"); - System.out.println("\t\t│ Mise à jour : https://github.com/1-pablo-rodriguez/analyseWriter │"); - System.out.println("\t\t│ Mise à jour : https://forge.chapril.org/pablo/analyseWriter/releases│"); - System.out.println("\t\t│ │"); - System.out.println("\t\t│ Développeur : pablo Rodriguez │"); - System.out.println("\t\t│ │"); - System.out.println("\t\t│ LICENCE GNU GENERAL PUBLIC LICENSE │"); - System.out.println("\t\t│ Version 3, 29 June 2007 │"); - System.out.println("\t\t└─────────────────────────────────────────────────────────────────────┘"); - System.out.println(); - } - - /** - * Licence de l'application - * @throws IOException - */ - private static void licence() throws IOException { - ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); - InputStream is = classLoader.getResourceAsStream("licence.txt"); - - Reader initialReader = new BufferedReader(new InputStreamReader(is, "UTF-8")); - char[] arr = new char[8 * 1024]; - StringBuilder buffer = new StringBuilder(); - int numCharsRead; - while ((numCharsRead = initialReader.read(arr, 0, arr.length)) != -1) { - buffer.append(arr, 0, numCharsRead); - } - initialReader.close(); - System.out.println(buffer.toString()); - - System.out.println(); - System.out.println("\t\t┌─────────────────────────────────────────────┐"); - System.out.println("\t\t│ Au-dessus, vous avez la licence. │"); - System.out.println("\t\t│ │"); - System.out.println("\t\t│ (')_(') │"); - System.out.println("\t\t│ ( `.° ) │"); - System.out.println("\t\t│ (\")__(\") .. à bientôt, analyseWriter. │"); - System.out.println("\t\t└─────────────────────────────────────────────┘"); - System.out.println(); - System.exit(0); - } - /** * Clôture avec une erreur de commande diff --git a/src/MEPTL/meptl.java b/src/MEPTL/meptl.java index feb465a..e579a87 100644 --- a/src/MEPTL/meptl.java +++ b/src/MEPTL/meptl.java @@ -41,296 +41,8 @@ public class meptl { static DecimalFormat df = new DecimalFormat("###.##"); //static String patch =""; - static double progression = 1.0; + //static double progression = 1.0; - /** - * Ancienne version en mode console
- * Démarrage de l'application.
- *
- * @param args : les commandes de l'application. - * @throws ParserConfigurationException - * @throws SAXException - * @throws IOException - * @throws CloneNotSupportedException - * @throws InterruptedException - * @throws ParseException - */ - public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException, CloneNotSupportedException, InterruptedException, ParseException { - System.getProperty("file.encoding","UTF-8"); - commandes.path = System.getProperty("user.dir"); -// patch = "C:/Users/pabr6/OneDrive/Desktop/Nouveau dossier"; - - //******************* - //** les commandes ** - //******************* - new commandes(args,commandes.path); - - - //** Nouveau node qui permet de convertir le fichier contenant la liste des étudiants en node. - node nodeCSV = null; - - //********************************** - //** Initialisation des variables ** - //********************************** - Run a = null; - Run.path = commandes.path; - int nbFichierWriter=0; - - if(!commandes.calculLeHashDuFichier&&!commandes.ecritSujet) { - //***************************************************** - //** Lancement des lectures des dossiers ou fichiers ** - //***************************************************** - a = new Run(commandes.path,commandes.Profil, commandes.fichierStudentMoodle); - - - //***************************************** - //** Nombre de fichier writer à analyser ** - //***************************************** - nbFichierWriter = a.getLectDossiers().getEC().getListeContentWriter().size(); - } - - //************ - //** -sujet ** - //************ - if(commandes.ecritSujet) { - verificationFichierAnalyse.ecrisLeFichierSujetXML(); - } - - - //**************************************************************************** - //** Calcul le hash du fichier d'analyse et met à jour le fichier d'analyse ** - //**************************************************************************** - if(commandes.calculLeHashDuFichier) { - verificationFichierAnalyse.MiseAJourFichierAnalyse(); - } - - - //***************** - //** -writefiles ** - //***************** - if(commandes.writefiles) { - for(int i = 0 ; i < nbFichierWriter ; i++) { - //** Chargement du format (content) et transformation en node pour l'application - node nod = Run.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(i)); - node nodStudent = LectureFichierEtudiantSousFormeDeNode(nod,a,i); - Run.ecritureNodeEnXML(nodStudent, a.getLectDossiers().getEC().getListeNomDossier().get(i),commandes.path,Run.TypeFile.StudentFile); //écriture du node de l'étudiant - } - //** bye bye analyseWriter - commandes.clotureApplication(); - } - - //******************************************************** - //** Ecriture d'une fichier d'analyse : commande -write ** - //******************************************************** - if(commandes.ecritCode) { - for(int index = 0 ; index < nbFichierWriter ; index++) { - node nodSujet = Run.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(index)); - nodSujet = LectureFichierEtudiantSousFormeDeNode(nodSujet,a,index); - nodSujet.getAttributs().put("analysis_filename", a.getLectDossiers().getEC().getListeNomDossier().get(index)+".xml"); - nodSujet = ecritureSujet.nodePourEcritureSujet(nodSujet,a,index); - Run.ecritureNodeEnXML(nodSujet, a.getLectDossiers().getEC().getListeNomDossier().get(index),commandes.path,Run.TypeFile.Sujet); - } - //** bye bye analyseWriter - commandes.clotureApplication(); - } - - - //********************************************************************************************* - //** PREPARATION du node Sujet pour les commandes (-use file.xml) ou (-use file.xml -sujet) ** - //********************************************************************************************* - if(commandes.analyse||commandes.ecritNodeAnalyse) { - commandes.sujet = chargementFichierAnalyse(commandes.nameSujet, true); - - if(commandes.sujet==null) { - //*************************** - //** bye bye analyseWriter ** - //*************************** - commandes.clotureApplicationAvecErreur(); - } - - //****************************************************************************************************** - //** La méthode verification Fichier Analyse permet de détecter des erreurs dans le fichier d'analyse ** - //** Permet aussi de verifier la mise à jour du hash ou du nom du fichier d'analyse ** - //****************************************************************************************************** - new verificationFichierAnalyse(); - - - if(verificationFichierAnalyse.erreur==true) verificationFichierAnalyse.clotureWithErrorInanalyzeFile(); - //a.ecritureNodeEnXML(nodeSujet, "sujet","",false); // ecriture du node sujet - - //**************************************************** - //** Chargement des paramètres du fichier d'analyse ** - //**************************************************** - chargementParametresFichierAnalyse(); - - //************************************************ - //** Nouvelle ecriture du fichier si MAJ fichier** - //************************************************ - if(commandes.MAJFichierAnalyse||commandes.MAJnameAnalysisFile) { - commandes.sujet.getAttributs().put("hash", commandes.hash); - commandes.sujet.getAttributs().put("analysis_filename", commandes.nameSujet); - } - - try { - - //*********************** - //** -newlogo file.svg ** - //*********************** - if(commandes.newLogo && !commandes.nameSVG.isEmpty()) { - commandes.contenuFichierSVG= chargementFichierSVG(); - } - - //********************************************** - //** Chargement et verification du CVS fourni ** - //********************************************** - if(commandes.fourniCSV) { - nodeCSV = chargementFichierCSV(); - } - - }catch (Exception e) { - System.out.println(e); - } - - } - - //*************************************** - //** -verif ou -use file.xml -verifcsv ** - //*************************************** - node verif = new node(); - if(commandes.verifHisto || commandes.verifHisto2) { - node verification = new node(); - verification.setNomElt("verification"); - verification.getAttributs().put("nombre_fichier", String.valueOf(a.getLectDossiers().getEC().getListeFichierodt().size())); - for(int i = 0 ; i < nbFichierWriter ; i++) { - node nod = Run.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(i)); - node nodStudent = LectureFichierEtudiantPourVerification(nod,a,i); - verification.getNodes().add(nodStudent); - } - //a.ecritureNodeEnXML(verification, "VerificationHistorique","",false); //écriture du node de l'étudiant - verif = VerificationHistorique.verificationHistorique(verification, a); // vérification des correspondances entre les fichiers - - //******************************** - //** Ecriture du node verif.xml ** - //******************************** - Run.ecritureNodeEnXML(verif, "Verif",commandes.path,Run.TypeFile.Verif); //écriture du node de vérification - if(!commandes.analyse) { - //** bye bye analyseWriter - commandes.clotureApplication(); - } - } - - System.getProperty("file.encoding","UTF-8"); - - //********************************************************* - //** Node contenant l'ensemble des analyses des étudiants ** - //********************************************************* - node ensembleanalyse = new node(); - ensembleanalyse.setNomElt("analyses"); - - - //***************************************************** - //** Parcours l'ensemble des fichiers des étudiants *** - //***************************************************** - for(int i = 0 ; i < nbFichierWriter ; i++) { - - //** Ne prends pas en compte le dossier destination créé par la commande -dest - //** Si pas d'analyse alors le nom doit contenir le caractère $ dans le nom du dossier. - if(commandes.fourniDossierDestination)if(a.getLectDossiers().getEC().getListeNomDossier().get(i).equals(commandes.pathDestination)) continue; - - //*********************************************************** - //** Lecture et transformation en node du fichier étudiant ** - //*********************************************************** - node nod = Run.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(i)); - node nodStudent = LectureFichierEtudiantSousFormeDeNode(nod,a,i); - //a.ecritureNodeEnXML(nodStudent, a.getLectDossiers().getEC().getListeNomDossier().get(i),"",false,""); //écriture du node de l'étudiant - - //********************************** - //** Analyse des fichiers student ** - //********************************** - JEditorPane txt = new JEditorPane(); - if(commandes.analyse||commandes.ecritNodeAnalyse) { - - if(!verificationFichierAnalyse.erreur) { -// Run.ecritureNodeEnXML(nodStudent, "fichier student","",false,""); //écriture du node nodStudent de l'étudiant - node ana = analyseFichier.analyse(nodStudent, commandes.sujet, i, a,txt,"0"); - - //************************************************** - //** Ecriture des fichiers d'analyse des students ** - //************************************************** - if(commandes.ecritNodeAnalyse) { - Run.ecritureNodeEnXML(ana, "nodana"+ana.retourneFirstEnfantsByName("ouverture").getAttributs().get("dossier"),commandes.path,Run.TypeFile.Analyse); //écriture du node analyse de l'étudiant - } - - //**************************** - //** Création des feedbacks ** - //**************************** - if(!commandes.sansFeeback&&!commandes.ecritNodeAnalyse) { - if(!commandes.zipfeedback) { - //feedback(ana, verif); //classique directement dans le répertoire - feedbacks.feedback(ana,verif, false, false); - } - if(commandes.zipfeedback) { // Dans une archive pour Moodle - try { - a.AddStreamToZip(feedbacks.feedback(ana, verif, true, false), retourneLeNomDuFeedback(a.getLectDossiers().getEC().getListeNomFichierFeedBack().get(i),ana, verif),commandes.analyse_size,commandes.analyse_nameZip); - } catch (ZipException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - - //******************************************************************************** - //** Ajoute au node ensembleanalyse lorsque -csv file.csv ou -verifcsv file.scv ** - //******************************************************************************** - if(commandes.ecritNoteCSV) ensembleanalyse.addNode(ana); - - //********************************************************* - //** Message dans la console sur l'analyse de l'étudiant ** - //********************************************************* - messageSystem(ana); - }else { - - } - - } - } - - if(commandes.sujet!=null) { - //***************************************************** - //** Exportation au format CSV si -csv ou -verifcsv ** - //***************************************************** - if(commandes.ecritNoteCSV && !commandes.fourniCSV) { - if(!commandes.verifHisto2) ecritureCSV(ensembleanalyse); - if(commandes.verifHisto2) ecritureCSV(ensembleanalyse,verif,a,commandes.sujet.retourneFirstEnfantsByName("setting")); - //a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant - } - - //*********************************************************************** - //** Exportation au format CSV si -csv file.csv ou -verifcsv file.csv ** - //*********************************************************************** - if(commandes.ecritNoteCSV && commandes.fourniCSV) { - ecritureCSV(ensembleanalyse,verif,a,nodeCSV, commandes.sujet.retourneFirstEnfantsByName("setting")); - //a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant - } - - //************************************** - //** Mise à jour du fichier d'analyse ** - //************************************** - if(commandes.MAJFichierAnalyse||commandes.MAJnameAnalysisFile) { - verificationFichierAnalyse.MiseAJourFichierAnalyse(); - verificationFichierAnalyse.messagMiseAJourFichierAnalyseAprèsAnalyse(); - } - } - - //*************************** - //** bye bye analyseWriter ** - //*************************** - commandes.clotureApplication(); - } - - - /** * Lecture du fichier Student pour vérification des historiques.
*
@@ -373,7 +85,8 @@ public class meptl { int nbrModif = nod.retourneFirstEnfantsByName("text:tracked-changes").getNodes().size(); nodhistorique.setNomElt("historique"); nodhistorique.getAttributs().put("nbrModif", String.valueOf(nbrModif)); - nodhistorique.getNodes().addAll(a.retourneNames(a.NodeFirstName(nod, "office:text"), "text:tracked-changes")); +// nodhistorique.getNodes().addAll(a.retourneNames(a.NodeFirstName(nod, "office:text"), "text:tracked-changes")); + nodhistorique.getNodes().addAll(a.retourneNames(nod, "office:text")); fichier.getNodes().add(nodhistorique); return fichier; @@ -1350,7 +1063,7 @@ public class meptl { } /** - * Chargement des paramètres du fichier d'analyse + * Chargement des paramètres du fichier d'analyse.
*/ public static void chargementParametresFichierAnalyse() { @@ -1498,6 +1211,7 @@ public class meptl { } + //***************************************************************** //** chargement de la culture qui se trouve dans le node setting ** //***************************************************************** diff --git a/src/evaluer/analyseFichier.java b/src/evaluer/analyseFichier.java index 22e4a16..433f662 100644 --- a/src/evaluer/analyseFichier.java +++ b/src/evaluer/analyseFichier.java @@ -15,12 +15,12 @@ import cXML.node; public class analyseFichier { /** - * Début de l'analyse par comparaison du node étudiant avec le node sujet. + * Début de l'analyse par comparaison du node étudiant avec le node sujet.
* @param nodStudent, le node étudiant. * @param nodSujet, le node sujet. * @param indexStudent, index de l'étudiant * @param a, objet Run de la class cXML - * @return retourne le node "ana" analyse contenant toute l'analyse. + * @return retourne le node "ana" (analyse) contenant toute l'évaluation du fichier de l'étudiant. */ public static node analyse(node nodStudent, node nodSujet, Integer indexStudent, Run a,JEditorPane txt, String texteAfficher) { @@ -67,14 +67,9 @@ public class analyseFichier { } nodouverture.setClose(true); - texteAfficher = texteAfficher + "\n" + nodouverture.getAttributs().get("dossier"); txt.setText(texteAfficher); -// txt.setText("\nEvaluation du fichier n° " + String.valueOf(indexStudent) +"/ " + nbFichierWriter + " fichier(s)"+ -// "\n" + nodouverture.getAttributs().get("dossier")); - - //Body et note (par défaut valeur nulle) node nodbodyetnotation = new node(); nodbodyetnotation.setNomElt("bodyetnotation"); diff --git a/src/fenetres/afficheText.java b/src/fenetres/afficheText.java index f658a0a..b114a19 100644 --- a/src/fenetres/afficheText.java +++ b/src/fenetres/afficheText.java @@ -120,8 +120,6 @@ public class afficheText extends JEditorPane { sb.append("

Ce node est évalué.

"); } - - if(nod.getAttributs().size()>0) { if(nod.getAttributs().size()==1) sb.append("

L'ATTRIBUT DU NODE

"); if(nod.getAttributs().size()>1) sb.append("

LES ATTRIBUTS DU NODE

"); @@ -145,10 +143,11 @@ public class afficheText extends JEditorPane { //permet le tri par ordre alphabétique des clés du dictionnaire Lesattributsdunode = Lesattributsdunode.stream().sorted().collect(Collectors.toList()); + //Affichage des informations de l'évaluation du node if(nod.getAttributs().get("evaluer")!=null) if(nod.getAttributs().get("evaluer").equals("true")) { sb.append("
"); sb.append("
    "); - sb.append("
  • Les attributs d'analyseWriter
  • "); + sb.append("

    Les attributs d'analyseWriter

    "); for(int i=0; i < Lesattributsdunode.size();i++) { if(listeAttributsAnalyseWriter.isAttributAnalyseWriter(Lesattributsdunode.get(i))) { if(Lesattributsdunode.get(i).equals("allContent")) { @@ -271,14 +270,14 @@ public class afficheText extends JEditorPane { if(Lesattributsdunode.get(i).equals("evalLegacyStyleParentPresent") && !nod.getAttributs().get(Lesattributsdunode.get(i)).equals("0")) { sb.append("
  • "+imageEvalLegacyStyleParentPresent+ " " + Lesattributsdunode.get(i) + " = \"" + nod.getAttributs().get(Lesattributsdunode.get(i))+"\"
  • "); } - -// sb.append("
  • " + Lesattributsdunode.get(i) + "=\"" + nod.getAttributs().get(Lesattributsdunode.get(i))+"\"
  • "); } } sb.append("
"); + sb.append("
"); + sb.append("
    "); - sb.append("
  • Les attributs de Writer
  • "); + sb.append("

    Les attributs de Writer

    "); for(int i=0; i < Lesattributsdunode.size();i++) { if(!listeAttributsAnalyseWriter.isAttributAnalyseWriter(Lesattributsdunode.get(i))) { if(!nod.getAttributs().get(Lesattributsdunode.get(i)).contains("‼")&&!nod.getAttributs().get(Lesattributsdunode.get(i)).contains("‽")) { @@ -297,7 +296,7 @@ public class afficheText extends JEditorPane { if(nod.getAttributs().get("evaluer")!=null) if(!nod.getAttributs().get("evaluer").equalsIgnoreCase("true")) { sb.append("
    "); sb.append("
      "); - sb.append("
    • Les attributs d'analyseWriter
    • "); + sb.append("

      Les attributs d'analyseWriter

      "); for(int i=0; i < Lesattributsdunode.size();i++) { if(listeAttributsAnalyseWriter.isAttributAnalyseWriter(Lesattributsdunode.get(i))) { sb.append("
    • " + Lesattributsdunode.get(i) + " = \"" + nod.getAttributs().get(Lesattributsdunode.get(i))+"\"
    • "); @@ -306,7 +305,7 @@ public class afficheText extends JEditorPane { sb.append("
    "); sb.append("
    "); sb.append("
      "); - sb.append("
    • Les attributs de Writer
    • "); + sb.append("

      Les attributs de Writer

      "); for(int i=0; i < Lesattributsdunode.size();i++) { if(!listeAttributsAnalyseWriter.isAttributAnalyseWriter(Lesattributsdunode.get(i))) { if(!nod.getAttributs().get(Lesattributsdunode.get(i)).contains("‼")&&!nod.getAttributs().get(Lesattributsdunode.get(i)).contains("‽")) { diff --git a/src/fenetres/baliseStyle.java b/src/fenetres/baliseStyle.java index 35fb8e6..69f3dc2 100644 --- a/src/fenetres/baliseStyle.java +++ b/src/fenetres/baliseStyle.java @@ -13,15 +13,15 @@ public class baliseStyle { + "h2 {margin-bottom: 0.25cm;font-size: 16pt;font-family:\"Arial\";text-align:center;font-weight: bold;}" + "h3 {margin-bottom: 0.25cm;font-size: 16pt;font-family:\"Arial\";text-align:left;font-weight: bold;}" + "h4 {text-align:left;font-family: \"Arial\"; font-size: 16pt; font-weight: bold; line-height: 110%;}" - + "p {font-family:\"Arial\";font-size: 14pt;margin-bottom: 0cm; margin-top: 0cm; line-height: 0%; background: transparent; margin-left: 0cm; white-space: pre;}" + + "p {font-family:\"Arial\";font-size: 15pt;margin-bottom: 0cm; margin-top: 0cm; line-height: 0%; background: transparent; margin-left: 0cm; white-space: pre;}" + "hr { display: block; margin-top: 0.5em; margin-bottom: 8em; margin-left: 2em; margin-right: 2em; border-style: inset; border-width: 4px;}" + "spanpablo { float: right; width: 8em; font-size: 250%; font-family: algerian, courier; line-height: 80%; margin-right: 1%; color: red; text-align: center}" + ".p1{color:blue;font-family:\"Arial\";font-size: 14pt;margin-bottom: 0cm; margin-top: 0cm; line-height: 0%; background: transparent; margin-left: 0cm; white-space: pre;}" + "bleu{color:blue;font-family:\"Arial\";font-size: 14pt;margin-bottom: 0cm; margin-top: 0cm; line-height: 0%; background: #AAAAAA; margin-left: 0cm; white-space: pre;}" + ".city { background-color: transparent;color: #008B8B;padding: 10px;}" + ".rouge { background-color: #8B0000;color: white;padding: 10px;}" - + "li.p2{color:green;font-family:\"Arial\";font-size: 14pt;margin-bottom: 0cm; margin-top: 0cm; line-height: 0%; background: transparent; margin-left: 0cm; white-space: pre;}" - + "li.p4{color:#FF8C00;font-family:\"Arial\";font-size: 14pt;margin-bottom: 0cm; margin-top: 0cm; line-height: 0%; background: transparent; margin-left: 0cm; white-space: pre;}" + + "li.p2{color:green;font-family:\"Arial\";font-size: 15pt;margin-bottom: 0cm; margin-top: 0cm; line-height: 0%; background: transparent; margin-left: 0cm; white-space: pre;}" + + "li.p4{color:#1122EE;font-family:\"Arial\";font-size: 15pt;margin-bottom: 0cm; margin-top: 0cm; line-height: 0%; background: transparent; margin-left: 0cm; white-space: pre;}" + "li.p3{color:red;font-family:\"Arial\";font-size: 14pt;margin-bottom: 0cm; margin-top: 0cm; line-height: 0%; background: transparent; margin-left: 0cm; white-space: pre;}" + "li.p5{color:#55BB11;font-family:\"Arial\";font-size: 16pt;margin-bottom: 0cm; margin-top: 0cm; line-height: 0%; background: transparent; margin-left: 0cm; white-space: pre;}" + "p.p4{margin-left: 0px; margin-bottom: 0cm; margin-top: 4px; line-height: 115%}" diff --git a/src/fenetres/create.java b/src/fenetres/create.java index 1b8f578..cf84294 100644 --- a/src/fenetres/create.java +++ b/src/fenetres/create.java @@ -70,6 +70,7 @@ import action.actUpNode; import cXML.Run; import cXML.node; import menucontextuel.CreatePopupMenu; +import java.awt.Color; @@ -96,6 +97,7 @@ public final class create extends JFrame { * Création de la fenêtre.
      */ public create() { + setBackground(new Color(255, 255, 255)); try { initialize(); } catch (UnsupportedLookAndFeelException e) { @@ -138,6 +140,7 @@ public final class create extends JFrame { // Construction et injection de la barre de menu setJMenuBar( this.createMenuBar() ); + tree.setBackground(new Color(255, 255, 255)); tree.setVisibleRowCount(30); // Ajoute le menu contextuel de la tree @@ -158,11 +161,12 @@ public final class create extends JFrame { JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftScrollPane, rightScrollPane ); splitPane.setBounds(10, 10, 1364, 783); + textNodeSelect.setBackground(new Color(255, 242, 155)); rightScrollPane.setViewportView(textNodeSelect); textNodeSelect.setFont(new Font("Monospaced", Font.PLAIN, 15)); leftScrollPane.setViewportView(tree); - tree.setFont(new Font("Tahoma", Font.PLAIN, 14)); + tree.setFont(new Font("Tahoma", Font.PLAIN, 16)); getContentPane().add(splitPane, BorderLayout.CENTER); panelPrincipal.setLayout(new GridLayout(1, 1, 0, 0)); diff --git a/src/fenetres/evaluate.java b/src/fenetres/evaluate.java index 12dc2a9..7afdc84 100644 --- a/src/fenetres/evaluate.java +++ b/src/fenetres/evaluate.java @@ -349,6 +349,7 @@ public class evaluate extends JFrame { txtpnmessages = new afficheText(); txtpnmessages.setFont(new Font("Tahoma", Font.PLAIN, 16)); + txtpnmessages.setBackground(new Color(255, 242, 155)); txtpnmessages.setContentType("text/html"); txtpnmessages.setText(baliseStyle.balise() + "

      *** Charger un fichier d'analyse. ***


      "); scrollPane.setViewportView(txtpnmessages); diff --git a/src/fenetres/evaluerLesFichiersEtudiants.java b/src/fenetres/evaluerLesFichiersEtudiants.java index 9874815..b591607 100644 --- a/src/fenetres/evaluerLesFichiersEtudiants.java +++ b/src/fenetres/evaluerLesFichiersEtudiants.java @@ -116,7 +116,7 @@ public class evaluerLesFichiersEtudiants implements Runnable{ try { verif = VerificationHistorique.verificationHistorique(verification, a); Run.ecritureNodeEnXML(verif, "Verif",commandes.path, Run.TypeFile.Verif ); - } catch (IOException | ParseException e) { + } catch (IOException | ParseException | CloneNotSupportedException e) { e.printStackTrace(); } //écriture du node de vérification commandes.message.append("
      "); diff --git a/src/fenetres/mainApp.java b/src/fenetres/mainApp.java index 8387f71..55eebfc 100644 --- a/src/fenetres/mainApp.java +++ b/src/fenetres/mainApp.java @@ -15,10 +15,6 @@ import java.awt.SystemColor; public class mainApp extends JFrame implements ActionListener{ - - /** - * - */ private static final long serialVersionUID = 1L; private JFrame frmEvalwriter; @@ -51,11 +47,9 @@ public class mainApp extends JFrame implements ActionListener{ * Initialize the contents of the frame. */ private void initialize() { - frmEvalwriter = new JFrame(); frmEvalwriter.setResizable(false); - frmEvalwriter.setTitle("analyseWriter"); frmEvalwriter.setBounds(100, 100, 500, 380); int screenWidth = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getWidth(); int screenHeight = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight(); @@ -122,6 +116,7 @@ public class mainApp extends JFrame implements ActionListener{ btnTutoriels.setFont(new Font("Arial", Font.PLAIN, 14)); btnTutoriels.setBounds(254, 270, 200, 60); frmEvalwriter.getContentPane().add(btnTutoriels); + frmEvalwriter.setTitle(commandes.Titre + " " + commandes.version + " " + commandes.branch); } diff --git a/src/fenetres/proprieteFichierAnalyse.java b/src/fenetres/proprieteFichierAnalyse.java index 6f1ba7b..5fdd5f3 100644 --- a/src/fenetres/proprieteFichierAnalyse.java +++ b/src/fenetres/proprieteFichierAnalyse.java @@ -675,7 +675,7 @@ public final class proprieteFichierAnalyse extends JFrame { * @return */ private boolean VerificationDateDuControle() { - if(textField_dateModificationMini.getText().isBlank() && comboBoxcontrole_modificationDateMini.getSelectedItem().equals(false)) { + if(textField_dateModificationMini.getText().isBlank() && comboBoxcontrole_modificationDateMini.getSelectedItem().equals("false")) { return true; } if(formatDateWriter.isCorrect(textField_dateModificationMini.getText())){ diff --git a/src/fenetres/setting.java b/src/fenetres/setting.java index 28b62eb..884d2a0 100644 --- a/src/fenetres/setting.java +++ b/src/fenetres/setting.java @@ -621,15 +621,17 @@ public final class setting extends JFrame { nodImport.getAttributs().put("firstname", textFieldPrenomEtudiant.getText()); nodImport.getAttributs().put("email", textFieldEmail.getText()); nodImport.getAttributs().put("id", textFieldIDEtudiant.getText()); + //*** Validation du ZIP node nodZIP = commandes.sujet.retourneFirstEnfantsByName("zip"); int valueNumeric = Integer.valueOf(textFieldSize.getText()); valueNumeric = valueNumeric*1000000; - valueNumeric = valueNumeric - 2000000; + valueNumeric = valueNumeric - 1500000; nodZIP.getAttributs().put("size",String.valueOf(valueNumeric)); nodZIP.getAttributs().put("nameZip",textFieldNameZIP.getText()); + commandes.analyse_size = (long) valueNumeric; //** Validation triche node nodTriche = commandes.sujet.retourneFirstEnfantsByName("plagiarism"); @@ -637,16 +639,28 @@ public final class setting extends JFrame { nodTriche.getAttributs().put("mini_number_modification",textFieldNbrMiniModification.getText()); nodTriche.getAttributs().put("nombres_modifications_simultané_maxi",textFieldMaxiModificationSimul.getText()); + commandes.number_match=Integer.valueOf(textFieldMiniCorrespondance.getText()); + commandes.mini_number_modification = Integer.valueOf(textFieldNbrMiniModification.getText()); + commandes.nombres_modifications_simultané_maxi = Integer.valueOf(textFieldMaxiModificationSimul.getText()); + + //** Validation similitude node nodSimilitude = commandes.sujet.retourneFirstEnfantsByName("text:similarity"); nodSimilitude.getAttributs().put("tolerance_text",textFieldTextSimilitude.getText()); + commandes.tolerance_text = Double.valueOf(textFieldTextSimilitude.getText()); + //** Validation des tolérance couleur node nodColor = commandes.sujet.retourneFirstEnfantsByName("color"); nodColor.getAttributs().put("tolerance_rouge",textFieldRouge.getText()); nodColor.getAttributs().put("tolerance_vert",textFieldVert.getText()); nodColor.getAttributs().put("tolerance_bleu",textFieldBleu.getText()); + commandes.tolerance_bleu = Integer.valueOf(textFieldBleu.getText()); + commandes.tolerance_rouge = Integer.valueOf(textFieldRouge.getText()); + commandes.tolerance_vert = Integer.valueOf(textFieldVert.getText()); + + JOptionPane.showMessageDialog(null, "Les informations ont bien été renseignées.
      " + "N'oubliez pas d'enregistrer votre fichier d'analyse."); diff --git a/src/menucontextuel/CreatePopupMenu.java b/src/menucontextuel/CreatePopupMenu.java deleted file mode 100644 index 45057c9..0000000 --- a/src/menucontextuel/CreatePopupMenu.java +++ /dev/null @@ -1,248 +0,0 @@ -package menucontextuel; - -import javax.swing.ImageIcon; -import javax.swing.JMenu; -import javax.swing.JPopupMenu; - -import action.actAttribut; -import action.actCoefficient; -import action.actCollapseAll; -import action.actCollapseNode; -import action.actCopy; -import action.actDeleteNode; -import action.actDownNode; -import action.actExpandAll; -import action.actExpandNode; -import action.actOu; -import action.actPaste; -import action.actRechercheAnchorPageNumberFalse; -import action.actRechercheAnchorPageNumberTrue; -import action.actRechercheContenuPlusProcheVoisinfalse; -import action.actRechercheContenuPlusProcheVoisintrue; -import action.actRechercheContenufalse; -import action.actRechercheContenutrue; -import action.actRechercheIndexfalse; -import action.actRechercheIndextrue; -import action.actUpNode; -import cXML.node; -import fenetres.create; -import list.listeDesNodesAEvaluer; -import list.listeDesNodesAllContent; -import list.listeDesNodesAvecOU; -import list.listeDesNodesContientEnfant; -import list.listeDesNodesPourEvaluationEntetePage; -import list.listeDesNodesPourEvaluerPage; -import list.listeDesNodesPourEvaluerPiedDePage; -import list.listeDesNodesRechercheByContenu; -import list.listeEvalNameNode; -import list.listeRechercheParAnchorPageNumber; -import sousmenuEvaluation.mnEvaluer; - -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) { - - - //************************************************************** - //** La popupMenu qui s'affiche sur le tree pour les niveau 1 ** - //************************************************************** - JPopupMenu mnPopupTree = new JPopupMenu(); - mnPopupTree.add( mnEvaluer.menu()); - if(nod.getLevel()==1 ) { - mnPopupTree.addSeparator(); - mnPopupTree.add(new actCoefficient()); - mnPopupTree.addSeparator(); - mnPopupTree.add(MnGroupePourFeedbackNiveau1.menu(nod)); - if(nod.getNomElt().equals("structurepage")) { - mnPopupTree.addSeparator(); - mnPopupTree.add( MnGroupeMethodeEvaluer.menu(nod)); - mnPopupTree.addSeparator(); - mnPopupTree.add(MnGroupeMethodeEvaluerMultiple.menu(nod)); - } - } - - //******************************************** - //** Pour les nodes de niveau supérieur à 1 ** - //******************************************** - if(nod.getLevel()>1 ) { - - // Le groupe représentation dans le feedback - mnPopupTree.addSeparator(); - mnPopupTree.add(MnGroupePourFeedback.menu(nod)); - - // Le groupe méthode de recherche - if(listeDesNodesRechercheByContenu.isRechercheByContenu(nod)||listeRechercheParAnchorPageNumber.isRechercheParAnchorPageNumber(nod)) { - mnPopupTree.addSeparator(); - mnPopupTree.add(mnGroupeRechercheContenu(nod)); - } - - - // Le groupe méthode évaluer le node - if(listeEvalNameNode.isNodeEvalNameNode(nod)||listeDesNodesAllContent.isAllContent(nod)|| - listeDesNodesPourEvaluationEntetePage.isEntete(nod) || listeDesNodesPourEvaluerPiedDePage.isPiedDePage(nod)|| - listeDesNodesPourEvaluerPage.isPage(nod) || listeDesNodesAEvaluer.isAEvaluer(nod)) { - mnPopupTree.addSeparator(); - mnPopupTree.add(MnGroupeMethodeEvaluer.menu(nod)); - } - - // Le groupe méthode évaluer les nodes enfants - if(listeDesNodesContientEnfant.isContientEnfant(nod) && nod.getNodes().size()>0) { - mnPopupTree.addSeparator(); - mnPopupTree.add(MnGroupeMethodeEvaluerMultiple.menu(nod)); - } - - // Le groupe accès aux attributs - mnPopupTree.addSeparator(); - mnPopupTree.add(new actAttribut()); - - // Le OU - if(listeDesNodesAvecOU.isOU(nod)) { - mnPopupTree.addSeparator(); - mnPopupTree.add(mnOu()); - } - - - } - - // Le groupe Arbre - mnPopupTree.addSeparator(); - mnPopupTree.add(mnArbre()); - mnPopupTree.addSeparator(); - mnPopupTree.add(new actCopy()); - mnPopupTree.addSeparator(); - mnPopupTree.add(new actPaste()); - mnPopupTree.addSeparator(); - mnPopupTree.add(new actDeleteNode()); - - - //************************************* - //** Applique le popMenu sur la tree ** - //************************************* - create.getTree().setComponentPopupMenu(mnPopupTree); - - } - } - - - /** - * Menu Arbre.
      - * @return - */ - private JMenu mnArbre() { - JMenu mnManageTree = new JMenu("Arbre"); - mnManageTree.add(new actUpNode()); - mnManageTree.add(new actDownNode()); - mnManageTree.addSeparator(); - mnManageTree.add(new actExpandAll()); - mnManageTree.add(new actExpandNode()); - mnManageTree.addSeparator(); - mnManageTree.add(new actCollapseAll()); - mnManageTree.add(new actCollapseNode()); - return mnManageTree; - } - - /** - * Menu rechercher par l'index.
      - * @return - */ - private JMenu mnRechercheIndex() { - JMenu mnRechercheIndex = new JMenu("Recherche par l'index"); - mnRechercheIndex.setIcon(new ImageIcon(create.class.getResource("/resources/rechercheindexmini.png"))); - mnRechercheIndex.add( new actRechercheIndextrue()) ; - mnRechercheIndex.add(new actRechercheIndexfalse()); - return mnRechercheIndex; - } - - /** - * Menu rechercher par le contenu exact.
      - * Ignore la case et les epaces avant et après.
      - * @return - */ - private JMenu mnRechercheContenuExact() { - JMenu mnRechercheContenu = new JMenu("Recherche par le contenu exact"); - mnRechercheContenu.setIcon(new ImageIcon(create.class.getResource("/resources/recherchecontenumini.png"))); - mnRechercheContenu.add( new actRechercheContenutrue()); - mnRechercheContenu.add( new actRechercheContenufalse()); - return mnRechercheContenu; - } - - /** - * Menu rechercher par le contenu du plus proche voisin.
      - * @return - */ - private JMenu mnRechercheContenuPlusProcheVoisin() { - JMenu mnRechercheContenuPlusProcheVoisin2 = new JMenu("Recherche par le plus proche voisin"); - mnRechercheContenuPlusProcheVoisin2.setIcon(new ImageIcon(create.class.getResource("/resources/recherchecontenuplusprochevoisinmini.png"))); - mnRechercheContenuPlusProcheVoisin2.add( new actRechercheContenuPlusProcheVoisintrue()); - mnRechercheContenuPlusProcheVoisin2.add(new actRechercheContenuPlusProcheVoisinfalse()); - return mnRechercheContenuPlusProcheVoisin2; - } - - - - /** - * Menu rechercher par le numéro de la page ancrer.
      - * Ce menu est utilisé pour les frames.
      - * @return - */ - private JMenu mnRechercheParNumeroPageAncrer() { - JMenu mnRechercheParNumeroPageAncrer = new JMenu("Recherche par le numéro de la page"); - mnRechercheParNumeroPageAncrer.setIcon(new ImageIcon(create.class.getResource("/resources/rechercheancragepagemini.png"))); - mnRechercheParNumeroPageAncrer.add( new actRechercheAnchorPageNumberTrue()); - mnRechercheParNumeroPageAncrer.addSeparator(); - mnRechercheParNumeroPageAncrer.add( new actRechercheAnchorPageNumberFalse()); - return mnRechercheParNumeroPageAncrer; - } - - - /** - * Menu permettant insérer le node OU.
      - * Uniquement accésible pour les nodes avec recherche par contenu.
      - * @return - */ - private JMenu mnOu() { - JMenu mnOu = new JMenu("Insérer un node OU"); - mnOu.setIcon(new ImageIcon(create.class.getResource("/resources/oumini.png"))); - mnOu.add( new actOu()); - return mnOu; - } - - - /** - * Menu regroupant les menus permettant de recherche un node par son contenu textuel.
      - * Ce menu apparaît uniquement pour les node de la liste recherche par contenu.
      - * @return - */ - private JMenu mnGroupeRechercheContenu(node nod) { - JMenu mnGroupeRechercheContenu = new JMenu("Recherche le node"); - mnGroupeRechercheContenu.setIcon( new ImageIcon(create.class.getResource("/resources/recherchemini.png"))); - - if(listeDesNodesRechercheByContenu.isRechercheByContenu(nod)) { - if(nod.retourneLesContenusEnfants("").length()>0) { - mnGroupeRechercheContenu.add(mnRechercheContenuExact()); - mnGroupeRechercheContenu.addSeparator(); - mnGroupeRechercheContenu.add(mnRechercheContenuPlusProcheVoisin()); - } - mnGroupeRechercheContenu.addSeparator(); - mnGroupeRechercheContenu.add(mnRechercheIndex()); - } - if(listeRechercheParAnchorPageNumber.isRechercheParAnchorPageNumber(nod)) { - mnGroupeRechercheContenu.addSeparator(); - mnGroupeRechercheContenu.add(mnRechercheParNumeroPageAncrer()); - } - - return mnGroupeRechercheContenu; - } - -}