Bug 251575 [Viewers] TableViewer support for virtual selection
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewer.java
}
		
		Object elementToBeRemoved = null;
		CustomHashtable elementsToBeRemoved = null;
		if (elements.length == 1) {
			elementToBeRemoved = elements[0];
		} else {
			elementsToBeRemoved = new CustomHashtable(getComparer());
			for (int i = 0; i < elements.length; i++) {
				Object element = elements[i];
				elementsToBeRemoved.put(element, element);
			}
		}
		int[] selectionIndices = doGetSelectionIndices();
		for (int i = 0; i < selectionIndices.length; i++) {
			int index = selectionIndices[i];
			Item item = doGetItem(index);
			Object data = item.getData();
			if (data != null) {
				if ((elementsToBeRemoved != null && elementsToBeRemoved
						.containsKey(data))
						|| equals(elementToBeRemoved, data)) {
					table.deselect(index);
				}
			}
		}
		super.remove(elements);
	}
}