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.TreeNode; import javax.swing.tree.TreePath; import cXML.node; import fenetres.create; public class actUpNode extends AbstractAction{ /** * */ private static final long serialVersionUID = 1L; { 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 (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(); node nod = (node) fenetres.create.getSelectNode().getUserObject(); DefaultMutableTreeNode selectNode = fenetres.create.getSelectNode(); DefaultMutableTreeNode selectParentNode = (DefaultMutableTreeNode) selectNode.getParent(); int selectedNodeIndex = selectNode.getParent().getIndex(selectNode); 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) { if(!nod.chemin().contains("setting")) { TreePath path = fenetres.create.getTree().getSelectionPath().getParentPath(); // TreePath path = fenetres.create.getTree().getSelectionPath(); if(selectedNodeIndex>0) { nod.getParent().upNodeEnfant(nod); // int index = nod.getParent().getNodes().indexOf(nod); // // DefaultTreeModel treeModel = (DefaultTreeModel) fenetres.create.getTree().getModel(); // treeModel.insertNodeInto(selectNode, selectParentNode, selectedNodeIndex-1); // treeModel.reload(); // DefaultMutableTreeNode root = (DefaultMutableTreeNode) treeModel.getRoot(); // path = (TreePath) selectParentNode.getChildAt(selectedNodeIndex-1); // System.out.println(path.toString()); // fenetres.create.setTree(treeModel); // treeModel.reload(root); 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); // path= (TreePath) SelectParentNode.getFirstChild(); model.reload(root); fenetres.create.getTree().setSelectionPath(path); fenetres.create.getTree().expandPath(path); } }else { JOptionPane.showMessageDialog(null,"Vous ne devez pas déplacer ce node !", "Oh non!!!", JOptionPane.INFORMATION_MESSAGE); } } } } private TreePath TreePath(TreeNode childAt) { // TODO Auto-generated method stub return null; } 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; } }