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

📄 insertelementafteredit.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;

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

public class InsertElementAfterEdit extends AbstractUndoableEdit 
{
    private static final long serialVersionUID = -2778264565816334345L;

    private TreePath path;
    private JDFTreeNode newNode;
    private Element newElement;
    private JDFTreeNode afterNode;
    private JDFElement afterElement;
    private JDFTreeNode nextSiblingNode;
    private JDFElement nextSiblingElement;
    private JDFFrame parFrame;
    private TreePath newNodePath = null; 
    private boolean success = true;
    
    public InsertElementAfterEdit(final JDFFrame parentFrame, final TreePath treePath,
						    		final JDFTreeNode afterNode, final JDFElement afterElement, 
						    		   final JDFTreeNode nextSiblingNode, final JDFElement nextSiblingElement, 
						    		      final JDFTreeNode newNode) 
    {
         parFrame = parentFrame;
         path = treePath;
         this.afterNode = afterNode;
         this.afterElement = afterElement;
         
         this.nextSiblingNode = nextSiblingNode;
         this.nextSiblingElement = nextSiblingElement;
                  
         this.newNode = newNode;
         
         newElement = ((Wrapper)newNode.getUserObject()).getElement();
         newNodePath = new TreePath(newNode.getPath());

         parFrame.updateViews(newNodePath);
    }

    public void undo() throws CannotUndoException 
    {
         if (newNodePath != null)
         {
             success = parFrame.deleteItem(newNodePath);
             newNodePath = null;
         }
         parFrame.updateViews(path);
    }

    public void redo() throws CannotRedoException 
    {
        parFrame.insertAfter(afterNode, newNode);
        
        final KElement parentElement = afterElement.getParentNode_KElement();
        if (nextSiblingElement != null)
        {
            parentElement.insertBefore(newElement, nextSiblingElement);
        }
        else 
        {
            parentElement.appendChild(newElement);
        }
        newNodePath = new TreePath(newNode.getPath());
        parFrame.updateViews(newNodePath);
    }

    public boolean canUndo() 
    {
         return  success;
    }

    public boolean canRedo() 
    {
        return  success;
    }

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

}

⌨️ 快捷键说明

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