public static void selectUpText(OutlinerCellRendererImpl textArea, JoeTree tree, OutlineLayoutManager layout) {
		Node currentNode = textArea.node;
		
		int currentPosition = textArea.getCaretPosition();

		if (currentPosition == 0) {
			return;
		}
		
		// Update Preferred Caret Position
		int newCaretPosition = 0;
		tree.getDocument().setPreferredCaretPosition(newCaretPosition);

		// Record the CursorPosition only since the EditingNode should not have changed
		tree.setCursorPosition(newCaretPosition, false);

		textArea.moveCaretPosition(newCaretPosition);

		// Redraw and Set Focus if this node is currently offscreen
		if (!currentNode.isVisible()) {
			layout.draw(currentNode,OutlineLayoutManager.TEXT);
		}
		
		// Freeze Undo Editing
		UndoableEdit.freezeUndoEdit(currentNode);
	}