Bug 82798 TableViewer internalRefresh is very slow as of 1.19
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewer.java
* label text and image for each column. If it is an
	 * <code>ILabelProvider</code>, then it provides only the label text and
	 * image for the first column, and any remaining columns are blank.
	 */
	public void setLabelProvider(IBaseLabelProvider labelProvider) {
		Assert.isTrue(labelProvider instanceof ITableLabelProvider
				|| labelProvider instanceof ILabelProvider);
		super.setLabelProvider(labelProvider);
		tableColorAndFont = new TableColorAndFontCollector(labelProvider);
	}
	/*
	 *  (non-Javadoc)
	 * @see org.eclipse.jface.viewers.StructuredViewer#setSelectionToWidget(java.util.List, boolean)
	 */
	protected void setSelectionToWidget(List list, boolean reveal) {
		if (list == null) {
			table.deselectAll();
			return;
		}
		int size = list.size();
		TableItem[] items = new TableItem[size];
		TableItem firstItem = null;
		int count = 0;
		for (int i = 0; i < size; ++i) {
			Object o = list.get(i);
			Widget w = findItem(o);
			if (w instanceof TableItem) {
				TableItem item = (TableItem) w;
				items[count++] = item;
				if (firstItem == null)