Bug 198603 [DataBinding] ObservableListContentProvider should use AbstractListViewer.insert
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableListContentProvider.java
* 
	 */
	public ObservableListContentProvider() {
		observableList = new WritableList(SWTObservables.getRealm(Display.getDefault()));
		knownElements = new WritableSet(SWTObservables.getRealm(Display.getDefault()));
	}
	public Object[] getElements(Object inputElement) {
		return observableList.toArray();
	}
	public void dispose() {
		observableList.removeListChangeListener(listener);
	}
	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
		this.viewer = viewer;
		if (!(viewer instanceof TableViewer || viewer instanceof AbstractListViewer)) {
			
			Class abstractTableViewerClass = null;
			try {
				abstractTableViewerClass = Class.forName("org.eclipse.jface.viewers.AbstractTableViewer"); 
			} catch(Exception ex) {
				
			}
			if (abstractTableViewerClass == null || !abstractTableViewerClass.isInstance(viewer)) {
				throw new IllegalArgumentException(
					"This content provider only works with (Abstract)TableViewer or AbstractListViewer"); 
			}
		}
		if (newInput != null && !(newInput instanceof IObservableList)) {
			throw new IllegalArgumentException(
					"This content provider only works with input of type IObservableList");