Class DuplexingObservableValue<T>
- java.lang.Object
-
- org.eclipse.core.databinding.observable.AbstractObservable
-
- org.eclipse.core.databinding.observable.value.AbstractObservableValue<T>
-
- org.eclipse.core.databinding.observable.value.DuplexingObservableValue<T>
-
- Type Parameters:
T- the type of value being observed
- All Implemented Interfaces:
IObservable,IObservableValue<T>
public abstract class DuplexingObservableValue<T> extends AbstractObservableValue<T>
- Since:
- 1.2
-
-
Constructor Summary
Constructors Constructor Description DuplexingObservableValue(IObservableList<T> target)DuplexingObservableValue(IObservableList<T> target, Object valueType)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddChangeListener(IChangeListener listener)Adds the given change listener to the list of change listeners.protected voidaddListener(Object listenerType, IObservablesListener listener)voidaddValueChangeListener(IValueChangeListener<? super T> listener)protected Objectclone()protected abstract TcoalesceElements(Collection<T> elements)voiddispose()Disposes of this observable object, removing all listeners registered with this object, and all listeners this object might have registered on other objects.protected TdoGetValue()protected voiddoSetValue(T value)Template method for setting the value of the observable.protected voidfireEvent(ObservableEvent event)protected voidfirstListenerAdded()RealmgetRealm()ObjectgetValueType()The value type of this observable value, ornullif this observable value is untyped.protected booleanhasListeners()booleanisStale()Returns whether the state of this observable is stale and is expected to change soon.protected voidlastListenerRemoved()protected voidmakeDirty()protected voidremoveListener(Object listenerType, IObservablesListener listener)static <T> DuplexingObservableValue<T>withDefaults(IObservableList<T> target, T emptyValue, T multiValue)Returns a DuplexingObservableValue implementation with predefined values to use if the list is empty or contains multiple different values.-
Methods inherited from class org.eclipse.core.databinding.observable.value.AbstractObservableValue
fireChange, fireValueChange, getValue, removeValueChangeListener, setValue
-
Methods inherited from class org.eclipse.core.databinding.observable.AbstractObservable
addDisposeListener, addStaleListener, checkRealm, fireStale, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListener
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.core.databinding.observable.IObservable
addDisposeListener, addStaleListener, getRealm, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListener
-
-
-
-
Constructor Detail
-
DuplexingObservableValue
public DuplexingObservableValue(IObservableList<T> target)
- Parameters:
target-
-
DuplexingObservableValue
public DuplexingObservableValue(IObservableList<T> target, Object valueType)
- Parameters:
target-valueType-
-
-
Method Detail
-
withDefaults
public static <T> DuplexingObservableValue<T> withDefaults(IObservableList<T> target, T emptyValue, T multiValue)
Returns a DuplexingObservableValue implementation with predefined values to use if the list is empty or contains multiple different values.- Type Parameters:
T-- Parameters:
target- the observable listemptyValue- the value to use when the target list is emptymultiValue- the value to use when the target list contains multiple values that are not equivalent to each other.- Returns:
- a DuplexingObservableValue implementation with predefined values to use if the list is empty or contains multiple different values.
-
firstListenerAdded
protected void firstListenerAdded()
-
lastListenerRemoved
protected void lastListenerRemoved()
-
makeDirty
protected final void makeDirty()
-
isStale
public boolean isStale()
Description copied from interface:IObservableReturns whether the state of this observable is stale and is expected to change soon. A non-stale observable that becomes stale will notify its stale listeners. A stale object that becomes non-stale does so by changing its state and notifying its change listeners, it does not notify its stale listeners about becoming non-stale. Clients that do not expect asynchronous changes may ignore staleness of observable objects.- Specified by:
isStalein interfaceIObservable- Overrides:
isStalein classAbstractObservableValue<T>- Returns:
- true if this observable's state is stale and will change soon.
-
doGetValue
protected T doGetValue()
- Specified by:
doGetValuein classAbstractObservableValue<T>
-
coalesceElements
protected abstract T coalesceElements(Collection<T> elements)
-
doSetValue
protected void doSetValue(T value)
Description copied from class:AbstractObservableValueTemplate method for setting the value of the observable. By default the method throws anUnsupportedOperationException.- Overrides:
doSetValuein classAbstractObservableValue<T>
-
getValueType
public Object getValueType()
Description copied from interface:IObservableValueThe value type of this observable value, ornullif this observable value is untyped.- Returns:
- the value type, or
null
-
addChangeListener
public void addChangeListener(IChangeListener listener)
Description copied from interface:IObservableAdds the given change listener to the list of change listeners. Change listeners are notified about changes of the state of this observable in a generic way, without specifying the change that happened. To get the changed state, a change listener needs to query for the current state of this observable.- Specified by:
addChangeListenerin interfaceIObservable- Overrides:
addChangeListenerin classAbstractObservable
-
addValueChangeListener
public void addValueChangeListener(IValueChangeListener<? super T> listener)
- Specified by:
addValueChangeListenerin interfaceIObservableValue<T>- Overrides:
addValueChangeListenerin classAbstractObservableValue<T>
-
dispose
public void dispose()
Description copied from interface:IObservableDisposes of this observable object, removing all listeners registered with this object, and all listeners this object might have registered on other objects.- Specified by:
disposein interfaceIObservable- Overrides:
disposein classAbstractObservable
-
addListener
protected void addListener(Object listenerType, IObservablesListener listener)
- Parameters:
listenerType-listener-
-
removeListener
protected void removeListener(Object listenerType, IObservablesListener listener)
- Parameters:
listenerType-listener-
-
hasListeners
protected boolean hasListeners()
-
fireEvent
protected void fireEvent(ObservableEvent event)
-
getRealm
public Realm getRealm()
- Returns:
- Returns the realm.
-
clone
protected Object clone() throws CloneNotSupportedException
- Overrides:
clonein classObject- Throws:
CloneNotSupportedException
-
-