public static void promoteText(Node currentNode, JoeTree tree, OutlineLayoutManager layout) {
		// Abort if node is not moveable
		if (!currentNode.isMoveable()) {
			return;
		}

		// Put the Undoable onto the UndoQueue
		Node targetNode = currentNode.getParent().getParent();
		int targetIndex = currentNode.getParent().currentIndex() + 1;
		if (currentNode.getParent().isRoot()) {
			// Our parent is root. Since we can't be promoted to root level, Abort.
			return;
		}
		
		CompoundUndoableMove undoable = new CompoundUndoableMove(currentNode.getParent(),targetNode);
		undoable.setName("Promote Node");
		tree.getDocument().getUndoQueue().add(undoable);

		// Record the Insert in the undoable
		int index = currentNode.currentIndex();
		undoable.addPrimitive(new PrimitiveUndoableMove(undoable,currentNode,index,targetIndex));

		tree.promoteNode(currentNode, index);

		// Redraw and Set Focus
		layout.draw(currentNode,OutlineLayoutManager.TEXT);
	}