Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 97786
Collapse All | Expand All

(-)src/org/eclipse/jface/viewers/TableViewer.java (+38 lines)
Lines 370-373 Link Here
370
	public void refresh(boolean updateLabels, boolean reveal) {
370
	public void refresh(boolean updateLabels, boolean reveal) {
371
		refresh(getRoot(), updateLabels, reveal);
371
		refresh(getRoot(), updateLabels, reveal);
372
	}
372
	}
373
	
374
	/* (non-Javadoc)
375
	 * @see org.eclipse.jface.viewers.AbstractTableViewer#remove(java.lang.Object[])
376
	 */
377
	public void remove(Object[] elements) {
378
		assertElementsNotNull(elements);
379
		if (checkBusy())
380
			return;
381
		if (elements.length == 0) {
382
			return;
383
		}
384
		// deselect any items that are being removed, see bug 97786
385
		Object elementToBeRemoved = null;
386
		CustomHashtable elementsToBeRemoved = null;
387
		if (elements.length == 1) {
388
			elementToBeRemoved = elements[0];
389
		} else {
390
			elementsToBeRemoved = new CustomHashtable(getComparer());
391
			for (int i = 0; i < elements.length; i++) {
392
				Object element = elements[i];
393
				elementsToBeRemoved.put(element, element);
394
			}
395
		}
396
		int[] selectionIndices = doGetSelectionIndices();
397
		for (int i = 0; i < selectionIndices.length; i++) {
398
			int index = selectionIndices[i];
399
			Item item = doGetItem(index);
400
			Object data = item.getData();
401
			if (data != null) {
402
				if ((elementsToBeRemoved != null && elementsToBeRemoved
403
						.containsKey(data))
404
						|| equals(elementToBeRemoved, data)) {
405
					table.deselect(index);
406
				}
407
			}
408
		}
409
		super.remove(elements);
410
	}
373
}
411
}

Return to bug 97786