Bug 183034 [DataBinding] Content providers should support AbstractTableViewer
Observable(List|Set)ContentProvider should check for AbstractTableViewer instead of TableViewer, so that it may be used with non-standard Table widgets.
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableListContentProvider.java
IStructuredContentProvider {
	private IObservableList observableList;
	private Viewer viewer;
	private IListChangeListener listener = new IListChangeListener() {
		public void handleListChange(ListChangeEvent event) {
			if (viewer.getControl().isDisposed()) {
				return;
			}
			ListDiffEntry[] differences = event.diff.getDifferences();
			for (int i = 0; i < differences.length; i++) {
				ListDiffEntry entry = differences[i];
				if (entry.isAddition()) {
					knownElements.add(entry.getElement());
					if (viewer instanceof AbstractListViewer) {
						((AbstractListViewer) viewer).add(entry.getElement());
					} else {
						((TableViewer) viewer).insert(entry.getElement(), entry
								.getPosition());
					}
				} else {
					if (viewer instanceof AbstractListViewer) {
						((AbstractListViewer) viewer)
								.remove(entry.getElement());
					} else {