package action; 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 MEPTL.commandes; 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 (SHIFT+U)" ); 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) { node nod = (node) fenetres.create.getSelectNode().getUserObject(); DefaultMutableTreeNode selectNode = fenetres.create.getSelectNode(); DefaultMutableTreeNode selectParentNode = (DefaultMutableTreeNode) selectNode.getParent(); int selectedNodeIndex = selectNode.getParent().getIndex(selectNode); if(!nod.chemin().contains("setting")) { TreePath path = fenetres.create.getTree().getSelectionPath(); if(selectedNodeIndex>0) { nod.getParent().upNodeEnfant(nod); DefaultTreeModel treeModel = (DefaultTreeModel) fenetres.create.getTree().getModel(); treeModel.insertNodeInto(selectNode, selectParentNode, selectedNodeIndex-1); String nameNode = nod.getNomElt(); if(nameNode.equals("text:p")||nameNode.equals("text:h")||nameNode.equals("text:list-item")||nameNode.equals("text:list") ||nameNode.equals("text:span")||nameNode.equals("text:line-break")) { actNewFichierAnalyse.placeIsDoublonInStructure(commandes.sujet.retourneFirstEnfantsByName("structurepage")); } DefaultMutableTreeNode root = (DefaultMutableTreeNode) treeModel.getRoot(); fenetres.create.setTree(treeModel); treeModel.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); } } } }