Bug 127861 [DataBinding] Mark API provisional
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ListeningLabelProvider.java
items.addChangeListener(listener);
		for (Iterator iter = items.toCollection().iterator(); iter.hasNext();) {
			Object next = (Object) iter.next();
			
			addListenerTo(next);
		}
	}
	
	/**
	 * @param next
	 */
	protected abstract void removeListenerFrom(Object next);
	/**
	 * @param next
	 */
	protected abstract void addListenerTo(Object next);
	/* (non-Javadoc)
	 * @see org.eclipse.jface.databinding.viewers.ViewerLabelProvider#dispose()
	 */
	public void dispose() {
		for (Iterator iter = items.toCollection().iterator(); iter.hasNext();) {
			Object next = (Object) iter.next();
			
			removeListenerFrom(next);
		}
		items.removeChangeListener(listener);
		super.dispose();
	}
}