insertelementintoedit.java

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

JAVA
73
字号
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;

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

public class InsertElementIntoEdit extends AbstractUndoableEdit 
{
    private static final long serialVersionUID = -2778264565816334345L;
    
    private TreePath path;
    private JDFTreeNode newNode;
    private JDFElement newElement;
    private JDFTreeNode intoNode;
    private JDFElement intoElement;
    private JDFFrame parFrame;
    private TreePath newNodePath = null; 
    private boolean success = true;
    
    public InsertElementIntoEdit(final JDFFrame parent, final TreePath treePath,
    							 final JDFTreeNode intoNode, final JDFElement intoElement, 
    							 final JDFTreeNode newNode) 
    {
        parFrame = parent;
        path = treePath;
        this.intoNode = intoNode;
        this.intoElement = intoElement;
        this.newNode = newNode;

        newElement = (JDFElement) ((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.insertInto(intoNode, newNode, -1);
        intoElement.appendChild(newElement);
        newNodePath = new TreePath(newNode.getPath());
        parFrame.updateViews(newNodePath);
    }

    public boolean canUndo() 
    {
        return success;
    }

    public boolean canRedo() 
    {
        return  success;
    }
    
    public String getPresentationName() 
    {
        return "InsertElementInto";
    }

}

⌨️ 快捷键说明

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