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
* @see #getExpandedElements
	 */
	public void setExpandedElements(Object[] elements) {
		HashSet expandedElements = new HashSet(elements.length * 2 + 1);
		for (int i = 0; i < elements.length; ++i) {
			
			internalExpand(elements[i], false);
			expandedElements.add(elements[i]);
		}
		internalSetExpanded(expandedElements, getControl());
	}
	/**
	 * Sets whether the node corresponding to the given element is expanded or collapsed.
	 *
	 * @param element the element
	 * @param expanded <code>true</code> if the node is expanded, and <code>false</code> if collapsed
	 */
	public void setExpandedState(Object element, boolean expanded) {
		Widget item = internalExpand(element, false);
		if (item instanceof Item) {
			if (expanded) {
				createChildren(item);
			}
			setExpanded((Item) item, expanded);
		}
	}
	/**
	 * Sets the selection to the given list of items.
	 *
	 * @param items list of items (element type: <code>org.eclipse.swt.widgets.Item</code>)