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 (expanded.contains(elementChildren[i])) {
						setExpanded(items[i], true);
					}
				}
			}
		}
		
		if (widget == tree && oldCnt == 0 && getItemCount(tree) != 0) {
			
			tree.setRedraw(false);
			tree.setRedraw(true);
		}
	}
	/**
	 * Updates the "+"/"-" icon of the tree node from the given element.
	 * It calls <code>isExpandable</code> to determine whether 
	 * an element is expandable.
	 *
	 * @param item the item
	 * @param element the element
	 */
	protected void updatePlus(Item item, Object element) {
		boolean hasPlus = getItemCount(item) > 0;
		boolean needsPlus = isExpandable(element);
		boolean removeAll = false;