|
Eclipse Platform Release 3.6 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.core.databinding.observable.AbstractObservable
org.eclipse.core.databinding.observable.value.AbstractObservableValue
org.eclipse.core.databinding.observable.value.DateAndTimeObservableValue
public class DateAndTimeObservableValue
An IObservableValue
< Date
> which supports
scenarios where the date and time are presented as separate elements in the
user interface. This class combines the year, month, and day portion of the
date observable (an IObservableValue
< Date
>) and the hour, minute, second, and millisecond portion of the time
observable (also an IObservableValue
< Date
>).
This observable's value will be null whenever the date observable's value is null. Otherwise the value is the combination of the date portion of the date observable and the time portion of the time observable (a time observable value of null is treated the same as 0:00:00.000).
When setting the value of this observable, setting a null value will set null on the date observable, and set a time of 0:00:00.000 on the time observable. When setting non-null values, the non-applicable fields of each observable are left intact. That is, the hour, minute, second and millisecond components of the date observable are preserved, and the year, month and day components of the time observable are preserved.
The observables used for the date and time component may impose their own restrictions with regard to supported values. For example some observables do not allow a null value, because the underlying widget lacks support for a null value (example: DateTime).
One use for this class is binding a date-and-time value to two separate user interface elements, one for editing date and one for editing time:
DataBindingContext dbc = new DataBindingContext(); IObservableValue beanValue = BeansObservables.observeValue(...); IObservableValue dateObservable = WidgetProperties.selection().observe( dateWidget); IObservableValue timeObservable = WidgetProperties.selection().observe( timeWidget); dbc.bindValue(new DateAndTimeObservableValue(dateObservable, timeObservable), beanValue);A second use is editing only the date or time value of a date-and-time value. This can be accomplished by using a widget-specific observable for the editable value and a WritableValue as a container for the fixed value. The example below allows editing the date while preserving the time:
DataBindingContext dbc = new DataBindingContext(); IObservableValue beanValue = BeansObservables.observeValue(...); IObservableValue dateObservable = WidgetProperties.selection().observe( dateWidget); IObservableValue timeObservable = new WritableValue(dateObservable.getRealm(), beanValue.getValue(), Date.class); dbc.bindValue(new DateAndTimeObservableValue(dateObservable, timeObservable), beanValue);
Constructor Summary | |
---|---|
DateAndTimeObservableValue(IObservableValue dateObservable,
IObservableValue timeObservable)
Constructs a DateAndTimeObservableValue with the specified constituent observables. |
Method Summary | |
---|---|
protected void |
addListener(Object listenerType,
IObservablesListener listener)
|
protected Object |
clone()
|
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 Object |
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()
|
boolean |
isStale()
Returns whether the state of this observable is stale and is expected to change soon. |
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, removeValueChangeListener, setValue |
Methods inherited from class org.eclipse.core.databinding.observable.AbstractObservable |
---|
addChangeListener, 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 |
---|
addChangeListener, addDisposeListener, addStaleListener, getRealm, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListener |
Constructor Detail |
---|
public DateAndTimeObservableValue(IObservableValue dateObservable, IObservableValue timeObservable)
dateObservable
- the observable used for the date component (year, month and
day) of the constructed observable.timeObservable
- the observable used for the time component (hour, minute,
second and millisecond) of the constructed observable.Method Detail |
---|
public Object getValueType()
IObservableValue
null
if this
observable value is untyped.
null
protected void firstListenerAdded()
protected void lastListenerRemoved()
protected Object doGetValue()
doGetValue
in class AbstractObservableValue
protected void doSetValue(Object value)
AbstractObservableValue
UnsupportedOperationException
.
doSetValue
in class AbstractObservableValue
public boolean isStale()
IObservable
isStale
in interface IObservable
isStale
in class AbstractObservableValue
public void dispose()
IObservable
dispose
in interface IObservable
dispose
in class AbstractObservable
protected void addListener(Object listenerType, IObservablesListener listener)
listenerType
- listener
- protected void removeListener(Object listenerType, IObservablesListener listener)
listenerType
- listener
- protected boolean hasListeners()
protected void fireEvent(ObservableEvent event)
public Realm getRealm()
protected Object clone() throws CloneNotSupportedException
clone
in class Object
CloneNotSupportedException
|
Eclipse Platform Release 3.6 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2010. All rights reserved.