⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 insertelementbeforeedit.java

📁 java xml 应用开发
💻 JAVA
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -