Bug 38782 TreeViewer add calls a refresh
Our implementation of TreeViewer.add is naive and can all a refresh of the entire tree. It should be more like TableViewer.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java
*/
	protected Widget internalExpand(Object element, boolean expand) {
		if (element == null)
			return null;
		Widget w = findItem(element);
		if (w == null) {
			if (equals(element, getRoot())) { 
				return null;
			}
			
			ITreeContentProvider cp =
				(ITreeContentProvider) getContentProvider();
			if (cp == null) {
				return null;
			}
			Object parent = cp.getParent(element);
			if (parent != null) {
				Widget pw = internalExpand(parent, expand);
				if (pw != null) {
					
					createChildren(pw);
					
					if (pw instanceof Item) {
						Item item = (Item) pw;
						if (expand)
							setExpanded(item, true);
						w = internalFindChild(item, element);
					}
				}
			}