Eclipse Platform
Release 3.3

org.eclipse.core.databinding.observable.value
Class AbstractVetoableValue

java.lang.Object
  extended byorg.eclipse.core.databinding.observable.ChangeManager
      extended byorg.eclipse.core.databinding.observable.AbstractObservable
          extended byorg.eclipse.core.databinding.observable.value.AbstractObservableValue
              extended byorg.eclipse.core.databinding.observable.value.AbstractVetoableValue
All Implemented Interfaces:
IObservable, IObservableValue, IVetoableValue

public abstract class AbstractVetoableValue
extends AbstractObservableValue
implements IVetoableValue

This class is thread safe. All state accessing methods must be invoked from the current realm. Methods for adding and removing listeners may be invoked from any thread.

Since:
1.0

Constructor Summary
AbstractVetoableValue()
          Creates a new vetoable value.
AbstractVetoableValue(Realm realm)
           
 
Method Summary
 void addValueChangingListener(IValueChangingListener listener)
           
 void dispose()
          Disposes of this observable object, removing all listeners registered with this object, and all listeners this object might have registered on other objects.
protected abstract  void doSetApprovedValue(Object value)
          Sets the value.
protected  void doSetValue(Object value)
          Template method for setting the value of the observable.
protected  boolean fireValueChanging(ValueDiff diff)
          Notifies listeners about a pending change, and returns true if no listener vetoed the change.
 void removeValueChangingListener(IValueChangingListener listener)
           
 
Methods inherited from class org.eclipse.core.databinding.observable.value.AbstractObservableValue
addValueChangeListener, doGetValue, fireChange, fireValueChange, getValue, isStale, removeValueChangeListener, setValue
 
Methods inherited from class org.eclipse.core.databinding.observable.AbstractObservable
addChangeListener, addListener, addStaleListener, checkRealm, fireEvent, fireStale, firstListenerAdded, getRealm, hasListeners, lastListenerRemoved, removeChangeListener, removeListener, removeStaleListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.core.databinding.observable.value.IObservableValue
addValueChangeListener, getValue, getValueType, removeValueChangeListener, setValue
 
Methods inherited from interface org.eclipse.core.databinding.observable.IObservable
addChangeListener, addStaleListener, getRealm, isStale, removeChangeListener, removeStaleListener
 

Constructor Detail

AbstractVetoableValue

public AbstractVetoableValue()
Creates a new vetoable value.


AbstractVetoableValue

public AbstractVetoableValue(Realm realm)
Parameters:
realm -
Method Detail

doSetValue

protected final void doSetValue(Object value)
Description copied from class: AbstractObservableValue
Template method for setting the value of the observable. By default the method throws an UnsupportedOperationException.

Overrides:
doSetValue in class AbstractObservableValue
Parameters:
value -

doSetApprovedValue

protected abstract void doSetApprovedValue(Object value)
Sets the value. Invoked after performing veto checks.

Parameters:
value -

addValueChangingListener

public void addValueChangingListener(IValueChangingListener listener)
Specified by:
addValueChangingListener in interface IVetoableValue
Parameters:
listener -

removeValueChangingListener

public void removeValueChangingListener(IValueChangingListener listener)
Specified by:
removeValueChangingListener in interface IVetoableValue
Parameters:
listener -

fireValueChanging

protected boolean fireValueChanging(ValueDiff diff)
Notifies listeners about a pending change, and returns true if no listener vetoed the change.

Parameters:
diff -
Returns:
false if the change was vetoed, true otherwise

dispose

public void dispose()
Description copied from interface: IObservable
Disposes of this observable object, removing all listeners registered with this object, and all listeners this object might have registered on other objects.

Specified by:
dispose in interface IObservable
Overrides:
dispose in class AbstractObservableValue

Eclipse Platform
Release 3.3

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2007. All rights reserved.