Package org.eclipse.core.databinding.observable.value

# Class SelectObservableValue<T>

java.lang.Object
org.eclipse.core.databinding.observable.AbstractObservable
org.eclipse.core.databinding.observable.value.AbstractObservableValue<T>
org.eclipse.core.databinding.observable.value.SelectObservableValue<T>

Type Parameters:
  `T` - the type of value being observed

All Implemented Interfaces:
  `IObservable`, `IObservableValue<T>`

public class SelectObservableValue<T> extends AbstractObservableValue<T>
An observable value which behaves similarly to the <select> and <option> HTML tags. A SelectObservableValue has a number of options added to it via the `addOption(Object, IObservableValue)` method. The value of the SelectObservableValue is the value of whichever option's observable has a value of Boolean.TRUE, or null if none of the observable's values are Boolean.TRUE.

Since:
  1.2
Restriction:
  This class is not intended to be subclassed by clients.

## Constructor Summary

Constructors
Constructor
Description
`SelectObservableValue()`
Constructs a SelectObservableValue on the default realm.
`SelectObservableValue(Object valueType)`
Constructs a SelectObservableValue on the default realm, with the given value type.
`SelectObservableValue(Realm realm)`
Constructs a SelectObservableValue on the specified realm.
`SelectObservableValue(Realm realm, Object valueType)`
Constructs a SelectObservableValue on the given realm, with the given value type.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`addListener(Object listenerType, IObservablesListener listener)`
`void`
`addOption(T value, IObservableValue<Boolean> observable)`
Adds an option to this SelectObservableValue.
`protected Object`
`clone()`
`protected T`
`doGetValue()`
`protected void`
`doSetValue(Object value)`
Template method for setting the value of the observable.
`protected void`
`fireEvent(ObservableEvent event)`
`protected void`
`firstListenerAdded()`
`Realm`
`getRealm()`
`Object`
`getValueType()`
The value type of this observable value, or `null` if this observable value is untyped.
`protected boolean`
`hasListeners()`
`protected void`
`lastListenerRemoved()`
`protected void`
`removeListener(Object listenerType, IObservablesListener listener)`

### Methods inherited from class org.eclipse.core.databinding.observable.value.AbstractObservableValue

`addValueChangeListener, fireChange, fireValueChange, getValue, isStale, removeValueChangeListener, setValue`

### Methods inherited from class org.eclipse.core.databinding.observable.AbstractObservable

`addChangeListener, addDisposeListener, addStaleListener, checkRealm, dispose, 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

`addChangeListener, addDisposeListener, addStaleListener, dispose, getRealm, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListener`

## Constructor Details

### SelectObservableValue

public SelectObservableValue()
Constructs a SelectObservableValue on the default realm.

### SelectObservableValue

public SelectObservableValue(Realm realm)
Constructs a SelectObservableValue on the specified realm.

Parameters:
  `realm` - the realm

### SelectObservableValue

public SelectObservableValue(Object valueType)
Constructs a SelectObservableValue on the default realm, with the given value type.

Parameters:
  `valueType` - the value type

### SelectObservableValue

public SelectObservableValue(Realm realm, Object valueType)
Constructs a SelectObservableValue on the given realm, with the given value type.

Parameters:
  `realm` - the realm
  `valueType` - the value type

## Method Details

### firstListenerAdded

protected void firstListenerAdded()

### lastListenerRemoved

protected void lastListenerRemoved()

### getValueType

public Object getValueType()
Description copied from interface: `IObservableValue`
The value type of this observable value, or `null` if this observable value is untyped.

Returns:
  the value type, or `null`

### addOption

public void addOption(T value, IObservableValue<Boolean> observable)
Adds an option to this SelectObservableValue. If the observable contains Boolean.TRUE then the selection changes immediately to the given value.

Parameters:
  `value` - The value associated with the provided observable
  `observable` - an observable of value type Boolean.class or Boolean.TYPE

### doGetValue

protected T doGetValue()

Specified by:
  `doGetValue` in class `AbstractObservableValue<T>`

### doSetValue

protected 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<T>`
Parameters:
  `value` - the value to set

### addListener

protected void addListener(Object listenerType, IObservablesListener listener)

Parameters:
  `listenerType` - arbitrary object to identify a type of the listener
  `listener` - the listener to add; not `null`

### removeListener

protected void removeListener(Object listenerType, IObservablesListener listener)

Parameters:
  `listenerType` - arbitrary object to identify a type of the listener
  `listener` - the listener to remove; not `null`

### 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:
  `clone` in class `Object`
Throws:
  `CloneNotSupportedException`