Class DataBindingContext
bindings
, and aggregates validation statuses of its
bindings, or more generally, its validation status providers.
A DataBindingContext provides the following abilities:
- Ability to create bindings between
observable values
. - Ability to create bindings between
observable lists
. - Access to the bindings created by the instance.
- Access to the list of validation status providers (this includes all bindings).
Multiple contexts can be used at any point in time. One strategy for the
management of contexts is the aggregation of validation statuses. For example
an IWizardPage
could use a single context and the statuses could
be aggregated to set the page status and fulfillment. Each page in the
IWizard
would have its own context instance.
Default converters
If the model and target types do not match and no converter is set on the
update strategy object then an attempt is made to find a default converter
between them. IObservableValue.getValueType()
or
IObservableCollection.getElementType()
is used for this.
There are default converters available between the following types:
- Strings to/from numeric types, including
BigInteger
andBigDecimal
. - String to/from boolean, using constant names provided the internal messages file.
- String to/from
Date
, using the pattern in the internal messages file. IStatus
to string, using the status message.Object
to string, usingObject.toString()
.
More default converters might be added in a future version. This might cause the types that now use the object-to-string converter to instead use a more specific converter.
The internal messages file is located at
org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/messages.properties
.
- Since:
- 1.0
-
Constructor Summary
ConstructorDescriptionCreates a data binding context, using the current default realm for the validation observables.DataBindingContext
(Realm validationRealm) Creates a data binding context using the given realm for the validation observables. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addBinding
(Binding binding) Adds the given binding to this data binding context.void
addValidationStatusProvider
(ValidationStatusProvider validationStatusProvider) Adds the given validation status provider to this data binding context.final <T,
M> Binding bindList
(IObservableList<T> targetObservableList, IObservableList<M> modelObservableList) Creates aBinding
to synchronize the values of twoobservable lists
.final <T,
M> Binding bindList
(IObservableList<T> targetObservableList, IObservableList<M> modelObservableList, UpdateListStrategy<? super T, ? extends M> targetToModel, UpdateListStrategy<? super M, ? extends T> modelToTarget) Creates aBinding
to synchronize the values of twoobservable lists
.final <T,
M> Binding bindSet
(IObservableSet<T> targetObservableSet, IObservableSet<M> modelObservableSet) Creates aBinding
to synchronize the values of twoobservable sets
.final <T,
M> Binding bindSet
(IObservableSet<T> targetObservableSet, IObservableSet<M> modelObservableSet, UpdateSetStrategy<? super T, ? extends M> targetToModel, UpdateSetStrategy<? super M, ? extends T> modelToTarget) Creates aBinding
to synchronize the values of twoobservable sets
.final <T,
M> Binding bindValue
(IObservableValue<T> targetObservableValue, IObservableValue<M> modelObservableValue) Creates aBinding
to synchronize the values of twoobservable values
.final <T,
M> Binding bindValue
(IObservableValue<T> targetObservableValue, IObservableValue<M> modelObservableValue, UpdateValueStrategy<? super T, ? extends M> targetToModel, UpdateValueStrategy<? super M, ? extends T> modelToTarget) Creates aBinding
to synchronize the values of twoobservable values
.protected <M,
T> UpdateListStrategy<M, T> createModelToTargetUpdateListStrategy
(IObservableList<M> modelObservableList, IObservableList<T> targetObservableList) Returns an update value strategy to be used for copying value list from the model list to the target list.protected <M,
T> UpdateSetStrategy<M, T> createModelToTargetUpdateSetStrategy
(IObservableSet<M> modelObservableSet, IObservableSet<T> targetObservableSet) Returns an update value strategy to be used for copying value set from the model set to the target set.protected <M,
T> UpdateValueStrategy<M, T> createModelToTargetUpdateValueStrategy
(IObservableValue<M> fromValue, IObservableValue<T> toValue) Returns an update value strategy to be used for copying values from the from value to the to value.protected <T,
M> UpdateListStrategy<T, M> createTargetToModelUpdateListStrategy
(IObservableList<T> targetObservableList, IObservableList<M> modelObservableList) Returns an update value strategy to be used for copying value list from the target list to the model list.protected <T,
M> UpdateSetStrategy<T, M> createTargetToModelUpdateSetStrategy
(IObservableSet<T> targetObservableSet, IObservableSet<M> modelObservableSet) Returns an update value strategy to be used for copying value set from the target set to the model set.protected <T,
M> UpdateValueStrategy<T, M> createTargetToModelUpdateValueStrategy
(IObservableValue<T> fromValue, IObservableValue<M> toValue) Returns an update value strategy to be used for copying values from the from value to the to value.final void
dispose()
Disposes of this data binding context and all bindings and validation status providers that were added to this context.final IObservableList<Binding>
Returns an unmodifiableIObservableList
of all bindings in order by time of addition.final Realm
Returns the validation realm.final IObservableMap<Binding,
IStatus> Deprecated.Returns an unmodifiableIObservableList
of all validation status providers in order by time of addition.boolean
removeBinding
(Binding binding) Removes the given binding.boolean
removeValidationStatusProvider
(ValidationStatusProvider validationStatusProvider) Removes the validation status provider.final void
Updates all model observable objects to reflect the current state of the target observable objects.final void
Updates all target observable objects to reflect the current state of the model observable objects.
-
Constructor Details
-
DataBindingContext
public DataBindingContext()Creates a data binding context, using the current default realm for the validation observables.- See Also:
-
DataBindingContext
Creates a data binding context using the given realm for the validation observables.- Parameters:
validationRealm
- the realm to be used for the validation observables- See Also:
-
-
Method Details
-
bindValue
public final <T,M> Binding bindValue(IObservableValue<T> targetObservableValue, IObservableValue<M> modelObservableValue) Creates aBinding
to synchronize the values of twoobservable values
. This method is an alias forbindValue(targetObservableValue, modelObservableValue, null, null)
.- Parameters:
targetObservableValue
- target value, commonly a UI widgetmodelObservableValue
- model value- Returns:
- created binding
- Since:
- 1.2
-
bindValue
public final <T,M> Binding bindValue(IObservableValue<T> targetObservableValue, IObservableValue<M> modelObservableValue, UpdateValueStrategy<? super T, ? extends M> targetToModel, UpdateValueStrategy<? super M, ? extends T> modelToTarget) Creates aBinding
to synchronize the values of twoobservable values
. During synchronization validation and conversion can be employed to customize the process. For specifics on the customization of the process seeUpdateValueStrategy
.- Parameters:
targetObservableValue
- target value, commonly a UI widgetmodelObservableValue
- model valuetargetToModel
- strategy to employ when the target is the source of the change and the model is the destinationmodelToTarget
- strategy to employ when the model is the source of the change and the target is the destination- Returns:
- created binding
- See Also:
-
createModelToTargetUpdateValueStrategy
protected <M,T> UpdateValueStrategy<M,T> createModelToTargetUpdateValueStrategy(IObservableValue<M> fromValue, IObservableValue<T> toValue) Returns an update value strategy to be used for copying values from the from value to the to value. Clients may override.- Parameters:
fromValue
- from model valuetoValue
- to target value- Returns:
- a update value strategy
-
createTargetToModelUpdateValueStrategy
protected <T,M> UpdateValueStrategy<T,M> createTargetToModelUpdateValueStrategy(IObservableValue<T> fromValue, IObservableValue<M> toValue) Returns an update value strategy to be used for copying values from the from value to the to value. Clients may override.- Parameters:
fromValue
- from target valuetoValue
- to model value- Returns:
- a update value strategy
-
bindList
public final <T,M> Binding bindList(IObservableList<T> targetObservableList, IObservableList<M> modelObservableList) Creates aBinding
to synchronize the values of twoobservable lists
. This method is an alias forbindList(targetObservableList, modelObservableList, null, null)
.- Parameters:
targetObservableList
- target list, commonly a list representing a list in the UImodelObservableList
- model list- Returns:
- created binding
- Since:
- 1.2
- See Also:
-
bindList
public final <T,M> Binding bindList(IObservableList<T> targetObservableList, IObservableList<M> modelObservableList, UpdateListStrategy<? super T, ? extends M> targetToModel, UpdateListStrategy<? super M, ? extends T> modelToTarget) Creates aBinding
to synchronize the values of twoobservable lists
. During synchronization validation and conversion can be employed to customize the process. For specifics on the customization of the process seeUpdateListStrategy
.- Parameters:
targetObservableList
- target list, commonly a list representing a list in the UImodelObservableList
- model listtargetToModel
- strategy to employ when the target is the source of the change and the model is the destinationmodelToTarget
- strategy to employ when the model is the source of the change and the target is the destination- Returns:
- created binding
- See Also:
-
createModelToTargetUpdateListStrategy
protected <M,T> UpdateListStrategy<M,T> createModelToTargetUpdateListStrategy(IObservableList<M> modelObservableList, IObservableList<T> targetObservableList) Returns an update value strategy to be used for copying value list from the model list to the target list. Clients may override.- Parameters:
modelObservableList
- from model listtargetObservableList
- to target list- Returns:
- an update list strategy
-
createTargetToModelUpdateListStrategy
protected <T,M> UpdateListStrategy<T,M> createTargetToModelUpdateListStrategy(IObservableList<T> targetObservableList, IObservableList<M> modelObservableList) Returns an update value strategy to be used for copying value list from the target list to the model list. Clients may override.- Parameters:
targetObservableList
- from target listmodelObservableList
- to model list- Returns:
- an update list strategy
-
bindSet
public final <T,M> Binding bindSet(IObservableSet<T> targetObservableSet, IObservableSet<M> modelObservableSet) Creates aBinding
to synchronize the values of twoobservable sets
. This method is an alias forbindSet(targetObservableValue, modelObservableValue, null, null)
.- Parameters:
targetObservableSet
- target set, commonly a set representing a set in the UImodelObservableSet
- model set- Returns:
- created binding
- Since:
- 1.2
-
bindSet
public final <T,M> Binding bindSet(IObservableSet<T> targetObservableSet, IObservableSet<M> modelObservableSet, UpdateSetStrategy<? super T, ? extends M> targetToModel, UpdateSetStrategy<? super M, ? extends T> modelToTarget) Creates aBinding
to synchronize the values of twoobservable sets
. During synchronization validation and conversion can be employed to customize the process. For specifics on the customization of the process seeUpdateSetStrategy
.- Parameters:
targetObservableSet
- target set, commonly a set representing a set in the UImodelObservableSet
- model settargetToModel
- strategy to employ when the target is the source of the change and the model is the destinationmodelToTarget
- strategy to employ when the model is the source of the change and the target is the destination- Returns:
- created binding
- Since:
- 1.1
-
createTargetToModelUpdateSetStrategy
protected <T,M> UpdateSetStrategy<T,M> createTargetToModelUpdateSetStrategy(IObservableSet<T> targetObservableSet, IObservableSet<M> modelObservableSet) Returns an update value strategy to be used for copying value set from the target set to the model set. Clients may override.- Parameters:
targetObservableSet
- from target setmodelObservableSet
- to model set- Returns:
- a default set update strategy
- Since:
- 1.1
-
createModelToTargetUpdateSetStrategy
protected <M,T> UpdateSetStrategy<M,T> createModelToTargetUpdateSetStrategy(IObservableSet<M> modelObservableSet, IObservableSet<T> targetObservableSet) Returns an update value strategy to be used for copying value set from the model set to the target set. Clients may override.- Parameters:
modelObservableSet
- from model settargetObservableSet
- to target set- Returns:
- a default set update strategy
- Since:
- 1.1
-
dispose
public final void dispose()Disposes of this data binding context and all bindings and validation status providers that were added to this context. This method must be called in thevalidation realm
. -
getBindings
Returns an unmodifiableIObservableList
of all bindings in order by time of addition.- Returns:
- an unmodifiable
IObservableList
of all bindings
-
getValidationStatusProviders
Returns an unmodifiableIObservableList
of all validation status providers in order by time of addition.- Returns:
- an unmodifiable
IObservableList
of all validation status providers - Since:
- 1.1
-
getValidationStatusMap
Deprecated.as of 1.1, please usegetValidationStatusProviders()
Returns anIObservableMap
mapping from bindings to current validation statuses. The keys of the map are the bindings returned bygetBindings()
, and the values are the current IStatus objects for each binding.- Returns:
- the observable map from bindings to status objects.
-
addBinding
Adds the given binding to this data binding context. This will also add the given binding to the list of validation status providers.- Parameters:
binding
- The binding to add.- See Also:
-
addValidationStatusProvider
Adds the given validation status provider to this data binding context.- Parameters:
validationStatusProvider
- The validation status provider to add.- Since:
- 1.1
-
updateModels
public final void updateModels()Updates all model observable objects to reflect the current state of the target observable objects. -
updateTargets
public final void updateTargets()Updates all target observable objects to reflect the current state of the model observable objects. -
removeBinding
Removes the given binding.- Parameters:
binding
- The binding to remove.- Returns:
true
if was associated with the context,false
if not
-
removeValidationStatusProvider
Removes the validation status provider.- Parameters:
validationStatusProvider
- The validation status provider to remove.- Returns:
true
if was associated with the context,false
if not- Since:
- 1.1
-
getValidationRealm
Returns the validation realm.- Returns:
- the realm for the validation observables
- See Also:
-
getValidationStatusProviders()