insertelementbeforeedit.java

来自「java xml 应用开发」· Java 代码 · 共 77 行

JAVA
77
字号
import javax.swing.tree.TreePath;
import javax.swing.undo.AbstractUndoableEdit;
import javax.swing.undo.CannotRedoException;
import javax.swing.undo.CannotUndoException;

import org.cip4.jdflib.core.JDFElement;
import org.cip4.jdflib.core.KElement;
import org.w3c.dom.Element;

/*
 * InsertElementBeforeEdit.java
 * @author Elena Skobchenko
 */

public class InsertElementBeforeEdit extends AbstractUndoableEdit 
{
    private static final long serialVersionUID = -2778264565816774345L;
    
    private TreePath path;
    private JDFTreeNode newNode;
    private Element newElement;
    private JDFTreeNode beforeNode;
    private JDFElement beforeElement;
    private JDFFrame parFrame;
    private TreePath newNodePath = null; 
    private boolean success = true;
    
    public InsertElementBeforeEdit(final JDFFrame parent, final TreePath treePath, 
    								final JDFTreeNode beforeNode, JDFElement beforeElement,
    								  final JDFTreeNode newNode) 
    {
         parFrame = parent;
         path = treePath;
         this.beforeNode = beforeNode;
         this.beforeElement = beforeElement;
         this.newNode = newNode;
         
         newElement = ((Wrapper)newNode.getUserObject()).getElement();
         newNodePath = new TreePath(newNode.getPath());
 
         parFrame.updateViews(newNodePath);
    }
    
    public void undo() throws CannotUndoException 
    {
         success = parFrame.deleteItem(newNodePath);
         newNodePath = null;
         
         parFrame.updateViews(path);
    }

    public void redo() throws CannotRedoException 
    {
        parFrame.insertBefore(beforeNode, newNode);
        final KElement parentElement = beforeElement.getParentNode_KElement();
        parentElement.insertBefore(newElement, beforeElement);
        
        newNodePath = new TreePath(newNode.getPath());
        parFrame.updateViews(newNodePath);
    }
    
    public boolean canUndo() 
    {
         return  success;
    }

    public boolean canRedo() 
    {
        return  success;
    }

    public String getPresentationName() 
    {
         return "InsertElementBefore";
    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?