元に戻す機能の要素を削除しようとしていますが、JTree に最後に追加されたものだけを削除したいと考えています。
削除するために、Cut のメソッドを変更しているだけです。
private void performUndoAction() {
if (tree != null) {
TreePath path = tree.getSelectionPath();
if (path != null) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent();
if (node != tree.getModel().getRoot()) {
DefaultMutableTreeNode parent = (DefaultMutableTreeNode) node.getParent();
if (node.getUserObject() instanceof Attribute) {
Attribute at = (Attribute) node.getUserObject();
at.getParent().removeAttribute(at);
cut = at;
}
else if (node.getUserObject() instanceof Element) {
Element el = (Element) node.getUserObject();
el.getParent().removeContent(el);
cut = el;
} else if (node.getUserObject() instanceof Text) {
cut = ((Text) node.getUserObject()).getText();
Element el = (Element) parent.getUserObject();
el.setText("");
}
parent.remove(node);
tree.updateUI();
}
}
}
}