@Override
	public void undo() {
		JoeTree tree = parent.getTree();
		
		if (newNode != null) {
			// Remove node from visible nodes cache
			tree.removeNode(newNode);
			
			// Swap the nodes
			parent.removeChild(newNode,index);
		}

		// Swap the nodes
		parent.insertChild(oldNode,index);
		
		// Insert the node into the visible nodes cache
		tree.insertNode(oldNode);
		
		// Handle Selection
		tree.addNodeToSelection(oldNode);	
	}