📄 renamenodeedit.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.util.StringUtil;
import org.w3c.dom.Attr;
/*
* InsertElementAfterEdit.java
* @author Elena Skobchenko
*/
public class RenameNodeEdit extends AbstractUndoableEdit
{
private static final long serialVersionUID = -2778264565816334345L;
private TreePath path;
private JDFTreeNode newTreeNode;
private JDFElement newElem = null;
private Attr newAttr = null;
private JDFTreeNode node;
private JDFElement elem;
private Attr attr;
private JDFTreeNode parNode;
private JDFElement parElem;
private JDFFrame parFrame;
private boolean success = true;
private int pos;
private int newPos;
public RenameNodeEdit(final JDFFrame parentFrame, final Attr attr,
final JDFTreeNode node, final JDFElement elem,
final JDFTreeNode parNode, final JDFElement parElem,
final JDFTreeNode newTreeNode, int pos)
{
parFrame = parentFrame;
this.node = node;
this.elem = elem; // is null if newTreeNode is Attribute
this.attr = attr; // is null if newTreeNode is Element
this.parNode = parNode;
this.parElem = parElem;
this.newTreeNode = newTreeNode;
this.pos = pos;
newPos = parNode.getIndex(newTreeNode);
if (newTreeNode.isElement())
{
newElem = (JDFElement) ((Wrapper)newTreeNode.getUserObject()).getElement();
}
else
{
final String attributeName = StringUtil.token(newTreeNode.toString(), 0, "=");
newAttr = parElem.getAttributeNode(attributeName);
}
path = new TreePath(newTreeNode.getPath());
parFrame.updateViews(path);
}
public void undo() throws CannotUndoException
{
success = parFrame.deleteItem(path);
parFrame.insertInto(parNode, node, pos);
if (node.isElement())
{
parElem.appendChild(elem);
}
else
{
parElem.setAttributeNode(attr);
}
path = new TreePath(node.getPath());
parFrame.updateViews(path);
}
public void redo() throws CannotRedoException
{
success = parFrame.deleteItem(path);
parFrame.insertInto(parNode, newTreeNode, newPos);
if (newTreeNode.isElement())
{
parElem.appendChild(newElem);
}
else
{
parElem.setAttributeNode(newAttr);
}
path = new TreePath(newTreeNode.getPath());
parFrame.updateViews(path);
}
public boolean canUndo()
{
return success;
}
public boolean canRedo()
{
return success;
}
public String getPresentationName()
{
return "Rename";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -