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/AbstractVetoableValue.java
implements IVetoableValue {
	/**
	 * @param realm
	 */
	public AbstractVetoableValue() {
		this(Realm.getDefault());
	}
	/**
	 * @param realm
	 */
	public AbstractVetoableValue(Realm realm) {
		super(realm);
	}
	
	final protected void doSetValue(Object value) {
        Object currentValue = doGetValue();
        ValueDiff diff = Diffs.createValueDiff(currentValue, value);
        boolean okToProceed = fireValueChanging(diff);
        if (!okToProceed) {
            throw new ChangeVetoException("Change not permitted"); 
        }
        doSetApprovedValue(value);
        fireValueChange(diff);
    }
    
    /**
     * Sets the value.  Invoked after performing veto checks.
     *