public static void moveDownText(OutlinerCellRendererImpl textArea, JoeTree tree, OutlineLayoutManager layout) {
		Node currentNode = textArea.node;

		// Get Prev Node
		Node nextNode = tree.getNextNode(currentNode);
		if (nextNode == null) {
			return;
		}

		// Record the EditingNode and CursorPosition
		tree.setEditingNode(nextNode);
		tree.setCursorPosition(OutlinerDocument.findNearestCaretPosition(textArea.getCaretPosition(), tree.getDocument().getPreferredCaretPosition(), nextNode));
		
		// Clear Text Selection
		textArea.setCaretPosition(0);
		textArea.moveCaretPosition(0);

		// Freeze Undo Editing
		UndoableEdit.freezeUndoEdit(currentNode);

		// Redraw and Set Focus
		if (nextNode.isVisible()) {
			layout.setFocus(nextNode,OutlineLayoutManager.TEXT);
		} else {
			layout.draw(nextNode,OutlineLayoutManager.TEXT);
		}
	}