public static void insertAboveText(Node node, JoeTree tree, OutlineLayoutManager layout) {
		// Abort if node is not editable
		if (!node.isEditable()) {
			return;
		}
		
		Node newNode = new NodeImpl(tree,"");
		int newNodeIndex = node.currentIndex();
		Node newNodeParent = node.getParent();
		
		newNode.setDepth(node.getDepth());
		newNodeParent.insertChild(newNode, newNodeIndex);
		tree.insertNode(newNode);

		// Record the EditingNode and CursorPosition and ComponentFocus
		tree.setEditingNode(newNode);
		tree.setCursorPosition(0);
		tree.getDocument().setPreferredCaretPosition(0);
		tree.setComponentFocus(OutlineLayoutManager.TEXT);

		// Put the Undoable onto the UndoQueue
		CompoundUndoableInsert undoable = new CompoundUndoableInsert(newNodeParent);
		undoable.setName("Insert Node Above");
		undoable.addPrimitive(new PrimitiveUndoableInsert(newNodeParent, newNode, newNodeIndex));
		tree.getDocument().getUndoQueue().add(undoable);
		
		// Redraw and Set Focus
		layout.draw(newNode, OutlineLayoutManager.TEXT);	
	}