private static void mergeWithNextVisibleNode(OutlinerCellRendererImpl textArea, JoeTree tree, OutlineLayoutManager layout) {
		Node currentNode = textArea.node;
		Node nextNode = tree.getNextNode(currentNode);
		if (nextNode == null) {
			return;
		}
		
		// Abort if nextNode is not editable
		if (!nextNode.isEditable()) {
			return;
		}
		
		Node parent = currentNode.getParent();
		
		// Get Text for nodes.
		String nextNodeText = nextNode.getValue();
		String currentNodeText = currentNode.getValue();
		String newNextNodeText = currentNodeText + nextNodeText;
		
		// Put the Undoable onto the UndoQueue
		UndoableEdit undoableEdit = new UndoableEdit(
			nextNode, 
			nextNodeText, 
			newNextNodeText, 
			0, 
			currentNodeText.length(), 
			0, 
			currentNodeText.length()
		);
		
		CompoundUndoableReplace undoableReplace = new CompoundUndoableReplace(parent);
		undoableReplace.addPrimitive(new PrimitiveUndoableReplace(parent, currentNode, null));
		
		CompoundUndoableImpl undoable = new CompoundUndoableImpl(true);
		undoable.addPrimitive(undoableReplace);
		undoable.addPrimitive(undoableEdit);
		undoable.setName("Merge with Next Node");
		
		tree.getDocument().getUndoQueue().add(undoable);
		
		undoable.redo();
	}