// Undoable Interface @Override public void redo() { JoeTree tree = parent.getTree(); // Remove node from visible nodes cache tree.removeNode(oldNode); // Swap the nodes parent.removeChild(oldNode, index); if (newNode != null) { parent.insertChild(newNode, index); // Insert the node into the visible nodes cache tree.insertNode(newNode); // Handle Selection tree.addNodeToSelection(newNode); } }