Documentation generated
from the Eclipse Help
for the product
Data Binding
Supported for Eclipse 3.3
and above only
Data binding allows easy linking of UI elements and models
so that users can edit or view the data in the model. Traditionally, this is
what you need to do to link, say, a text widget to a String property of a
model object:
Copy the current value of the model property to the
text widget.
Register listeners with the widget and the model
object to propagate changes made on one side to the other side.
The same basic principle applies to binding a list
widget's contents to a collection property of a model object.
Using the data binding framework relieves you from writing
and registering listeners yourself, and provides a common infrastructure for
validation and conversion. It makes it easy to connect data sources to
widgets such as text fields, combos, tables and trees, for viewing and
editing. In real life scenarios, changes on one side are not always
propagated to the other side right away - changes need to be validated,
values converted, and different update policies followed. The data binding
framework covers these more advanced aspects as well.
The Data Bindings menu provides the ability to
quickly create or edit data bindings for a widget. If the widget does not
have any data bindings, the menu immediately cascades out to show the
available properties of the widget that can be bound to a model property. If
the widget has existing data bindings, those are shown at the top of the
cascaded menu followed by a separator and a list of widget properties.
Clicking on an unbound property will open the Create Data
Binding wizard while clicking a bound property will open
the Edit Data Binding
dialog.
.
Bindings
Property
The bindings property in the property
pane opens up to show a list of all bindable properties of the
widget. Clicking the
button next to an unbound property will open the Create Data
Binding wizard while clicking the
button next to a bound property will open the Edit Data Binding dialog.
.
Icon
Decorator
Any widget with a data binding assigned to will show up in
the component tree with an icon decorator:
Source
Designer will generate or update any necessary data binding
code which may then be seen in the Source view. An initDataBindings()
method is created, if it does not already exist and a call to that
method is added to the end of the widget creation process.
Within the initDataBindings() method, any needed
observables are created first followed by the creation of the Data
Binding Context. Simple SWT data bindings are then created using the new
context followed by any JFace content providers, list providers and inputs
that are needed.
Warning: do not edit the initDataBinding()
method by hand (without carefully matching the code generation pattern used
by Designer) as it will be regenerated in its entirety any time Designer
needs to add, remove or update a data binding.
Preferences
Various
preferences are available to control the data binding code that is
generated.