package fenetres; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Enumeration; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.JToolBar; import javax.swing.JTree; import javax.swing.KeyStroke; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; import javax.swing.tree.TreeSelectionModel; import MEPTL.commandes; import MEPTL.ecritureSujet; import cXML.Run; import cXML.node; import fenetres.create_act.actAPropos; import fenetres.create_act.actAbout; import fenetres.create_act.actAddMenuFalse; import fenetres.create_act.actAddMenuTrue; import fenetres.create_act.actAfficheInformationFichierAnalyse; import fenetres.create_act.actAllContent; import fenetres.create_act.actAttribut; import fenetres.create_act.actCoefficient; import fenetres.create_act.actCollapseAll; import fenetres.create_act.actCollapseNode; import fenetres.create_act.actCopy; import fenetres.create_act.actDeleteNode; import fenetres.create_act.actDocumentation; import fenetres.create_act.actDownNode; import fenetres.create_act.actEvalEnteteActive; import fenetres.create_act.actEvalEntetePasActive; import fenetres.create_act.actEvalInitialCreator; import fenetres.create_act.actEvalNameNodeNon; import fenetres.create_act.actEvalNameNodeOui; import fenetres.create_act.actEvalNamePageNon; import fenetres.create_act.actEvalNamePageOui; import fenetres.create_act.actEvalNameSequenceNon; import fenetres.create_act.actEvalNameSequenceOui; import fenetres.create_act.actEvalNumeroAbsoluePageNon; import fenetres.create_act.actEvalNumeroAbsoluePageOui; import fenetres.create_act.actEvalNumeroPageNon; import fenetres.create_act.actEvalNumeroPageOui; import fenetres.create_act.actEvalPiedPageActive; import fenetres.create_act.actEvalPiedPagePasActive; import fenetres.create_act.actEvalTextUserDefinedNon; import fenetres.create_act.actEvalTextUserDefinedOui; import fenetres.create_act.actEvalueFalse; import fenetres.create_act.actEvalueTrue; import fenetres.create_act.actEvaluer; import fenetres.create_act.actEvaluerStyleFalse; import fenetres.create_act.actEvaluerStyleTrue; import fenetres.create_act.actEvaluerTousEnfantsFalse; import fenetres.create_act.actEvaluerTousEnfantsTrue; import fenetres.create_act.actExit; import fenetres.create_act.actExpandAll; import fenetres.create_act.actExpandNode; import fenetres.create_act.actNewFichierAnalyse; import fenetres.create_act.actNodeFichier; import fenetres.create_act.actOpen; import fenetres.create_act.actPaste; import fenetres.create_act.actRechercheAnchorPageNumberFalse; import fenetres.create_act.actRechercheAnchorPageNumberTrue; import fenetres.create_act.actRechercheContenuPlusProcheVoisinfalse; import fenetres.create_act.actRechercheContenuPlusProcheVoisintrue; import fenetres.create_act.actRechercheContenufalse; import fenetres.create_act.actRechercheContenutrue; import fenetres.create_act.actRechercheIndexfalse; import fenetres.create_act.actRechercheIndextrue; import fenetres.create_act.actSave; import fenetres.create_act.actSaveAs; import fenetres.create_act.actSetting; import fenetres.create_act.actSupprimeTitre; import fenetres.create_act.actTitre1; import fenetres.create_act.actTitre2; import fenetres.create_act.actTitre3; import fenetres.create_act.actTitrePrincipal; import fenetres.create_act.actTotalPoint; import fenetres.create_act.actTotalPointNode; import fenetres.create_act.actTousLesNodesEvaluer; import fenetres.create_act.actTutoriels; import fenetres.create_act.actUpNode; import fenetres.create_act.actevalNameCreator; import fenetres.create_act.actsautfalse; import fenetres.create_act.actsauttrue; import list.listeEvalNameNode; import list.listeRechercheParAnchorPageNumber; import javax.swing.JToggleButton; import java.awt.GridLayout; public final class create extends JFrame { private static final long serialVersionUID = 1L; // les élément de create private static JTree tree = new JTree(); private static DefaultMutableTreeNode selectNode; private static afficheText textNodeSelect = new afficheText(); private JToolBar toolBarPrincipal; // private toolBarRecherche bRecherche; // private JCheckBoxMenuItem chckbxtoolBarRecherche; private JMenuBar menuBar = new JMenuBar(); private static JButton buttonEvaluate; private static JToggleButton tglbtnTousLesNodes; private JPanel panelPrincipal; // private JPanel panel; private static create instance; /** * Create the application. */ public create() { try { initialize(); } catch (UnsupportedLookAndFeelException e) { e.printStackTrace(); } setVisible(true); } public static create getInstance() { if (instance == null) { instance = new create(); } instance.setVisible(true); return instance; } /** * Initialize the contents of the frame. * @throws UnsupportedLookAndFeelException */ private void initialize() throws UnsupportedLookAndFeelException { setSize(1200,800); int screenWidth = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getWidth(); int screenHeight = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight(); setLocation(( (screenWidth) - getWidth()) / 2, (screenHeight - getHeight()) / 2); ImageIcon img = new ImageIcon(getClass().getResource("/evalwriter.png") ); setTitle(commandes.Titre + " " + commandes.version + " " + commandes.branch); setIconImage(img.getImage()); setLocationRelativeTo( null ); setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); // Construction et injection de la barre de menu setJMenuBar( this.createMenuBar() ); tree.setVisibleRowCount(30); // Ajoute le menu contextuel de la tree tree.setComponentPopupMenu(null); this.createToolBar(); panelPrincipal = new JPanel(); getContentPane().add(panelPrincipal, BorderLayout.NORTH); this.createPopupMenuTree(null); // The content of the window if(commandes.fichierAnalyseValide) tree = commandes.tree; JScrollPane leftScrollPane = new JScrollPane( ); leftScrollPane.setPreferredSize( new Dimension(400, 0) ); JScrollPane rightScrollPane = new JScrollPane( ); JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftScrollPane, rightScrollPane ); splitPane.setBounds(10, 10, 1364, 783); rightScrollPane.setViewportView(textNodeSelect); textNodeSelect.setFont(new Font("Monospaced", Font.PLAIN, 15)); leftScrollPane.setViewportView(tree); tree.setFont(new Font("Tahoma", Font.PLAIN, 14)); getContentPane().add(splitPane, BorderLayout.CENTER); panelPrincipal.setLayout(new GridLayout(1, 1, 0, 0)); panelPrincipal.add(toolBarPrincipal); // panelPrincipal.add(bRecherche, "cell 0 1,alignx left,aligny top"); // panelPrincipal.add(bRecherche2, "cell 0 1,alignx left,aligny top"); // panelPrincipal.add(label, "cell 2 1,alignx left,aligny center"); if(commandes.fichierAnalyseValide) constructionTree(); this.setExtendedState(MAXIMIZED_BOTH); ListenerAction(); } /** * Selection du node du tree et d'un node CXML */ private void ListenerAction() { /** * Selection d'un node dans le JTree. */ tree.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if(tree.getSelectionPath()!=null) { selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent(); node nod = (node) selectNode.getUserObject(); createPopupMenuTree(nod); textNodeSelect.refreshAffichage(nod); } } }); /** * Fermeture de la fenêtre. */ addWindowListener(new java.awt.event.WindowAdapter() { @Override public void windowClosing(java.awt.event.WindowEvent windowEvent) { if(JOptionPane.showConfirmDialog(null,"Voulez-vous quitter analyseWriter?", "Quitter", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION) { dispose(); }; } }); // chckbxtoolBarRecherche.addChangeListener(new ChangeListener() { // public void stateChanged(ChangeEvent e) { // if(chckbxtoolBarRecherche.isSelected()) { //// panelPrincipal.add(bRecherche); // panelPrincipal.add(bRecherche, "cell 0 1,alignx left,aligny top"); // bRecherche.setVisible(true); // bRecherche.setEnabled(true); // }else { // bRecherche.setVisible(false); // bRecherche.setEnabled(false); // panelPrincipal.remove(bRecherche); // } // } // }); } /** * Création du menu contextuel du tree * @return */ private void createPopupMenuTree(node nod) { if(nod!=null) { //Menu Evaluer JMenu mnEvaluer = new JMenu("Evaluer"); mnEvaluer.add(new actEvalueTrue()); mnEvaluer.add(new actEvalueFalse()); //Menu arbre 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()); //Menu Saut niveau >1 JMenu mnSaut = new JMenu("Saut de ligne avant"); mnSaut.setIcon( new ImageIcon(create.class.getResource("/resources/sautmini.png"))); mnSaut.add(new actsauttrue()); mnSaut.add(new actsautfalse()); //Menu saut niveau = 1 //Menu Saut JMenu mnSautNiveau1 = new JMenu("Saut de ligne avant"); mnSautNiveau1.setIcon( new ImageIcon(create.class.getResource("/resources/sautmini.png"))); mnSautNiveau1.add(new actsauttrue()); mnSautNiveau1.add(new actsautfalse()); //Menu Titre niveau > 1 JMenu mnTitre = new JMenu("Titre"); mnTitre.setIcon( new ImageIcon(create.class.getResource("/resources/titremini.png"))); mnTitre.add(new actTitrePrincipal()); mnTitre.add(new actTitre1()); mnTitre.add(new actTitre2()); mnTitre.add(new actTitre3()); mnTitre.addSeparator(); mnTitre.add(new actSupprimeTitre()); //Menu Titre niveau = 1 JMenu mnTitreNiveau1 = new JMenu("Titre"); mnTitreNiveau1.setIcon( new ImageIcon(create.class.getResource("/resources/titremini.png"))); mnTitreNiveau1.add(new actTitrePrincipal()); mnTitreNiveau1.add(new actTitre1()); mnTitreNiveau1.add(new actTitre2()); mnTitreNiveau1.add(new actTitre3()); mnTitreNiveau1.addSeparator(); mnTitreNiveau1.add(new actSupprimeTitre()); //Menu ajoute un lien de menu niveau 1 JMenu mnAddMenuNiveau1= new JMenu("Lien"); //addMenu mnAddMenuNiveau1.setIcon( new ImageIcon(create.class.getResource("/resources/addmenumini.png"))); mnAddMenuNiveau1.add(new actAddMenuTrue()); mnAddMenuNiveau1.add(new actAddMenuFalse()); //Menu ajoute un lien de menu niveau sup 1 JMenu mnAddMenuNiveauSup1= new JMenu("Lien"); //addMenu mnAddMenuNiveauSup1.setIcon( new ImageIcon(create.class.getResource("/resources/addmenumini.png"))); mnAddMenuNiveauSup1.add(new actAddMenuTrue()); mnAddMenuNiveauSup1.add(new actAddMenuFalse()); //Menu recherche par l'index JMenu mnRechercheIndex = new JMenu("Recherche par l'index"); mnRechercheIndex.setIcon(new ImageIcon(create.class.getResource("/resources/rechercheindexmini.png"))); mnRechercheIndex.add( new actRechercheIndextrue()) ; mnRechercheIndex.addSeparator(); mnRechercheIndex.add(new actRechercheIndexfalse()); //Menu recherche par le contenu Exact JMenu mnRechercheContenu = new JMenu("Recherche par le contenu exact"); mnRechercheContenu.setIcon(new ImageIcon(create.class.getResource("/resources/recherchecontenumini.png"))); mnRechercheContenu.add( new actRechercheContenutrue()); mnRechercheContenu.addSeparator(); mnRechercheContenu.add( new actRechercheContenufalse()); //Menu recherche par le contenu plus proche voisin JMenu mnRechercheContenuPlusProcheVoisin = new JMenu("Recherche par le plus proche voisin"); mnRechercheContenuPlusProcheVoisin.setIcon(new ImageIcon(create.class.getResource("/resources/recherchecontenuplusprochevoisinmini.png"))); mnRechercheContenuPlusProcheVoisin.add( new actRechercheContenuPlusProcheVoisintrue()); mnRechercheContenuPlusProcheVoisin.addSeparator(); mnRechercheContenuPlusProcheVoisin.add(new actRechercheContenuPlusProcheVoisinfalse()); //Menu analyseStyle (évaluer le style du paragraphe) JMenu mnAnalyseStyle = new JMenu("Evaluer le style"); mnAnalyseStyle.setIcon(new ImageIcon(create.class.getResource("/resources/evaluerstylemini.png"))); mnAnalyseStyle.add(new actEvaluerStyleTrue()); mnAnalyseStyle.addSeparator(); mnAnalyseStyle.add( new actEvaluerStyleFalse()); //Menu evalEntetePasActive (pour les style:header-style) JMenu mnevalEntetePasActive = new JMenu("Entête pas activé"); mnevalEntetePasActive.setIcon(new ImageIcon(create.class.getResource("/resources/entetenonmini.png"))); mnevalEntetePasActive.add(new actEvalEntetePasActive()); mnevalEntetePasActive.add(new actEvalEnteteActive()); //Menu evalPiedPagePasActive (pour les style:footer-style) JMenu mnEvalPiedPagePasActive = new JMenu("Pied page pas activé"); mnEvalPiedPagePasActive.setIcon(new ImageIcon(create.class.getResource("/resources/piedpagenonmini.png"))); mnEvalPiedPagePasActive.add(new actEvalPiedPagePasActive()); mnEvalPiedPagePasActive.add(new actEvalPiedPageActive()); //Menu Evaluer présence d'un node pour les nodes de niveau > 1 JMenu mnEvalNameNode = new JMenu("Evaluer la présence du node"); mnEvalNameNode.setIcon(new ImageIcon(create.class.getResource("/resources/evalnodemini.png"))); mnEvalNameNode.add(new actEvalNameNodeOui()); mnEvalNameNode.add(new actEvalNameNodeNon()); //Menu evalNameSequence (pour les text:sequence-decl) JMenu mnEvalNameSequence = new JMenu("Evaluer le nom de la séquence"); mnEvalNameSequence.setIcon(new ImageIcon(create.class.getResource("/resources/evalnamesequencemini.png"))); mnEvalNameSequence.add(new actEvalNameSequenceOui()); mnEvalNameSequence.add(new actEvalNameSequenceNon()); //Menu evalNamePage (pour les nodes page) JMenu mnEvalNamePage = new JMenu("Evaluer le nom de la page"); mnEvalNamePage.setIcon(new ImageIcon(create.class.getResource("/resources/evalnamepagemini.png"))); mnEvalNamePage.add(new actEvalNamePageOui()); mnEvalNamePage.add(new actEvalNamePageNon()); //Menu evalNumeroPage (pour les nodes page) JMenu mnEvalNumeroPage = new JMenu("Evaluer le numéro de la page"); mnEvalNumeroPage.setIcon(new ImageIcon(create.class.getResource("/resources/evalnumeropagemini.png"))); mnEvalNumeroPage.add(new actEvalNumeroPageOui()); mnEvalNumeroPage.add(new actEvalNumeroPageNon()); //Menu evalNumeroPage (pour les nodes page) JMenu mnEvalNumeroAbsoluePage = new JMenu("Evaluer le numéro absolue de la page"); mnEvalNumeroAbsoluePage.setIcon(new ImageIcon(create.class.getResource("/resources/evalnumeroabsoluepagemini.png"))); mnEvalNumeroAbsoluePage.add(new actEvalNumeroAbsoluePageOui()); mnEvalNumeroAbsoluePage.add(new actEvalNumeroAbsoluePageNon()); //Menu evalTextUserDefined JMenu mnEvalTextUserDefined = new JMenu("Evaluer la valeur de la propriété"); mnEvalTextUserDefined.setIcon(new ImageIcon(create.class.getResource("/resources/evaltextuserdefinedmini.png"))); mnEvalTextUserDefined.add(new actEvalTextUserDefinedOui()); mnEvalTextUserDefined.add(new actEvalTextUserDefinedNon()); //Menue Recherche par le numéro de la page ancrer JMenu mnRechercheParNumeroPageAncrer = new JMenu("Recherche par le numéro de la page"); mnRechercheParNumeroPageAncrer.setIcon(new ImageIcon(create.class.getResource("/resources/rechercheancragepagemini.png"))); mnRechercheParNumeroPageAncrer.add( new actRechercheAnchorPageNumberTrue()); mnRechercheParNumeroPageAncrer.addSeparator(); mnRechercheParNumeroPageAncrer.add( new actRechercheAnchorPageNumberFalse()); //Menu Représentation dans le feedback JMenu mnPourFeedback = new JMenu("Pour représentation feedback"); mnPourFeedback.add(mnSaut); mnPourFeedback.addSeparator(); mnPourFeedback.add(mnTitre); mnPourFeedback.addSeparator(); mnPourFeedback.add(mnAddMenuNiveauSup1); //*************************** //** Menu node niveau = 1 *** //*************************** JMenu mnNiveau1 = new JMenu("Attributs aW, niveau 1 "); mnNiveau1.setIcon( new ImageIcon(create.class.getResource("/resources/attributanalysewritermini.png"))); mnNiveau1.add(new actCoefficient()); mnNiveau1.addSeparator(); mnNiveau1.add(mnSautNiveau1); mnNiveau1.addSeparator(); mnNiveau1.add(mnTitreNiveau1); mnNiveau1.addSeparator(); mnNiveau1.add(mnAddMenuNiveau1); //********************************************* //** La popupMenu qui s'affiche sur le tree *** //********************************************* JPopupMenu mnPopupTree = new JPopupMenu(); mnPopupTree.add(mnEvaluer); if(nod.getLevel()==1 ) { mnPopupTree.addSeparator(); mnPopupTree.add(mnNiveau1); } //Pour les nodes de niveau supérieur à 1 if(nod.getLevel()>1 ) { mnPopupTree.addSeparator(); mnPopupTree.add(mnPourFeedback); if(listeEvalNameNode.isNodeEvalNameNode(nod)) { mnPopupTree.addSeparator(); mnPopupTree.add(mnEvalNameNode); } if(nod.retourneLesContenusEnfants("").length()>0) { mnPopupTree.addSeparator(); mnPopupTree.add(new actAllContent()); } if(nod.getNomElt().equals("meta:initial-creator")) { mnPopupTree.addSeparator(); mnPopupTree.add(new actEvalInitialCreator()); } if(nod.getNomElt().equals("dc:creator")) { mnPopupTree.addSeparator(); mnPopupTree.add(new actevalNameCreator()); } if(listeRechercheParAnchorPageNumber.isRechercheParAnchorPageNumber(nod)) { mnPopupTree.addSeparator(); mnPopupTree.add(mnRechercheParNumeroPageAncrer); } if(nod.getNomElt().equals("style:header-style")) { mnPopupTree.addSeparator(); mnPopupTree.add(mnevalEntetePasActive); } if(nod.getNomElt().equals("style:footer-style")) { mnPopupTree.addSeparator(); mnPopupTree.add(mnEvalPiedPagePasActive); } if(nod.getNomElt().equals("text:sequence-decl")) { mnPopupTree.addSeparator(); mnPopupTree.add(mnEvalNameSequence); } if(nod.getNomElt().equals("page")) { mnPopupTree.addSeparator(); mnPopupTree.add(mnEvalNamePage); mnPopupTree.addSeparator(); mnPopupTree.add(mnEvalNumeroPage); mnPopupTree.addSeparator(); mnPopupTree.add(mnEvalNumeroAbsoluePage); } if(nod.getNomElt().equals("text:user-defined") && nod.chemin().contains("structurepage")) { mnPopupTree.addSeparator(); mnPopupTree.add(mnEvalTextUserDefined); } if(ecritureSujet.listeDesNodesByRecherche(nod.getNomElt())) { mnPopupTree.addSeparator(); mnPopupTree.add(mnRechercheIndex); mnPopupTree.addSeparator(); mnPopupTree.add(mnRechercheContenu); mnPopupTree.addSeparator(); mnPopupTree.add(mnRechercheContenuPlusProcheVoisin); mnPopupTree.addSeparator(); mnPopupTree.add(mnAnalyseStyle); } mnPopupTree.addSeparator(); mnPopupTree.add(new actAttribut()); } mnPopupTree.addSeparator(); mnPopupTree.add(mnManageTree); mnPopupTree.addSeparator(); mnPopupTree.add(new actCopy()); mnPopupTree.addSeparator(); mnPopupTree.add(new actPaste()); mnPopupTree.addSeparator(); mnPopupTree.add(new actDeleteNode()); tree.setComponentPopupMenu(mnPopupTree); } } /* Methode de construction de la barre de menu */ private JMenuBar createMenuBar() { // La barre de menu à proprement parler menuBar = new JMenuBar(); // Définition du menu déroulant "File" et de son contenu JMenu mnuFile = new JMenu( "Fichier" ); mnuFile.setMnemonic( 'F' ); /*JMenuItem mnuNewFile =*/ mnuFile.add( new actOpen() ); mnuFile.add( new actNewFichierAnalyse() ); mnuFile.addSeparator(); mnuFile.add( new actSave() ); mnuFile.add( new actSaveAs() ); mnuFile.addSeparator(); mnuFile.add( new actExit() ); menuBar.add(mnuFile); // Définition du menu déroulant "Edit" et de son contenu JMenu mnuEdit = new JMenu( "Edition" ); mnuEdit.setMnemonic( 'E' ); mnuEdit.add( actUndo ); mnuEdit.add( actRedo ); mnuEdit.addSeparator(); mnuEdit.add( new actCopy() ); mnuEdit.add( actCut ); mnuEdit.add( new actPaste() ); menuBar.add(mnuEdit); // chckbxtoolBarRecherche = new JCheckBoxMenuItem("Barre outils recherche node"); // chckbxtoolBarRecherche.setSelected(true); // mnAffiche.add(chckbxtoolBarRecherche); // Définition du menu Node JMenu mnNode = new JMenu("Modifier"); mnNode.add( new actNodeFichier() ); mnNode.addSeparator(); menuBar.add(mnNode); //Menu arbre 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()); mnNode.add(mnManageTree); mnNode.addSeparator(); //Définition Evaluer JMenu mnEvaluer = new JMenu("Evaluer"); mnEvaluer.add(new actEvalueTrue()); mnEvaluer.add(new actEvalueFalse()); mnNode.add(mnEvaluer); // Définition du menu déroulant "Création évaluation" et de son contenu JMenu mnuExercice = new JMenu( "Création évaluation" ); mnuExercice.setMnemonic( 'N' ); mnuExercice.add(new actEvaluer()); menuBar.add(mnuExercice); // Définition du menu déroulant "Help" et de son contenu JMenu mnuHelp = new JMenu( "Aide" ); mnuHelp.setMnemonic( 'H' ); mnuHelp.add( new actAPropos()); mnuHelp.add( new actDocumentation()); menuBar.add( mnuHelp ); return menuBar; } /* Methode de construction de la barre d'outils */ private void createToolBar() { toolBarPrincipal = new JToolBar(); toolBarPrincipal.setFloatable(false); toolBarPrincipal.setRollover(true); toolBarPrincipal.setName("outils principaux"); JButton buttonLoadFile = toolBarPrincipal.add( new actOpen() ); buttonLoadFile.setIcon(new ImageIcon(create.class.getResource("/resources/fichierAnalyse.png"))); buttonLoadFile.setHideActionText(true); toolBarPrincipal.add(buttonLoadFile); JButton btnNewFichierAnalyse = toolBarPrincipal.add( new actNewFichierAnalyse() ); btnNewFichierAnalyse.setIcon(new ImageIcon(create.class.getResource("/resources/fichierODF.png"))); btnNewFichierAnalyse.setHideActionText(true); toolBarPrincipal.add(btnNewFichierAnalyse); toolBarPrincipal.addSeparator(); buttonEvaluate = toolBarPrincipal.add( new actEvaluer() ); buttonEvaluate.setIcon(new ImageIcon(create.class.getResource("/resources/evaluate.png"))); toolBarPrincipal.addSeparator(); JButton btnAfficheInformationFichierAnalyse = toolBarPrincipal.add( new actAfficheInformationFichierAnalyse() ); btnAfficheInformationFichierAnalyse.setIcon(new ImageIcon(create.class.getResource("/resources/fichierAnalyseInfo.png"))); btnAfficheInformationFichierAnalyse.setHideActionText(true); toolBarPrincipal.add(btnAfficheInformationFichierAnalyse); JButton btnNodeFichier = toolBarPrincipal.add( new actNodeFichier() ); btnNodeFichier.setIcon(new ImageIcon(create.class.getResource("/resources/nodeFichier.png"))); btnNodeFichier.setHideActionText(true); toolBarPrincipal.add(btnNodeFichier); JButton btnSetting = toolBarPrincipal.add( new actSetting()); btnSetting.setIcon(new ImageIcon(create.class.getResource("/resources/setting.png"))); toolBarPrincipal.add(btnSetting); toolBarPrincipal.addSeparator(); JButton btnEvaluerTrue = toolBarPrincipal.add( new actEvalueTrue() ); btnEvaluerTrue.setIcon(new ImageIcon(create.class.getResource("/resources/evaluertrue.png"))); btnEvaluerTrue.setHideActionText(true); toolBarPrincipal.add(btnEvaluerTrue); JButton btnEvaluerFalse = toolBarPrincipal.add(new actEvalueFalse() ); btnEvaluerFalse.setIcon(new ImageIcon(create.class.getResource("/resources/evaluerfalse.png"))); btnEvaluerFalse.setHideActionText(true); toolBarPrincipal.add(btnEvaluerFalse); JButton btnEvaluerTouteLaBrancheEtLesEnfantTrue = toolBarPrincipal.add( new actEvaluerTousEnfantsTrue() ); btnEvaluerTouteLaBrancheEtLesEnfantTrue.setIcon(new ImageIcon(create.class.getResource("/resources/evaluertouslesenfants.png"))); btnEvaluerTouteLaBrancheEtLesEnfantTrue.setHideActionText(true); toolBarPrincipal.add(btnEvaluerTouteLaBrancheEtLesEnfantTrue); JButton btnEvaluerTouteLaBrancheEtLesEnfantFalse = toolBarPrincipal.add( new actEvaluerTousEnfantsFalse() ); btnEvaluerTouteLaBrancheEtLesEnfantFalse.setIcon(new ImageIcon(create.class.getResource("/resources/evaluertouslesenfantsfaux.png"))); btnEvaluerTouteLaBrancheEtLesEnfantTrue.setHideActionText(true); toolBarPrincipal.add(btnEvaluerTouteLaBrancheEtLesEnfantFalse); toolBarPrincipal.addSeparator(); JButton btnAttribut = new JButton(new actAttribut()); btnAttribut.setText(""); btnAttribut.setIcon(new ImageIcon(create.class.getResource("/resources/attribut.png"))); toolBarPrincipal.add(btnAttribut); toolBarPrincipal.addSeparator(); JButton btnTotalPoint = new JButton(new actTotalPoint()); btnTotalPoint.setToolTipText("Nombre de point total dans l'exercice."); btnTotalPoint.setText(""); btnTotalPoint.setIcon(new ImageIcon(create.class.getResource("/resources/totalpoint.png"))); toolBarPrincipal.add(btnTotalPoint); JButton btnTotalPointNode = toolBarPrincipal.add( new actTotalPointNode() ); btnTotalPointNode.setIcon(new ImageIcon(create.class.getResource("/resources/totalpointnode.png"))); btnTotalPointNode.setHideActionText(true); toolBarPrincipal.add(btnTotalPointNode); toolBarPrincipal.addSeparator(); tglbtnTousLesNodes = new JToggleButton(""); tglbtnTousLesNodes.setAction(new actTousLesNodesEvaluer()); tglbtnTousLesNodes.setIcon(new ImageIcon(create.class.getResource("/resources/lesnodesevaluer.png"))); toolBarPrincipal.add(tglbtnTousLesNodes); toolBarPrincipal.addSeparator(); JButton btnAbout = toolBarPrincipal.add( new actAbout() ); btnAbout.setIcon(new ImageIcon(create.class.getResource("/resources/apropos.png"))); btnAbout.setHideActionText( true ); toolBarPrincipal.add(btnAbout); JButton btnNewButton = toolBarPrincipal.add( new actTutoriels()); btnNewButton.setIcon(new ImageIcon(create.class.getResource("/resources/tutoriel.png"))); btnNewButton.setHideActionText(true); toolBarPrincipal.add(btnNewButton); toolBarPrincipal.addSeparator(); JButton buttonExit = toolBarPrincipal.add( new actExit() ); buttonExit.setHideActionText( true ); } /** * */ private AbstractAction actUndo = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Annuler" ); putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/undo.png") ) ); putValue( Action.MNEMONIC_KEY, KeyEvent.VK_U ); putValue( Action.SHORT_DESCRIPTION, "Annuler (CTRL+Z)" ); putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_Z, KeyEvent.CTRL_DOWN_MASK ) ); } @Override public void actionPerformed( ActionEvent e ) { System.out.println( "Undo" ); } }; /** * */ private AbstractAction actRedo = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Refaire" ); putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/redo.png") ) ); putValue( Action.MNEMONIC_KEY, KeyEvent.VK_R ); putValue( Action.SHORT_DESCRIPTION, "Refaire (CTRL+U)" ); putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_U, KeyEvent.CTRL_DOWN_MASK ) ); } @Override public void actionPerformed( ActionEvent e ) { System.out.println( "Redo" ); } }; /** * */ private AbstractAction actCut = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Couper" ); putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/cut.png") ) ); putValue( Action.MNEMONIC_KEY, KeyEvent.VK_T ); putValue( Action.SHORT_DESCRIPTION, "Couper (CTRL+X)" ); putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.CTRL_DOWN_MASK ) ); } @Override public void actionPerformed( ActionEvent e ) { System.out.println( "Cut" ); } }; public void closeWindows() { if(JOptionPane.showConfirmDialog(null,"Voulez-vous quitter analyseWriter?", "Quitter", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION) { dispose(); } } public void closeDirectlyWindows() { this.dispose(); } // public static void expandOrCollapsePath (JTree tree,TreePath treePath,int level,int currentLevel,boolean expand) { // System.out.println("Exp level="+currentLevel+", exp="+expand + ", level=" + level); // if (expand && level<=currentLevel && level>0) return; // // TreeNode treeNode = ( TreeNode ) treePath.getLastPathComponent(); // TreeModel treeModel=tree.getModel(); // if ( treeModel.getChildCount(treeNode) >= 0 ) { // for ( int i = 0; i < treeModel.getChildCount(treeNode); i++ ) { // TreeNode n = ( TreeNode )treeModel.getChild(treeNode, i); // TreePath path = treePath.pathByAddingChild( n ); // expandOrCollapsePath(tree,path,level,currentLevel+1,expand); // } // if (!expand && currentLevel topLevelNodes = ((TreeNode) tree.getModel().getRoot()).children(); while(topLevelNodes.hasMoreElements()) { DefaultMutableTreeNode N = (DefaultMutableTreeNode) topLevelNodes.nextElement(); tree.expandPath(new TreePath(N.getPath())); expandNode( N); } } public static void collapseAll() { Enumeration topLevelNodes = ((TreeNode) tree.getModel().getRoot()).children(); while(topLevelNodes.hasMoreElements()) { DefaultMutableTreeNode N = (DefaultMutableTreeNode) topLevelNodes.nextElement(); tree.collapsePath(new TreePath(N.getPath())); collapseNode(N); } } public static void expandNode(DefaultMutableTreeNode N) { Enumeration topLevelNodes = ((TreeNode) N).children(); while(topLevelNodes.hasMoreElements()) { DefaultMutableTreeNode N1 = (DefaultMutableTreeNode) topLevelNodes.nextElement(); tree.expandPath(new TreePath(N1.getPath())); expandNode(N1); } } public static void collapseNode(DefaultMutableTreeNode N) { Enumeration topLevelNodes = ((TreeNode) N).children(); while(topLevelNodes.hasMoreElements()) { DefaultMutableTreeNode N1 = (DefaultMutableTreeNode) topLevelNodes.nextElement(); tree.collapsePath(new TreePath(N1.getPath())); collapseNode( N1 ); } tree.collapsePath(new TreePath(N.getPath())); } // void saySomething(String eventDescription, TreeExpansionEvent e) { // System.out.println(eventDescription + "; " + "path = " + e.getPath()); // } // // // // Required by TreeExpansionListener interface. // public void treeExpanded(TreeExpansionEvent e) { // saySomething("Tree-expanded event detected", e); // } // // // Required by TreeExpansionListener interface. // public void treeCollapsed(TreeExpansionEvent e) { // saySomething("Tree-collapsed event detected", e); // } } //class MyTreeWillExpandListener implements TreeWillExpandListener { // // // public void treeWillExpand(TreeExpansionEvent evt) throws ExpandVetoException { // JTree tree = (JTree) evt.getSource(); // // TreePath path = evt.getPath(); // boolean veto = false; // if (veto) { // throw new ExpandVetoException(evt); // } // } // // public void treeWillCollapse(TreeExpansionEvent evt) throws ExpandVetoException { // JTree tree = (JTree) evt.getSource(); // // TreePath path = evt.getPath(); // boolean veto = false; // if (veto) { // throw new ExpandVetoException(evt); // } // } //} //class MyTreeExpansionListener implements TreeExpansionListener { // // public ArrayList Chemin = new ArrayList(); // // public ArrayList getChemin() { // return Chemin; // } // // public void setChemin(ArrayList chemin) { // Chemin = chemin; // } // // public void treeExpanded(TreeExpansionEvent evt) { // TreePath path = evt.getPath(); // Chemin.add(path); // System.out.println("treeExpanded"); // } // // public void treeCollapsed(TreeExpansionEvent evt) { // TreePath path = evt.getPath(); // Chemin.remove(path); // System.out.println("treeCollapsed"); // // } //}