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
}
		if (childElements.length > 0) {
			List children = Arrays.asList(getSortedChildren(parentElement));
			for (int cc = 0; cc < childElements.length; cc++) {
				int ix = children.indexOf(childElements[cc]);
				if (ix < 0) 
					continue;
				Item[] ch = getChildren(widget);
				if (ch.length + 1 == children.size()) {
					createTreeItem(widget, childElements[cc], ix);
					
					if (ch.length == 0) {
						
						tree.setRedraw(false); 
						tree.setRedraw(true); 
					}
					continue;
				}
				
				
				
				refresh(parentElement);
				return;
			}
		}
	}
	/**
	 * Adds the given child element to this viewer as a child of the given parent element.
	 * If this viewer does not have a sorter, the element is added at the end of the 
	 * parent's list of children; otherwise, the element is inserted at the appropriate position.