diff --git a/.classpath b/.classpath index ea03344..7242b9c 100644 --- a/.classpath +++ b/.classpath @@ -14,6 +14,6 @@ - + diff --git a/bin/.gitignore b/bin/.gitignore index 12bc038..5d0a443 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -4,3 +4,4 @@ /ou.png /oumini.png /resources/ +/OU.svg diff --git a/bin/fenetres/create$1.class b/bin/fenetres/create$1.class index 017d58e..551ded8 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 8fe313e..dbffc02 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 a1b6566..b9d53f2 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 b00f142..cbb1824 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 ed399b9..6207dd5 100644 Binary files a/bin/fenetres/create$13.class and b/bin/fenetres/create$13.class differ diff --git a/bin/fenetres/create$2.class b/bin/fenetres/create$2.class index 7657ee2..0dee06c 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 c464fcb..c060498 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 b9ea57a..c5d07ad 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 89e1bd0..046f4ab 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 f457c1d..dc778d4 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 f5376c8..4486e9b 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 5edd173..5f49c76 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 94b223b..660b29d 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 82cba90..c8777c4 100644 Binary files a/bin/fenetres/create.class and b/bin/fenetres/create.class differ diff --git a/bin/fenetres/create_act/actDeleteNode.class b/bin/fenetres/create_act/actDeleteNode.class index 0a9a4df..a42be9a 100644 Binary files a/bin/fenetres/create_act/actDeleteNode.class and b/bin/fenetres/create_act/actDeleteNode.class differ diff --git a/bin/fenetres/create_act/actDownNode.class b/bin/fenetres/create_act/actDownNode.class index e356b7a..f59e4b9 100644 Binary files a/bin/fenetres/create_act/actDownNode.class and b/bin/fenetres/create_act/actDownNode.class differ diff --git a/bin/fenetres/create_act/actPaste.class b/bin/fenetres/create_act/actPaste.class index e5c1ab5..618494e 100644 Binary files a/bin/fenetres/create_act/actPaste.class and b/bin/fenetres/create_act/actPaste.class differ diff --git a/bin/fenetres/create_act/actUpNode.class b/bin/fenetres/create_act/actUpNode.class index c31fa83..581fbf6 100644 Binary files a/bin/fenetres/create_act/actUpNode.class and b/bin/fenetres/create_act/actUpNode.class differ diff --git a/src/fenetres/create.java b/src/fenetres/create.java index b3264f7..1051f6b 100644 --- a/src/fenetres/create.java +++ b/src/fenetres/create.java @@ -113,6 +113,8 @@ import list.listeRechercheParAnchorPageNumber; import javax.swing.JToggleButton; import java.awt.GridLayout; import java.awt.event.ActionListener; +import javax.swing.JMenuItem; +import java.awt.event.InputEvent; @@ -614,14 +616,19 @@ public final class create extends JFrame { //Menu arbre JMenu mnManageTree = new JMenu("Arbre"); - mnManageTree.add(new actUpNode()); - mnManageTree.add(new actDownNode()); + JMenuItem menuItem = mnManageTree.add(new actUpNode()); + menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U, InputEvent.SHIFT_DOWN_MASK)); + JMenuItem menuItem_2 = mnManageTree.add(new actDownNode()); + menuItem_2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, InputEvent.SHIFT_DOWN_MASK)); mnManageTree.addSeparator(); mnManageTree.add(new actExpandAll()); mnManageTree.add(new actExpandNode()); mnManageTree.addSeparator(); mnManageTree.add(new actCollapseAll()); mnManageTree.add(new actCollapseNode()); + mnManageTree.addSeparator(); + JMenuItem menuItem_1 = mnManageTree.add(new actDeleteNode()); + menuItem_1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, InputEvent.CTRL_DOWN_MASK)); mnNode.add(mnManageTree); mnNode.addSeparator(); diff --git a/src/fenetres/create_act/actDeleteNode.java b/src/fenetres/create_act/actDeleteNode.java index 7520585..a7f8fb9 100644 --- a/src/fenetres/create_act/actDeleteNode.java +++ b/src/fenetres/create_act/actDeleteNode.java @@ -1,11 +1,16 @@ package fenetres.create_act; import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.ImageIcon; import javax.swing.JOptionPane; +import javax.swing.KeyStroke; +import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.DefaultTreeModel; +import javax.swing.tree.TreePath; import cXML.node; import fenetres.create; @@ -20,6 +25,7 @@ public class actDeleteNode extends AbstractAction{ putValue( Action.NAME, "Supprime" ); putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/supprimemini.png")) ); putValue( Action.SHORT_DESCRIPTION, "Supprime" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_D, KeyEvent.CTRL_DOWN_MASK ) ); } @Override public void actionPerformed(ActionEvent e) { @@ -34,7 +40,21 @@ public class actDeleteNode extends AbstractAction{ ||nod.getNomElt().equals("plagiarism")||nod.getNomElt().equals("text:similarity")||nod.getNomElt().equals("color") ||nod.getNomElt().equals("translation") )) { nod.getParent().supprimeNodeEnfant(nod); - fenetres.create.constructionTree(); + + TreePath path = fenetres.create.getTree().getSelectionPath().getParentPath(); + DefaultMutableTreeNode nodMu = fenetres.create.getSelectNode(); + DefaultMutableTreeNode SelectParentNode = (DefaultMutableTreeNode) nodMu.getParent(); + + SelectParentNode.remove(nodMu); + + DefaultTreeModel model = (DefaultTreeModel) fenetres.create.getTree().getModel(); + DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot(); + model.reload(root); + + fenetres.create.getTree().setSelectionPath(path); + fenetres.create.getTree().expandPath(path); + +// fenetres.create.constructionTree(); }else { JOptionPane.showMessageDialog(null,"Vous ne devez pas supprimer ce node !", "Oh non!!!", JOptionPane.INFORMATION_MESSAGE); diff --git a/src/fenetres/create_act/actDownNode.java b/src/fenetres/create_act/actDownNode.java index 49ad194..ebf3eb6 100644 --- a/src/fenetres/create_act/actDownNode.java +++ b/src/fenetres/create_act/actDownNode.java @@ -1,11 +1,16 @@ package fenetres.create_act; import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.ImageIcon; import javax.swing.JOptionPane; +import javax.swing.KeyStroke; +import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.DefaultTreeModel; +import javax.swing.tree.TreePath; import cXML.node; import fenetres.create; @@ -19,7 +24,8 @@ public class actDownNode extends AbstractAction{ { putValue( Action.NAME, "Descendre le node" ); putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/downnodemini.png")) ); - putValue( Action.SHORT_DESCRIPTION, "Descendre le node" ); + putValue( Action.SHORT_DESCRIPTION, "Descendre le node (Shift + D)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_D, KeyEvent.SHIFT_DOWN_MASK) ); } @Override public void actionPerformed(ActionEvent e) { @@ -27,15 +33,48 @@ public class actDownNode extends AbstractAction{ int a = JOptionPane.showConfirmDialog(null,"Voulez-vous descendre le node " + fenetres.create.getSelectNode().toString() + "?", "Sélectionner un choix", JOptionPane.YES_NO_OPTION); if(a == JOptionPane.YES_NO_OPTION) { - node nod = (node) fenetres.create.getSelectNode().getUserObject(); + + node nod = (node) fenetres.create.getSelectNode().getUserObject(); + if(!nod.chemin().contains("setting")) { + + DefaultMutableTreeNode selectNode = fenetres.create.getSelectNode(); + TreePath path = fenetres.create.getTree().getSelectionPath().getParentPath(); + nod.getParent().downNodeEnfant(nod); - fenetres.create.constructionTree(); + + DefaultMutableTreeNode SelectParentNode = (DefaultMutableTreeNode) selectNode.getParent(); + SelectParentNode.removeAllChildren(); + SelectParentNode = addNodeMutable(nod.getParent(),SelectParentNode); + + DefaultTreeModel model = (DefaultTreeModel) fenetres.create.getTree().getModel(); + DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot(); + model.reload(root); + + fenetres.create.getTree().setSelectionPath(path); + fenetres.create.getTree().expandPath(path); + +// fenetres.create.constructionTree(); }else { JOptionPane.showMessageDialog(null,"Vous ne devez pas déplacer ce node !", "Oh non!!!", JOptionPane.INFORMATION_MESSAGE); } } } } + + private static DefaultMutableTreeNode addNodeMutable(node nod, DefaultMutableTreeNode parent) { + if(nod!=null) { + DefaultMutableTreeNode node1 = null; + + for(int i = 0 ; i < nod.getNodes().size(); i++) { + if(!nod.getNodes().get(i).getNomElt().equals("setting")) { + node1 = new DefaultMutableTreeNode(nod.getNodes().get(i)); + addNodeMutable(nod.getNodes().get(i), node1); + parent.add(node1); + } + } + } + return parent; + } } diff --git a/src/fenetres/create_act/actOu.java b/src/fenetres/create_act/actOu.java index 85a2a0b..e9fcf43 100644 --- a/src/fenetres/create_act/actOu.java +++ b/src/fenetres/create_act/actOu.java @@ -31,6 +31,8 @@ public class actOu extends AbstractAction{ nodeOu.setNomElt("OU"); nod.getNodes().add(nodeOu); + nodeOu.setParent(nod); + DefaultMutableTreeNode node1 = new DefaultMutableTreeNode(nodeOu); nodMu.add(node1); diff --git a/src/fenetres/create_act/actPaste.java b/src/fenetres/create_act/actPaste.java index edc864d..b2bc5ff 100644 --- a/src/fenetres/create_act/actPaste.java +++ b/src/fenetres/create_act/actPaste.java @@ -46,26 +46,24 @@ public class actPaste extends AbstractAction{ node nodCopy =new node(paste); if(!nodCopy.getNomElt().isEmpty()) { - TreePath path = fenetres.create.getTree().getSelectionPath(); + TreePath path = fenetres.create.getTree().getSelectionPath(); - node nod = (node) fenetres.create.getSelectNode().getUserObject(); - DefaultMutableTreeNode nodeMu = fenetres.create.getSelectNode(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); + DefaultMutableTreeNode nodeMu = fenetres.create.getSelectNode(); - nod.getNodes().add(nodCopy); - DefaultMutableTreeNode node1 = new DefaultMutableTreeNode(nodCopy); - nodeMu.add(node1); + nod.getNodes().add(nodCopy); + DefaultMutableTreeNode node1 = new DefaultMutableTreeNode(nodCopy); + nodeMu.add(node1); - nodeMu = addNodeMutable(nodCopy,node1); + nodeMu = addNodeMutable(nodCopy,node1); - DefaultTreeModel model = (DefaultTreeModel) fenetres.create.getTree().getModel(); - DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot(); - model.reload(root); + DefaultTreeModel model = (DefaultTreeModel) fenetres.create.getTree().getModel(); + DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot(); + model.reload(root); -// fenetres.create.constructionTree(); - fenetres.create.getTree().setSelectionPath(path); - fenetres.create.getTree().expandPath(path); + fenetres.create.getTree().setSelectionPath(path); + fenetres.create.getTree().expandPath(path); -// initial = paste; }else { JOptionPane.showMessageDialog(null, "Le collage n'est pas réalisé."); } diff --git a/src/fenetres/create_act/actUpNode.java b/src/fenetres/create_act/actUpNode.java index a32cadb..63f3bff 100644 --- a/src/fenetres/create_act/actUpNode.java +++ b/src/fenetres/create_act/actUpNode.java @@ -1,12 +1,16 @@ package fenetres.create_act; import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.ImageIcon; import javax.swing.JOptionPane; +import javax.swing.KeyStroke; import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.DefaultTreeModel; +import javax.swing.tree.TreePath; import cXML.node; import fenetres.create; @@ -20,25 +24,60 @@ public class actUpNode extends AbstractAction{ { putValue( Action.NAME, "Monter le node" ); putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/upnodemini.png")) ); - putValue( Action.SHORT_DESCRIPTION, "Monter le node" ); + putValue( Action.SHORT_DESCRIPTION, "Monter le node (CTRL+SHIFT+C)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_U, KeyEvent.SHIFT_DOWN_MASK) ); } @Override public void actionPerformed(ActionEvent e) { if(fenetres.create.getTree().getSelectionPath()!=null) { - DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) fenetres.create.getTree().getSelectionPath().getLastPathComponent(); +// DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) fenetres.create.getTree().getSelectionPath().getLastPathComponent(); - int a = JOptionPane.showConfirmDialog(null,"Voulez-vous monter le node " + selectNode.toString() + "?", "Sélectionner un choix", JOptionPane.YES_NO_OPTION); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); + DefaultMutableTreeNode selectNode = fenetres.create.getSelectNode(); + + int a = JOptionPane.showConfirmDialog(null,"Voulez-vous monter 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.chemin().contains("setting")) { - nod.getParent().upNodeEnfant(nod); - fenetres.create.constructionTree(); - }else { - JOptionPane.showMessageDialog(null,"Vous ne devez pas déplacer ce node !", "Oh non!!!", JOptionPane.INFORMATION_MESSAGE); - } + + if(!nod.chemin().contains("setting")) { + + TreePath path = fenetres.create.getTree().getSelectionPath().getParentPath(); + + nod.getParent().upNodeEnfant(nod); + + DefaultMutableTreeNode SelectParentNode = (DefaultMutableTreeNode) selectNode.getParent(); + SelectParentNode.removeAllChildren(); + SelectParentNode = addNodeMutable(nod.getParent(),SelectParentNode); + + + DefaultTreeModel model = (DefaultTreeModel) fenetres.create.getTree().getModel(); + DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot(); + model.reload(root); + + fenetres.create.getTree().setSelectionPath(path); + fenetres.create.getTree().expandPath(path); + +// fenetres.create.constructionTree(); + }else { + JOptionPane.showMessageDialog(null,"Vous ne devez pas déplacer ce node !", "Oh non!!!", JOptionPane.INFORMATION_MESSAGE); + } } } } + + private static DefaultMutableTreeNode addNodeMutable(node nod, DefaultMutableTreeNode parent) { + if(nod!=null) { + DefaultMutableTreeNode node1 = null; + + for(int i = 0 ; i < nod.getNodes().size(); i++) { + if(!nod.getNodes().get(i).getNomElt().equals("setting")) { + node1 = new DefaultMutableTreeNode(nod.getNodes().get(i)); + addNodeMutable(nod.getNodes().get(i), node1); + parent.add(node1); + } + } + } + return parent; + } }