Bug 127861 [DataBinding] Mark API provisional
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/UpdatableSetContentProvider.java
AbstractListViewer lv = (AbstractListViewer) viewer;
	    		lv.add(toAdd);    		
	    	}
		}
    }
    
    private void doRemove(Collection toRemove, boolean updateViewer) {
		if (updateViewer) {
	    	Object[] removed = toRemove.toArray();
	    	if (viewer instanceof TableViewer) {
	    		TableViewer tv = (TableViewer) viewer;
	    		tv.remove(removed);
	    	} else if (viewer instanceof AbstractListViewer) {
	    		AbstractListViewer lv = (AbstractListViewer) viewer;
	    		
	    		lv.remove(removed);
	    	}
		}    	
    	elements.doFireRemove(toRemove);
    }
    /**
     * Returns the readableSet of elements known to this content provider. Items are added
     * to this readableSet before being added to the viewer, and they are removed after
     * being removed from the viewer. The readableSet is always updated after the viewer. This 
     * is intended for use by label providers, as it will always return the items that 
     * need labels. 
     * 
     * @return readableSet of items that will need labels
     */
    public IReadableSet getKnownElements() {