Bug 147530 [DataBinding] Provide event objects for change listeners
Before data binding goes 1.0 it would be wise to provide EventObjects for the following listeners to ensure that the API doesn't preclude future expansion of the values supplied to listeners. Interfaces that would be affected: * IValueChangeListener * IValueChangingListener * IListChangeListener * ISetChangeListener * IMappingChangeListener
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/ControlUpdater.java
*/
	public ControlUpdater(Control toUpdate) {
		theControl = toUpdate;
		
		theControl.addDisposeListener(privateInterface);
		theControl.addPaintListener(privateInterface);
		makeDirty();
	}
	
	private void updateIfNecessary() {
		if (dirty) {
			dependencies = ObservableTracker.runAndMonitor(updateRunnable, privateInterface, null);
			dirty = false;
		}
	}
	/**
	 * This is called automatically when the control is disposed. It may also
	 * be called explicitly to remove this updator from the control. Subclasses
	 * will normally extend this method to detach any listeners they attached
	 * in their constructor.
	 */
	public void dispose() {
		theControl.removeDisposeListener(privateInterface);
		theControl.removePaintListener(privateInterface);
		stopListening();
	}
	private void stopListening() {
		
		for (int i = 0; i < dependencies.length; i++) {
			IObservable observable = dependencies[i];