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.core.databinding/src/org/eclipse/core/databinding/observable/value/AbstractObservableValue.java
}
		valueChangeListeners.remove(listener);
		if (valueChangeListeners.isEmpty()) {
			valueChangeListeners = null;
		}
		if (!hasListeners()) {
			lastListenerRemoved();
		}
	}
	final public void setValue(Object value) {
		checkRealm();
		doSetValue(value);
	}
	/**
	 * Template method for setting the value of the observable. By default the
	 * method throws an {@link UnsupportedOperationException}.
	 * 
	 * @param value
	 */
	protected void doSetValue(Object value) {
		throw new UnsupportedOperationException();
	}
	protected void fireValueChange(ValueDiff diff) {
		
		super.fireChange();
		if (valueChangeListeners != null) {
			IValueChangeListener[] listeners = (IValueChangeListener[]) valueChangeListeners
					.toArray(new IValueChangeListener[valueChangeListeners
							.size()]);
			for (int i = 0; i < listeners.length; i++) {