analyseWriter/Menu/menucontextuel/CreatePopupMenu.java
pablo rodriguez a3a75ac012 MAJ V4.5.0
2024-04-06 16:10:30 +02:00

141 lines
4.3 KiB
Java

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.</br>
* @author pabr6
*
*/
public class CreatePopupMenu extends JPopupMenu {
private static final long serialVersionUID = 1L;
/**
* Création de la popupmenu.</br>
* @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.</br>
* Uniquement accésible pour les nodes avec recherche par contenu.</br>
* @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;
}
}