package app; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Desktop; import java.awt.Dimension; import java.awt.Font; import java.awt.SystemColor; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.File; import java.io.IOException; import java.util.Enumeration; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JEditorPane; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; 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.JSeparator; import javax.swing.JSplitPane; import javax.swing.JTabbedPane; import javax.swing.JTextField; import javax.swing.JToolBar; import javax.swing.JTree; import javax.swing.KeyStroke; import javax.swing.SwingConstants; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.filechooser.FileNameExtensionFilter; 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 javax.xml.parsers.ParserConfigurationException; import org.xml.sax.SAXException; import MEPTL.commandes; import MEPTL.ecritureSujet; import MEPTL.meptl; import MEPTL.verificationFichierAnalyse; import cXML.Run; import cXML.node; import java.awt.event.InputEvent; import javax.swing.tree.DefaultTreeModel; public class create extends JFrame { private static final long serialVersionUID = 1L; // les élément de create private JTree tree = new JTree(); private JEditorPane textNodeSelect = new JEditorPane(); private JToolBar toolBar = new JToolBar(); private JMenuBar menuBar = new JMenuBar(); private JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); // les éléments de l'évaluation private JTextField textFieldTitreAvantLeSaut = new JTextField(); private JComboBox comboBoxAttribut = new JComboBox(); private JEditorPane editorPaneInformationNode = new JEditorPane(); private JEditorPane editorPaneInfosAttribut = new JEditorPane(); private JEditorPane editorPaneInfosNode = new JEditorPane(); private JCheckBox chckbxEvaluerNode = new JCheckBox("Evaluer un ou des éléments de ce node."); private JCheckBox chckbxSautApresTitre = new JCheckBox("Insérer un titre puis un saut avant l'évaluation de ce node."); private JCheckBox chckbxEvaluerPresenceDeCeNode = new JCheckBox("Evaluer la présence de ce node."); private JTextField textField_NombrePointEvalThisNode = new JTextField(); private JCheckBox chckbxEvaluerAttribut = new JCheckBox("Evaluer l'attribut"); private JTextField textField_NombrePointAttribut = new JTextField(); private JEditorPane editorPaneAttribut = new JEditorPane(); private JEditorPane editorPaneContenuNode = new JEditorPane(); private JCheckBox chckbxEvaluerContenuDuNode = new JCheckBox("Evaluer le contenu du node ci-dessous"); private JTextField textFieldNombrePointContenuNode = new JTextField(); private JButton btnEtendu = new JButton("→ Tolérance"); private JButton btnOuExact = new JButton("¦ OU"); private JButton btnContient = new JButton("{ Contient }"); private JButton btnColor = new JButton("# Couleur"); private JButton btnBordure = new JButton("Bordure"); private String messg = "Valeur de l'attribut - fonctions - évaluateur et point"; private JLabel lblType = new JLabel(messg); private JEditorPane editorPaneContenuEnfant = new JEditorPane(); private JTextField textField_DistanceSimilitude = new JTextField(); private JTextField textFieldNbrPointContenuEnfant = new JTextField(); private JCheckBox chckbxEvaluerSimilitude = new JCheckBox("Evaluer le contenu complet avec les nodes enfants (Similitude)"); private JCheckBox chckbxIgnoreValeurNumerique = new JCheckBox("Ignorer les valeurs numériques"); private JCheckBox chckbxIgnoreLaCasse = new JCheckBox("Ignore la casse"); private JCheckBox chckbxIgnoreLesCaracteresSpeciaux = new JCheckBox("Ignore les caractères spéciaux"); private final JPanel panelStyleStructure = new JPanel(); private String messg2 = "Le style du paragraphe est : "; private JLabel lblLeStyleDeParagrapheDuParagraphe = new JLabel(messg2); private final JLabel lblAttribut_analyseStyle = new JLabel("Sélectionner l'attribut"); private final JComboBox comboBoxAttribut_analyseStyle = new JComboBox(); private JCheckBox chckbx_EvaluateStyleDeParagraphe = new JCheckBox("Evaluer le style de paragraphe"); private JTextField textField_evaluateStyleParagrapheAttributNbrPoint = new JTextField(); private JEditorPane editorPane_evaluateStyleParagrapheAttribut = new JEditorPane(); private JLabel lbl_NombrePointAttributEvaluationStyleParagraphe = new JLabel("Nombre point"); private JScrollPane scrollPane_evaluationAttributStyleParagraphe = new JScrollPane(); /** * Create the application. */ public create() { try { initialize(); } catch (UnsupportedLookAndFeelException e) { e.printStackTrace(); } setVisible(true); } /** * Initialize the contents of the frame. * @throws UnsupportedLookAndFeelException */ private void initialize() throws UnsupportedLookAndFeelException { // UIManager.setLookAndFeel(new NimbusLookAndFeel()); /*Chargement des images*/ ImageIcon img1 = new ImageIcon(getClass().getResource("/attribut.png") ); ImageIcon img3 = new ImageIcon(getClass().getResource("/property.png") ); ImageIcon img4 = new ImageIcon(getClass().getResource("/content.png") ); ImageIcon img2 = new ImageIcon(getClass().getResource("/structurepage.png") ); //frame = new JFrame(); // System.out.println(this.getClass()); // this.setExtendedState(MAXIMIZED_BOTH); setSize(1400,920); //setExtendedState(getExtendedState()|JFrame.MAXIMIZED_BOTH ); // setTitle("analyseWriter - Evaluer les fichiers des étudiants"); ImageIcon img = new ImageIcon(getClass().getResource("/evalwriter.png") ); setIconImage(img.getImage()); setLocationRelativeTo( null ); // frame.setBounds(0, 0, 860, 500); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); // Construction et injection de la barre de menu setJMenuBar( this.createMenuBar() ); tree.setModel(new DefaultTreeModel( new DefaultMutableTreeNode("Charger un fichier d'analyse") { { DefaultMutableTreeNode node_1; add(new DefaultMutableTreeNode("node fichier")); node_1 = new DefaultMutableTreeNode("node style"); node_1.add(new DefaultMutableTreeNode("paragraphe")); node_1.add(new DefaultMutableTreeNode("caractère")); add(node_1); node_1 = new DefaultMutableTreeNode("strcturepage"); node_1.add(new DefaultMutableTreeNode("page")); node_1.add(new DefaultMutableTreeNode("page")); node_1.add(new DefaultMutableTreeNode("page")); node_1.add(new DefaultMutableTreeNode("page")); add(node_1); } } )); tree.setVisibleRowCount(30); // Ajoute le menu contextuel de la tree tree.setComponentPopupMenu(null); // Construction et injection de la barre d'outils JPanel contentPane = (JPanel) getContentPane(); this.createToolBar(); this.createPopupMenuTree(null); getContentPane().setLayout(new BorderLayout(2, 2)); contentPane.add( toolBar, BorderLayout.NORTH ); // The content of the window if(commandes.fichierAnalyseValide) tree = commandes.tree; // JTextArea J = new JTextArea(); // contentPane.add(J,BorderLayout.EAST); JPanel panel = new JPanel(); getContentPane().add(panel, BorderLayout.CENTER); panel.setLayout(null); tabbedPane.setBounds(816, 10, 600, 785); panel.add(tabbedPane); JPanel panelProperties = new JPanel(); panelProperties.setLayout(null); tabbedPane.addTab("Propriétés", img3, panelProperties, null); chckbxEvaluerNode.setFont(new Font("Tahoma", Font.BOLD, 12)); chckbxEvaluerNode.setBounds(6, 144, 285, 23); panelProperties.add(chckbxEvaluerNode); chckbxSautApresTitre.setFont(new Font("Tahoma", Font.BOLD, 12)); chckbxSautApresTitre.setBounds(6, 342, 461, 23); panelProperties.add(chckbxSautApresTitre); textFieldTitreAvantLeSaut.setFont(new Font("Tahoma", Font.PLAIN, 12)); textFieldTitreAvantLeSaut.setColumns(10); textFieldTitreAvantLeSaut.setBounds(10, 395, 536, 33); panelProperties.add(textFieldTitreAvantLeSaut); JLabel lblNewLabel_1 = new JLabel("Texte à insérer avant l'évaluation de ce node. (Si un saut est inséré)"); lblNewLabel_1.setFont(new Font("Tahoma", Font.BOLD, 12)); lblNewLabel_1.setBounds(6, 372, 511, 23); panelProperties.add(lblNewLabel_1); chckbxEvaluerPresenceDeCeNode.setFont(new Font("Tahoma", Font.BOLD, 12)); chckbxEvaluerPresenceDeCeNode.setBounds(6, 458, 226, 23); panelProperties.add(chckbxEvaluerPresenceDeCeNode); JScrollPane scrollPane_1 = new JScrollPane(); scrollPane_1.setBounds(10, 11, 536, 125); panelProperties.add(scrollPane_1); editorPaneInfosNode.setEditable(false); scrollPane_1.setViewportView(editorPaneInfosNode); editorPaneInfosNode.setText((String) null); JScrollPane scrollPane_2 = new JScrollPane(); scrollPane_2.setBounds(10, 235, 536, 100); panelProperties.add(scrollPane_2); scrollPane_2.setViewportView(editorPaneInformationNode); editorPaneInformationNode.setText((String) null); editorPaneInformationNode.setEditable(false); textField_NombrePointEvalThisNode.setText("1"); textField_NombrePointEvalThisNode.setHorizontalAlignment(SwingConstants.CENTER); textField_NombrePointEvalThisNode.setFont(new Font("Tahoma", Font.BOLD, 12)); textField_NombrePointEvalThisNode.setColumns(10); textField_NombrePointEvalThisNode.setBounds(360, 459, 45, 20); panelProperties.add(textField_NombrePointEvalThisNode); JLabel lblNbrePointsPourEvaluerCeNode = new JLabel("Nbre point"); lblNbrePointsPourEvaluerCeNode.setFont(new Font("Tahoma", Font.BOLD, 12)); lblNbrePointsPourEvaluerCeNode.setBounds(271, 462, 79, 14); panelProperties.add(lblNbrePointsPourEvaluerCeNode); JPanel panelAttributs = new JPanel(); panelAttributs.setLayout(null); tabbedPane.addTab("Attributs", img1, panelAttributs, null); comboBoxAttribut.setToolTipText("Les attributs présents dans ce node."); comboBoxAttribut.setMaximumRowCount(10); comboBoxAttribut.setFont(new Font("Tahoma", Font.PLAIN, 14)); comboBoxAttribut.setBounds(10, 31, 510, 31); panelAttributs.add(comboBoxAttribut); JScrollPane scrollPane_3 = new JScrollPane(); scrollPane_3.setBounds(10, 201, 536, 135); panelAttributs.add(scrollPane_3); scrollPane_3.setViewportView(editorPaneAttribut); editorPaneAttribut.setFont(new Font("Tahoma", Font.BOLD, 16)); JLabel lblAttribut = new JLabel("Sélectionner l'attribut"); lblAttribut.setFont(new Font("Tahoma", Font.BOLD, 12)); lblAttribut.setBounds(10, 11, 149, 22); panelAttributs.add(lblAttribut); textField_NombrePointAttribut.setText("0"); textField_NombrePointAttribut.setHorizontalAlignment(SwingConstants.CENTER); textField_NombrePointAttribut.setFont(new Font("Tahoma", Font.BOLD, 12)); textField_NombrePointAttribut.setColumns(10); textField_NombrePointAttribut.setBounds(114, 126, 57, 31); panelAttributs.add(textField_NombrePointAttribut); JLabel lblNewLabel = new JLabel("Nombre point"); lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 12)); lblNewLabel.setBounds(16, 134, 94, 14); panelAttributs.add(lblNewLabel); chckbxEvaluerAttribut.setFont(new Font("Tahoma", Font.BOLD, 14)); chckbxEvaluerAttribut.setBounds(10, 97, 269, 23); panelAttributs.add(chckbxEvaluerAttribut); JLabel lblAvertissement = new JLabel(""); lblAvertissement.setVerticalAlignment(SwingConstants.TOP); lblAvertissement.setForeground(Color.RED); lblAvertissement.setBounds(153, 11, 393, 22); panelAttributs.add(lblAvertissement); lblType.setVerticalAlignment(SwingConstants.TOP); lblType.setHorizontalAlignment(SwingConstants.LEFT); lblType.setBounds(10, 168, 547, 22); panelAttributs.add(lblType); JScrollPane scrollPane_3_1 = new JScrollPane(); scrollPane_3_1.setBounds(10, 389, 536, 323); panelAttributs.add(scrollPane_3_1); scrollPane_3_1.setViewportView(editorPaneInfosAttribut); btnEtendu.setBounds(10, 347, 100, 31); panelAttributs.add(btnEtendu); btnOuExact.setBounds(120, 347, 90, 30); panelAttributs.add(btnOuExact); btnContient.setBounds(220, 347, 100, 30); panelAttributs.add(btnContient); btnColor.setBounds(330, 347, 90, 30); panelAttributs.add(btnColor); btnBordure.setBounds(430, 347, 90, 30); panelAttributs.add(btnBordure); JPanel panelContenu = new JPanel(); panelContenu.setLayout(null); tabbedPane.addTab("Contenu", img4, panelContenu, null); JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(10, 67, 530, 86); panelContenu.add(scrollPane); editorPaneContenuNode.setEditable(false); scrollPane.setViewportView(editorPaneContenuNode); chckbxEvaluerContenuDuNode.setFont(new Font("Tahoma", Font.BOLD, 12)); chckbxEvaluerContenuDuNode.setBounds(6, 25, 304, 23); panelContenu.add(chckbxEvaluerContenuDuNode); JLabel lblNbrPointContenuNode = new JLabel("Nbre point contenu node"); lblNbrPointContenuNode.setFont(new Font("Tahoma", Font.BOLD, 12)); lblNbrPointContenuNode.setBounds(316, 27, 155, 19); panelContenu.add(lblNbrPointContenuNode); textFieldNombrePointContenuNode.setText("0"); textFieldNombrePointContenuNode.setHorizontalAlignment(SwingConstants.CENTER); textFieldNombrePointContenuNode.setFont(new Font("Tahoma", Font.BOLD, 12)); textFieldNombrePointContenuNode.setColumns(10); textFieldNombrePointContenuNode.setBounds(481, 22, 59, 30); panelContenu.add(textFieldNombrePointContenuNode); JScrollPane scrollPane_4 = new JScrollPane(); scrollPane_4.setBounds(10, 258, 530, 242); panelContenu.add(scrollPane_4); editorPaneContenuEnfant.setEditable(false); scrollPane_4.setViewportView(editorPaneContenuEnfant); JLabel lblNbrePointContenu = new JLabel("Nbre point contenu complet avec ceux des nodes enfants"); lblNbrePointContenu.setFont(new Font("Tahoma", Font.BOLD, 12)); lblNbrePointContenu.setBounds(10, 222, 389, 19); panelContenu.add(lblNbrePointContenu); textFieldNbrPointContenuEnfant.setToolTipText("Nombre de point si le contenu est similaire
(distance Levenshtein inférieure ou égale)"); textFieldNbrPointContenuEnfant.setText("0"); textFieldNbrPointContenuEnfant.setHorizontalAlignment(SwingConstants.CENTER); textFieldNbrPointContenuEnfant.setFont(new Font("Tahoma", Font.BOLD, 12)); textFieldNbrPointContenuEnfant.setColumns(10); textFieldNbrPointContenuEnfant.setBounds(481, 217, 59, 30); panelContenu.add(textFieldNbrPointContenuEnfant); textField_DistanceSimilitude.setToolTipText("Distance de Levenshtein"); textField_DistanceSimilitude.setHorizontalAlignment(SwingConstants.CENTER); textField_DistanceSimilitude.setText("2"); textField_DistanceSimilitude.setBounds(490, 183, 50, 23); panelContenu.add(textField_DistanceSimilitude); textField_DistanceSimilitude.setColumns(10); chckbxEvaluerSimilitude.setToolTipText("Comparaison des différents mots du contenu."); chckbxEvaluerSimilitude.setFont(new Font("Tahoma", Font.BOLD, 12)); chckbxEvaluerSimilitude.setBounds(10, 182, 474, 23); panelContenu.add(chckbxEvaluerSimilitude); chckbxIgnoreValeurNumerique.setToolTipText("Le texte sera nettoyé de toutes les valeurs numériques
avant la comparaison avec le fichier de l'étudiant."); chckbxIgnoreValeurNumerique.setFont(new Font("Tahoma", Font.BOLD, 12)); chckbxIgnoreValeurNumerique.setBounds(10, 532, 285, 23); panelContenu.add(chckbxIgnoreValeurNumerique); JSeparator separator = new JSeparator(); separator.setForeground(SystemColor.activeCaption); separator.setBounds(10, 164, 530, 11); panelContenu.add(separator); chckbxIgnoreLaCasse.setFont(new Font("Tahoma", Font.BOLD, 12)); chckbxIgnoreLaCasse.setBounds(10, 568, 228, 23); panelContenu.add(chckbxIgnoreLaCasse); JSeparator separator_1 = new JSeparator(); separator_1.setForeground(SystemColor.activeCaption); separator_1.setBounds(10, 511, 530, 2); panelContenu.add(separator_1); chckbxIgnoreLesCaracteresSpeciaux.setFont(new Font("Tahoma", Font.BOLD, 12)); chckbxIgnoreLesCaracteresSpeciaux.setBounds(302, 533, 238, 23); panelContenu.add(chckbxIgnoreLesCaracteresSpeciaux); tabbedPane.addTab("Style", img2, panelStyleStructure, null); panelStyleStructure.setLayout(null); lblAttribut_analyseStyle.setBounds(10, 96, 135, 15); lblAttribut_analyseStyle.setFont(new Font("Tahoma", Font.BOLD, 12)); panelStyleStructure.add(lblAttribut_analyseStyle); comboBoxAttribut_analyseStyle.setToolTipText("Les attributs présents dans ce node."); comboBoxAttribut_analyseStyle.setMaximumRowCount(10); comboBoxAttribut_analyseStyle.setFont(new Font("Tahoma", Font.PLAIN, 14)); comboBoxAttribut_analyseStyle.setBounds(10, 122, 519, 31); panelStyleStructure.add(comboBoxAttribut_analyseStyle); lblLeStyleDeParagrapheDuParagraphe.setHorizontalAlignment(SwingConstants.LEFT); lblLeStyleDeParagrapheDuParagraphe.setVerticalAlignment(SwingConstants.TOP); lblLeStyleDeParagrapheDuParagraphe.setBounds(10, 11, 536, 24); panelStyleStructure.add(lblLeStyleDeParagrapheDuParagraphe); chckbx_EvaluateStyleDeParagraphe.setFont(new Font("Tahoma", Font.BOLD, 14)); chckbx_EvaluateStyleDeParagraphe.setBounds(6, 42, 540, 23); panelStyleStructure.add(chckbx_EvaluateStyleDeParagraphe); scrollPane_evaluationAttributStyleParagraphe.setBounds(10, 192, 519, 97); panelStyleStructure.add(scrollPane_evaluationAttributStyleParagraphe); scrollPane_evaluationAttributStyleParagraphe.setViewportView(editorPane_evaluateStyleParagrapheAttribut); lbl_NombrePointAttributEvaluationStyleParagraphe.setFont(new Font("Tahoma", Font.BOLD, 12)); lbl_NombrePointAttributEvaluationStyleParagraphe.setBounds(10, 164, 94, 14); panelStyleStructure.add(lbl_NombrePointAttributEvaluationStyleParagraphe); textField_evaluateStyleParagrapheAttributNbrPoint.setText("0"); textField_evaluateStyleParagrapheAttributNbrPoint.setHorizontalAlignment(SwingConstants.CENTER); textField_evaluateStyleParagrapheAttributNbrPoint.setFont(new Font("Tahoma", Font.BOLD, 12)); textField_evaluateStyleParagrapheAttributNbrPoint.setColumns(10); textField_evaluateStyleParagrapheAttributNbrPoint.setBounds(114, 156, 57, 31); panelStyleStructure.add(textField_evaluateStyleParagrapheAttributNbrPoint); JScrollPane leftScrollPane = new JScrollPane( ); leftScrollPane.setPreferredSize( new Dimension( 200, 0 ) ); JScrollPane rightScrollPane = new JScrollPane( ); JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftScrollPane, rightScrollPane ); splitPane.setBounds(10, 10, 800, 783); panel.add(splitPane); rightScrollPane.setViewportView(textNodeSelect); textNodeSelect.setFont(new Font("Monospaced", Font.PLAIN, 15)); leftScrollPane.setViewportView(tree); tree.setFont(new Font("Tahoma", Font.PLAIN, 14)); if(commandes.fichierAnalyseValide) constructionTree(); ListenerAction(); } private void ListenerAction() { tree.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if(tree.getSelectionPath()!=null) { refeshNodeSelected(); } } }); // tree.addTreeWillExpandListener(new MyTreeWillExpandListener()); // tree.addTreeExpansionListener(new MyTreeExpansionListener()); } public void refeshNodeSelected() { DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent(); if(tree.getSelectionPath()!=null) { textNodeSelect.setContentType("text/html"); node nod = (node) selectNode.getUserObject(); node nodeParent = nod.getParent(); StringBuilder sb = new StringBuilder(); sb.append(balisestyles()); sb.append("

Parent = " + nodeParent.getNomElt() + "


"); sb.append("
"); sb.append("

Nom du node : " + nod.getNomElt() + "


"); sb.append("
"); Enumeration key = nod.getAttributs().keys(); if(nod.getAttributs().size()>0) sb.append("

Attribut(s)

"); sb.append("
    "); while(key.hasMoreElements()) { String k = key.nextElement(); // boolean ecrit =false; if(nod.getAttributs().get("evaluer")!=null) { if(nod.getAttributs().get("evaluer").equals("true")) { sb.append("
  • " + k + "=\"" + nod.getAttributs().get(k)+"\"
  • "); // switch(k) { // case ("evalContenu"): // sb.append("
  • " + k + "=\"" + nod.getAttributs().get(k)+"\"
  • "); // ecrit=true; // break; // case("evaluer"): // sb.append("
  • " + k + "=\"" + nod.getAttributs().get(k)+"\"
  • "); // ecrit=true; // break; // } // // if(nod.getAttributs().get(k).contains("‽") && !ecrit) { // sb.append("
  • " + k + "=\"" + nod.getAttributs().get(k)+"\"
  • "); // ecrit=true; // }else { // sb.append("
  • " + k + "=\"" + nod.getAttributs().get(k)+"\"
  • "); // ecrit=true; // } }else { sb.append("
  • " + k + "=\"" + nod.getAttributs().get(k)+"\"
  • "); if(nod.getAttributs().get(k).contains("‽")) sb.append("
  • " + k + "=\"" + nod.getAttributs().get(k)+"\"
  • "); } } if(nod.getAttributs().get("evaluer")==null) { sb.append("
  • " + k + "=\"" + nod.getAttributs().get(k)+"\"
  • "); } } sb.append("
"); if(!nod.retourneLesContenusEnfants("").trim().isEmpty()) { sb.append("

Contenu


" + nod.retourneLesContenusEnfants("") ); } textNodeSelect.setText(""+sb.toString()+""); createPopupMenuTree(nod); } } /** * Création du menu contextuel du tree * @return */ private void createPopupMenuTree(node nod) { if(nod!=null) { boolean avertissement = false; if(nod.chemin().contains("setting")) avertissement=true; System.out.println(nod.chemin()); System.out.println(avertissement); System.out.println(nod.getLevel()); JMenu mnEvaluer = new JMenu("Evaluer"); mnEvaluer.add(actEvalueTrue); mnEvaluer.add(actEvalueFalse); JMenu mnManageTree = new JMenu("Arbre"); mnManageTree.add(actExpandAll); mnManageTree.add(actExpandNode); mnManageTree.addSeparator(); mnManageTree.add(actCollapseAll); mnManageTree.add(actCollapseNode); JMenu mnSaut = new JMenu("Saut de ligne avant"); mnSaut.setIcon( new ImageIcon(create.class.getResource("/resources/sautmini.png"))); mnSaut.add(actsauttrue); mnSaut.add(actsautfalse); JMenu mnTitre = new JMenu("Titre"); mnTitre.setIcon( new ImageIcon(create.class.getResource("/resources/titremini.png"))); mnTitre.add(actTitrePrincipal); mnTitre.add(actTitre1); mnTitre.add(actTitre2); mnTitre.add(actTitre3); JMenu mnAddMenu= new JMenu("Lien"); mnAddMenu.add(actAddMenuTrue); mnAddMenu.add(actAddMenuFalse); JMenu mnNodePrincipal = new JMenu("Node niveau " + nod.getLevel()); if(nod.getLevel()==1) { mnNodePrincipal.add(actCoefficient); mnNodePrincipal.addSeparator(); } mnNodePrincipal.add(mnSaut); mnNodePrincipal.addSeparator(); mnNodePrincipal.add(mnTitre); if(nod.getLevel()>1) { mnNodePrincipal.addSeparator(); mnNodePrincipal.add(mnAddMenu); mnNodePrincipal.addSeparator(); mnNodePrincipal.add("evalNode"); } if(nod.getNomElt().equals("meta:initial-creator")) { mnNodePrincipal.addSeparator(); mnNodePrincipal.add("evalNameInitialCreator"); } //La popupMenu JPopupMenu mnPopupTree = new JPopupMenu(); if(!avertissement) mnPopupTree.add(mnEvaluer); if(!avertissement) { //nod.getLevel()==1 && !avertissement mnPopupTree.addSeparator(); mnPopupTree.add(mnNodePrincipal); } if(nod.getLevel()>1 && !avertissement) { mnPopupTree.addSeparator(); mnPopupTree.add(actAttribut); } mnPopupTree.addSeparator(); mnPopupTree.add(actNodeFichier); mnPopupTree.addSeparator(); mnPopupTree.add(mnManageTree); mnPopupTree.addSeparator(); mnPopupTree.add(actDelete); tree.setComponentPopupMenu(mnPopupTree); }else { JMenu mnManageTree = new JMenu("Arbre"); mnManageTree.add(actExpandAll); mnManageTree.add(actExpandNode); mnManageTree.addSeparator(); mnManageTree.add(actCollapseAll); mnManageTree.add(actCollapseNode); JPopupMenu mnPopupTree = new JPopupMenu(); mnPopupTree.add(mnManageTree); 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( actSave ); mnuFile.add( actSaveAs ); mnuFile.addSeparator(); mnuFile.add( 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( actCopy ); mnuEdit.add( actCut ); mnuEdit.add( actPaste ); menuBar.add(mnuEdit); // menu Modifier JMenu mnuModif= new JMenu( "Modifier" ); mnuModif.setMnemonic( 'M' ); mnuModif.add( actOpen ); mnuModif.add( actNodeFichier ); mnuModif.addSeparator(); mnuModif.add( actNewFichierAnalyse ); menuBar.add(mnuModif); // Définition du menu déroulant "Edit" et de son contenu JMenu mnuExercice = new JMenu( "Création évaluation" ); mnuExercice.setMnemonic( 'N' ); mnuExercice.add(actConfiguration); mnuExercice.add(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( actAPropos); mnuHelp.add( actDocumentation); menuBar.add( mnuHelp ); return menuBar; } /* Methode de construction de la barre d'outils */ private void createToolBar() { toolBar = new JToolBar(); JButton buttonLoadFile = toolBar.add( actOpen ); buttonLoadFile.setIcon(new ImageIcon(create.class.getResource("/resources/fichierAnalyse.png"))); buttonLoadFile.setHideActionText(true); toolBar.add(buttonLoadFile); JButton btnNewFichierAnalyse = toolBar.add( actNewFichierAnalyse ); btnNewFichierAnalyse.setIcon(new ImageIcon(create.class.getResource("/resources/fichierODF.png"))); btnNewFichierAnalyse.setHideActionText(true); toolBar.add(btnNewFichierAnalyse); JButton btnNodeFichier = toolBar.add( actNodeFichier ); btnNodeFichier.setIcon(new ImageIcon(create.class.getResource("/resources/nodeFichier.png"))); btnNodeFichier.setHideActionText(true); toolBar.add(btnNodeFichier); toolBar.addSeparator(); JButton btnAbout = toolBar.add( actAbout ); btnAbout.setIcon(new ImageIcon(create.class.getResource("/resources/apropos.png"))); btnAbout.setHideActionText( true ); toolBar.add(btnAbout); JButton btnDocumentation = toolBar.add(actDocumentation); btnDocumentation.setIcon(new ImageIcon(create.class.getResource("/resources/documentation.png"))); btnDocumentation.setHideActionText(true); toolBar.add(btnDocumentation); toolBar.addSeparator(); toolBar.add( actExit ).setHideActionText( true ); toolBar.addSeparator(); toolBar.add( actConfiguration ); JButton button = toolBar.add( actEvaluer ); button.setIcon(new ImageIcon(create.class.getResource("/resources/evaluate.png"))); // if(commandes.fichierAnalyseValide) { // toolBar.add( actConfiguration ).setEnabled(true); // toolBar.add( actEvaluer ).setEnabled(true); // }else { // toolBar.add( actConfiguration ).setEnabled( false ); // toolBar.add( actEvaluer ).setEnabled(false); // } } /** * Ouvre et affiche le fichier d'analyse */ private AbstractAction actOpen = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Ouvrir un fichier d'analyse" ); putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/fichierAnalysemini.png")) ); putValue( Action.MNEMONIC_KEY, KeyEvent.VK_O ); putValue( Action.SHORT_DESCRIPTION, "Ouvrir un nouveau fichier d'analyse (CTRL+O)" ); putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_DOWN_MASK) ); } @Override public void actionPerformed( ActionEvent e ) { new filechooserXML(); if(commandes.fichierAnalyseValide) { constructionTree(); textNodeSelect.setText("Le chargement de la nouvelle structure est réussi."); }else { constructionTree(); textNodeSelect.setText(commandes.message.toString()); } System.out.println( "Open" ); } }; /** * */ private AbstractAction actNodeFichier = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Modifier les paramètres de l'évaluation" ); putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/nodeFichiermini.png")) ); putValue( Action.LARGE_ICON_KEY, new ImageIcon(create.class.getResource("/resources/nodeFichier.png")) ); putValue( Action.SHORT_DESCRIPTION, "Modifier les paramètres de l'évaluation" ); } @Override public void actionPerformed( ActionEvent e ) { if(commandes.sujet.getNomElt().equals("fichier")) { new proprieteFichierAnalyse(); } System.out.println( "ouvre la fenêtre propriété du fichier d'analyse" ); } }; /** * */ private AbstractAction actAttribut = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Evaluer les attributs" ); putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/attributmini.png")) ); putValue( Action.LARGE_ICON_KEY, new ImageIcon(create.class.getResource("/resources/attributmini.png")) ); putValue( Action.SHORT_DESCRIPTION, "Evaluer les attributs" ); } @Override public void actionPerformed( ActionEvent e ) { DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent(); node nod = (node) selectNode.getUserObject(); new attributs(nod); System.out.println( "ouvre la fenêtre attributs" ); } }; /** * Affiche la fenêtre d'information sur analyseWriter */ private AbstractAction actAbout = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Informations" ); putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/aproposmini.png")) ); putValue( Action.MNEMONIC_KEY, KeyEvent.VK_I ); putValue( Action.SHORT_DESCRIPTION, "Informations (CTRL+I)" ); putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_I, InputEvent.CTRL_DOWN_MASK) ); } @Override public void actionPerformed( ActionEvent e ) { new about(); System.out.println( "About" ); } }; /** * */ private AbstractAction actSave = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Enregister" ); putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/save.png")) ); putValue( Action.MNEMONIC_KEY, KeyEvent.VK_S ); putValue( Action.SHORT_DESCRIPTION, "Enregistrer (CTRL+S)" ); putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_S, KeyEvent.CTRL_DOWN_MASK ) ); } @Override public void actionPerformed( ActionEvent e ) { Pattern p = Pattern.compile("[.xml]\\b"); Matcher m = p.matcher(commandes.nameSujet); String message=""; if(m.find()) { message="\"Voulez-vous enregistrer le fichier \"" + commandes.nameSujet + "\"\n" + "Dans le dossier " + commandes.path; }else { message="\"Voulez-vous enregistrer le fichier \"" + commandes.nameSujet + ".xml\"\n" + "Dans le dossier " + commandes.path; commandes.nameSujet = commandes.nameSujet + ".xml"; } int input = JOptionPane.showConfirmDialog(null, message); if(input==0) { try { verificationFichierAnalyse.MiseAJourHashNomFichierAnalyse(commandes.nameSujet); Run.ecritureNodeEnXML(commandes.sujet, commandes.nameSujet ,commandes.path,"sujet"); if(m.find()) { textNodeSelect.setText("Le fichier \"" + commandes.nameSujet + " a été renregistré.\n\n" + "Il se trouve dans le dossier " + commandes.path); }else { textNodeSelect.setText("Le fichier \"" + commandes.nameSujet + ".xml\" a été renregistré.\n\n" + "Il se trouve dans le dossier " + commandes.path); } System.out.println( input + "Save" ); } catch (IOException | CloneNotSupportedException e1) { e1.printStackTrace(); } } } }; /** * */ private AbstractAction actSaveAs = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Enregistrer sous..." ); putValue( Action.SMALL_ICON, new ImageIcon(getClass().getResource("/save_as.png") )); putValue( Action.MNEMONIC_KEY, KeyEvent.VK_A ); putValue( Action.SHORT_DESCRIPTION, "Enregistrer sous..." ); } @Override public void actionPerformed( ActionEvent e ) { JFileChooser fileChooser = new JFileChooser(); fileChooser.setDialogTitle("Enregistrer sous..."); File file = null; if(!commandes.nameSujet.isEmpty()) { file = new File(commandes.path ); //+ "\\" + utils.filename + ".xml" } fileChooser.setCurrentDirectory(file); int userSelection = fileChooser.showSaveDialog(null); if (userSelection == JFileChooser.APPROVE_OPTION) { File fileToSave = fileChooser.getSelectedFile(); try { verificationFichierAnalyse.MiseAJourHashNomFichierAnalyse(fileToSave.getName()); Run.ecritureNodeEnXML(commandes.sujet, fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\")),"sujet" ); commandes.nameSujet = fileToSave.getName(); commandes.path = fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\")); Pattern p = Pattern.compile("[.xml]\\b"); Matcher m = p.matcher(commandes.nameSujet); if(m.find()) { file = new File(commandes.path + "\\" + commandes.nameSujet); textNodeSelect.setText("Le fichier \"" + commandes.nameSujet + " a été renregistré.\n\nIl se trouve dans le dossier " + commandes.path); }else { file = new File(commandes.path + "\\" + commandes.nameSujet + ".xml"); textNodeSelect.setText("Le fichier \"" + commandes.nameSujet + ".xml\" a été renregistré.\n\nIl se trouve dans le dossier " + commandes.path); } } catch (IOException e1) { e1.printStackTrace(); } catch (CloneNotSupportedException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } System.out.println("Save as file: " + fileToSave.getAbsolutePath()); } System.out.println( "Save as" ); } }; /** * Quitter l'application */ private AbstractAction actExit = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Quitter" ); putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/exitmini.png")) ); putValue( Action.LARGE_ICON_KEY, new ImageIcon(create.class.getResource("/resources/exit.png")) ); putValue( Action.MNEMONIC_KEY, KeyEvent.VK_Q ); putValue( Action.SHORT_DESCRIPTION, "Quitter (CRTL+Q)" ); putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_Q, KeyEvent.CTRL_DOWN_MASK ) ); } @Override public void actionPerformed( ActionEvent e ) { int a = JOptionPane.showConfirmDialog(null,"Voulez-vous quitter l'application?", "Sélectionner un choix", JOptionPane.YES_NO_OPTION); if(a == JOptionPane.YES_NO_OPTION) { System.out.println( "Le choix : " + a); System.out.println( "Exit" + e.getSource().toString()); create.this.dispose(); } } }; /** * */ 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 actCopy = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Copier" ); putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/copy.png") ) ); putValue( Action.MNEMONIC_KEY, KeyEvent.VK_C ); putValue( Action.SHORT_DESCRIPTION, "Copier (CTRL+C)" ); putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_DOWN_MASK ) ); } @Override public void actionPerformed( ActionEvent e ) { System.out.println( "Copy" ); } }; /** * */ 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" ); } }; /** * Ajoute ou modifie le poid d'un node */ private AbstractAction actCoefficient = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Coefficient (poids)" ); putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/poidsmini.png")) ); putValue( Action.SHORT_DESCRIPTION, "Coefficient (poids)" ); } @Override public void actionPerformed( ActionEvent e ) { DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent(); node nod = (node) selectNode.getUserObject(); int poids = 1; if(nod.getAttributs().get("poids")!=null) { poids = Integer.valueOf(nod.getAttributs().get("poids")); } String a = JOptionPane.showInputDialog(null,"Quel est le coefficient de cette partie de l'évaluation?",poids); if(!a.isEmpty()) { try { poids = Integer.valueOf(a); if(poids<=0) { nod.poids(Integer.valueOf(1)); textNodeSelect.setText(balisestyles()); textNodeSelect.setText("

Erreur la valeur doit être un nombre entier POSITIF supérieur à zéro.
Cependant,la valeur a été modifiée.
poids=1.

"); }else { nod.poids(Integer.valueOf(poids)); refeshNodeSelected(); } } catch (Exception e2) { textNodeSelect.setText(balisestyles()); textNodeSelect.setText("

Erreur la valeur doit être un nombre entier.
La valeur n'a pas été modifiée.

"); } } } }; /** * Ajoute ou modifie le titre principal */ private AbstractAction actTitrePrincipal = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Titre principal" ); putValue( Action.SHORT_DESCRIPTION, "Titre principal" ); } @Override public void actionPerformed( ActionEvent e ) { DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent(); node nod = (node) selectNode.getUserObject(); String titre = ""; if(nod.getAttributs().get("titre")!=null) { titre = nod.getAttributs().get("titre"); } String a = JOptionPane.showInputDialog(null,"Quel est le titre?",titre); nod.titre(a); refeshNodeSelected(); } }; /** * Ajoute ou modifie le titre 1 */ private AbstractAction actTitre1 = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Titre 1" ); putValue( Action.SHORT_DESCRIPTION, "Titre 1" ); } @Override public void actionPerformed( ActionEvent e ) { DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent(); node nod = (node) selectNode.getUserObject(); String titre = ""; if(nod.getAttributs().get("titre1")!=null) { titre = nod.getAttributs().get("titre1"); } String a = JOptionPane.showInputDialog(null,"Quel est le titre?",titre); nod.titre1(a); refeshNodeSelected(); } }; /** * Ajoute ou modifie le titre 2 */ private AbstractAction actTitre2 = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Titre 2" ); putValue( Action.SHORT_DESCRIPTION, "Titre 2" ); } @Override public void actionPerformed( ActionEvent e ) { DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent(); node nod = (node) selectNode.getUserObject(); String titre = ""; if(nod.getAttributs().get("titre2")!=null) { titre = nod.getAttributs().get("titre2"); } String a = JOptionPane.showInputDialog(null,"Quel est le titre?",titre); nod.titre2(a); refeshNodeSelected(); } }; /** * Ajoute ou modifie le titre 3 */ private AbstractAction actTitre3 = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Titre 3" ); putValue( Action.SHORT_DESCRIPTION, "Titre 3" ); } @Override public void actionPerformed( ActionEvent e ) { DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent(); node nod = (node) selectNode.getUserObject(); String titre = ""; if(nod.getAttributs().get("titre3")!=null) { titre = nod.getAttributs().get("titre3"); } String a = JOptionPane.showInputDialog(null,"Quel est le titre?",titre); nod.titre3(a); refeshNodeSelected(); } }; /** * Ajoute ou modifie un saut de ligne à true. */ private AbstractAction actsauttrue = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "true" ); putValue( Action.SHORT_DESCRIPTION, "true" ); } @Override public void actionPerformed( ActionEvent e ) { DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent(); textNodeSelect.setContentType("text/html"); node nod = (node) selectNode.getUserObject(); TreeNode[] chemin = selectNode.getPath(); boolean avertissement=false; for(int i = 0 ; i < chemin.length; i++) { if(chemin[i].toString().contains("setting")) avertissement = true; System.out.println(chemin[i].toString()); } if(!avertissement) { nod.saut(true); refeshNodeSelected(); }else { JOptionPane.showMessageDialog(null, "Ce node ne peut pas être évaluer." ); } } }; /** * Ajoute ou modifie un saut de ligne à true. */ private AbstractAction actsautfalse = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "false" ); putValue( Action.SHORT_DESCRIPTION, "false" ); } @Override public void actionPerformed( ActionEvent e ) { DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent(); textNodeSelect.setContentType("text/html"); node nod = (node) selectNode.getUserObject(); TreeNode[] chemin = selectNode.getPath(); boolean avertissement=false; for(int i = 0 ; i < chemin.length; i++) { if(chemin[i].toString().contains("setting")) avertissement = true; System.out.println(chemin[i].toString()); } if(!avertissement) { nod.saut(false); refeshNodeSelected(); }else { JOptionPane.showMessageDialog(null, "Ce node ne peut pas être évaluer." ); } } }; /** * */ private AbstractAction actPaste = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Coller" ); putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/paste.png") ) ); putValue( Action.MNEMONIC_KEY, KeyEvent.VK_P ); putValue( Action.SHORT_DESCRIPTION, "Coller (CTRL+V)" ); putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_V, KeyEvent.CTRL_DOWN_MASK ) ); } @Override public void actionPerformed( ActionEvent e ) { System.out.println( "Paste" ); } }; /** * Affiche la fenêtre informaton sur la version */ private AbstractAction actAPropos = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Informations" ); putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/aproposmini.png")) ); putValue( Action.MNEMONIC_KEY, KeyEvent.VK_M ); putValue( Action.SHORT_DESCRIPTION, "Informations (CTRL+I)" ); putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_I, InputEvent.CTRL_DOWN_MASK) ); } @Override public void actionPerformed( ActionEvent e ) { new about(); System.out.println( "A propos" ); } }; /** * Supprime un node */ private AbstractAction actDelete = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Supprime" ); putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/supprimemini.png")) ); putValue( Action.SHORT_DESCRIPTION, "Supprime" ); } @Override public void actionPerformed( ActionEvent e ) { DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent(); textNodeSelect.setContentType("text/html"); if(tree.getSelectionPath()!=null) { int a = JOptionPane.showConfirmDialog(null,"Voulez-vous supprimer le node " + selectNode.toString() + "?", "Sélectionner un choix", JOptionPane.YES_NO_OPTION); if(a == JOptionPane.YES_NO_OPTION) { node nod = (node) selectNode.getUserObject(); if(!(nod.getNomElt().equals("setting")||nod.getNomElt().equals("csv")||nod.getNomElt().equals("import_moodle")||nod.getNomElt().equals("zip") ||nod.getNomElt().equals("plagiarism")||nod.getNomElt().equals("text:similarity")||nod.getNomElt().equals("color") ||nod.getNomElt().equals("translation") )) { nod.getParent().supprimeNodeEnfant(nod); constructionTree(); }else { JOptionPane.showMessageDialog(null,"Vous ne devez pas supprimer ce node !", "Oh non!!!", JOptionPane.INFORMATION_MESSAGE); } } } } }; /** * evaluer =true */ private AbstractAction actEvalueTrue = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Evaluer true" ); putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/evaluertruemini.png")) ); putValue( Action.SHORT_DESCRIPTION, "Evaluer true" ); } @Override public void actionPerformed( ActionEvent e ) { DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent(); textNodeSelect.setContentType("text/html"); node nod = (node) selectNode.getUserObject(); TreeNode[] chemin = selectNode.getPath(); boolean avertissement=false; for(int i = 0 ; i < chemin.length; i++) { if(chemin[i].toString().contains("setting")) avertissement = true; } if(!avertissement) { nod.evaluerTrue(); if(nod.getLevel()==1) { nod.addMenu(true); } refeshNodeSelected(); }else { JOptionPane.showMessageDialog(null, "Ce node ne peut pas être évaluer." ); } } }; /** /** * addMenu=true */ private AbstractAction actAddMenuTrue = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "true" ); putValue( Action.SHORT_DESCRIPTION, "true" ); } @Override public void actionPerformed( ActionEvent e ) { DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent(); textNodeSelect.setContentType("text/html"); node nod = (node) selectNode.getUserObject(); TreeNode[] chemin = selectNode.getPath(); boolean avertissement=false; for(int i = 0 ; i < chemin.length; i++) { if(chemin[i].toString().contains("setting")) avertissement = true; } if(!avertissement) { nod.evaluerTrue(); nod.addMenu(true); refeshNodeSelected(); }else { JOptionPane.showMessageDialog(null, "Ce node ne peut pas être évaluer." ); } } }; /** * addMenu=false */ private AbstractAction actAddMenuFalse = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "false" ); putValue( Action.SHORT_DESCRIPTION, "false" ); } @Override public void actionPerformed( ActionEvent e ) { DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent(); textNodeSelect.setContentType("text/html"); node nod = (node) selectNode.getUserObject(); TreeNode[] chemin = selectNode.getPath(); boolean avertissement=false; for(int i = 0 ; i < chemin.length; i++) { if(chemin[i].toString().contains("setting")) avertissement = true; } if(!avertissement) { nod.evaluerTrue(); nod.addMenu(false); refeshNodeSelected(); }else { JOptionPane.showMessageDialog(null, "Ce node ne peut pas être évaluer." ); } } }; // 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 && currentLevelLe fichier n'est pas valise"); } } catch (ParserConfigurationException | SAXException | IOException | CloneNotSupportedException e1) { e1.printStackTrace(); } } else { refeshNodeSelected(); } commandes.ecritCode = true; } }; /** * */ private AbstractAction actEvaluer = new AbstractAction() { private static final long serialVersionUID = 1L; { putValue( Action.NAME, "Evaluer" ); putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/evaluate.png") ) ); putValue( Action.MNEMONIC_KEY, KeyEvent.VK_E ); putValue( Action.SHORT_DESCRIPTION, "Evaluer un node (CTRL+E)" ); putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_E, KeyEvent.CTRL_DOWN_MASK) ); } @Override public void actionPerformed( ActionEvent e ) { new evaluate(); dispose(); } }; /** * Construction du Tree avec le node sujet. */ public void constructionTree() { Run.parentAndLevel(commandes.sujet, commandes.sujet, 0); DefaultMutableTreeNode node0 = null; DefaultMutableTreeNode node1 = null; DefaultMutableTreeNode node2 = null; DefaultMutableTreeNode node3 = null; DefaultMutableTreeNode node4 = null; DefaultMutableTreeNode node5 = null; DefaultMutableTreeNode node6 = null; commandes.tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); commandes.tree.setExpandsSelectedPaths(true); commandes.tree.setInvokesStopCellEditing(true); tree.setExpandsSelectedPaths(true); tree.setInvokesStopCellEditing(true); if(commandes.sujet.getNomElt().equals("fichier")) { node0 = new DefaultMutableTreeNode(commandes.sujet.getNomElt(),true); if(commandes.sujet!=null) for(int i = 0 ; i < commandes.sujet.getNodes().size(); i++) { node1 = new DefaultMutableTreeNode(commandes.sujet.getNodes().get(i)); if(commandes.sujet.getNodes().get(i)!=null) for(int j = 0 ; j < commandes.sujet.getNodes().get(i).getNodes().size();j++) { node2 = new DefaultMutableTreeNode(commandes.sujet.getNodes().get(i).getNodes().get(j)); if(commandes.sujet.getNodes().get(i).getNodes().get(j)!=null) for(int k = 0 ; k" + "h1 {margin-bottom: 0.25cm;font-size: 18pt;font-family:\"Arial\";text-align:center;font-weight: bold;}" + "h2 {color:red;margin-bottom: 0.25cm;font-size: 18pt;font-family:\"Arial\";text-align:center;font-weight: bold;}" + "h4 {text-align:left;font-family: \"Arial\"; font-size: 16pt; font-weight: bold; line-height: 110%;}" + "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}" + "p.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;}" + "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.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;}" + "p.p4{margin-left: 0px; margin-bottom: 0cm; margin-top: 4px; line-height: 115%}" + ""; } private void expandAll() { Enumeration topLevelNodes = ((TreeNode) tree.getModel().getRoot()).children(); while(topLevelNodes.hasMoreElements()) { DefaultMutableTreeNode N = (DefaultMutableTreeNode) topLevelNodes.nextElement(); tree.expandPath(new TreePath(N.getPath())); expandNode( N); } } private 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); } } private 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); } } private 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"); // // } //}