Difference between revisions of "JFace Data Binding"

From Eclipsepedia

Jump to: navigation, search
m (Requirements and Design)
 
(40 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 +
__NOTOC__
 
JFace Data Binding is a multi-threaded set of abstractions that allow for automated validation and synchronization of values between objects.  This is commonly used for, but not limited to, the binding of user interface components to model attributes.  The core concepts behind the project are [[Observables]] and [[Binding | Bindings]].  We provide IObservable implementations for SWT,  JFace, and JavaBeans but the core is void of references to these in anticipation of implementations for other projects (e.g. EMF, Swing, etc.).
 
JFace Data Binding is a multi-threaded set of abstractions that allow for automated validation and synchronization of values between objects.  This is commonly used for, but not limited to, the binding of user interface components to model attributes.  The core concepts behind the project are [[Observables]] and [[Binding | Bindings]].  We provide IObservable implementations for SWT,  JFace, and JavaBeans but the core is void of references to these in anticipation of implementations for other projects (e.g. EMF, Swing, etc.).
 
{{JFace Data Binding}}
 
{{JFace Data Binding}}
== Articles ==
 
=== Concepts ===
 
* [[Observables]]
 
* [[Binding | Bindings]]
 
* [[Converters]]
 
* Validators
 
* [[Realm|Realms]]
 
* Master Detail
 
  
=== Requirements and Design ===
+
<table border="0"  width="100%" cellspacing="6">
* [[JFace Data Binding Introduction]]
+
<tr>
* [[JFace Data Binding Design]] Document
+
<td valign="top" width="33%">
* [[/Scenarios | Scenarios]] Document
+
<h3>Tutorials & Presentations</h3>
 +
* [[/Getting started | Getting Started]]
 +
* [[/Tutorial | Tutorial]]
 +
* [[/Snippets | Snippets]]
 +
* [http://www.vogella.com/articles/EclipseDataBinding/article.html Eclipse JFace Databinding and Validation - Tutorial]
 +
* [[JFace Data Binding Introduction|High-Level Description of Data Binding]]
 +
* [http://it-republik.de/jaxenter/artikel/Eclipse-DataBinding-fuer-die-Kommunikation-zwischen-Modell-und-GUI-1353.html#toplink/  Eclipsemagazin 04 / 2007 (German)]
  
=== Tutorials & Presentations ===
+
<h3>Concepts</h3>
* [[Data Binding HOWTO]] Document
+
* [[/Observable|Observable]]: value, list, set, or map whose state changes can be observed
* [[Media:Databinding.pdf | Dave Orme's EclipseCon 2006 Lightning Talk slides]] ''(The code in this presentation is out of date and should not be used as an example but the concepts are still relevant.)''
+
* [[/Binding|Binding]]: keeps the state of two observables in sync, uni- or bidirectional
* [https://admin.adobe.acrobat.com/_a300965365/p77464314/ JFace Data Binding Webinar]
+
* [[/Data_Binding_Context|Data Binding Context]]: a container for bindings
* [[Media:Databinding.zip | Dave and Boris's EclipseCon 2007 long talk and slides]]
+
* [[/Converter|Converter]]: used by a binding to convert values
 +
* [[/Validators|Validators]]: used by a binding to validate values
 +
* [[/Realm|Realm]]: serializes access to observables (every observable belongs to a realm)
 +
* [[/TrackedGetter|Tracked Getter]]: makes the system aware of observables that a piece of code depends on
 +
* [[/Master_Detail|Master-Detail]]: used when you want to bind to attributes of the currently selected object, rather than a fixed object
 +
* [[/The New Binding API|Bind]]: the new and improved binding API
 +
</td>
 +
<td valign="top" width="33%">
  
=== Miscellaneous ===
+
<h3>Miscellaneous</h3>
 
* [[/FAQ | FAQ]]
 
* [[/FAQ | FAQ]]
 +
* [http://fire-change-event.blogspot.com/  fireChangeEvent() Blog]
 +
* [[/How to Contribute | How to Contribute]]
 +
* [[/Wiki Guidelines|Wiki Guidelines]]
 +
* [[/Conformance Tests|Conformance Tests]]
 +
* [[/EMF|Binding to EMF]]
 +
* [[/GWT|Binding to GWT (experimental work)]]
 +
* [[/DOM|Binding to DOM (experimental work)]]
 +
* [[/SSE|Binding to SSE (DOM, EMF, CSS) (experimental work)]]
 +
* [[/Rhino|Binding to Rhino (Javascript Scriptable Object) (experimental work)]]
 +
* [[/PojoBindable|Binding to Pojo (by using NOT BeansObservable) (experimental work)]]
 +
* [[/JSR303BeanJFaceDatabindingValidation|JFace Databinding Validation with JSR-303 (experimental work)]]
 +
</td>
 +
</tr>
 +
</table>
  
 
== Contact Us ==
 
== Contact Us ==
The [http://www.eclipse.org/newsportal/thread.php?group=eclipse.platform Platform newsgroup] is the place for discussions and questions relating to JFace Data Binding. When posting please prefix the subject with "[DataBinding]" to allow us to easily find posts related to the project.
+
The [http://www.eclipse.org/newsportal/thread.php?group=eclipse.platform.jface JFace newsgroup] is the place for discussions and questions relating to JFace Data Binding. When posting please prefix the subject with "[DataBinding]" to allow us to easily find posts related to the project.
  
 
Design discussions and bugs are located on [https://bugs.eclipse.org/bugs/ Eclipse bugzilla] with a the values...
 
Design discussions and bugs are located on [https://bugs.eclipse.org/bugs/ Eclipse bugzilla] with a the values...
Line 35: Line 55:
  
 
== Getting Involved ==
 
== Getting Involved ==
There are many ways to get involved with JFace Data Binding...
+
There are many ways to get involved with JFace Data Binding.  To find out how you can contribute see [[/How to Contribute|How to Contribute]].
* Answer questions on newsgroup - we try to be prompt and responsive on the [http://www.eclipse.org/newsportal/thread.php?group=eclipse.platform newsgroup] but there's always room for improvement.  If you know the answer to a query feel free to answer.
+
* Write patches for new or existing bugs - When logging a bug if a patch is included it will increase the likelihood and speed at which the fix is made.  To make a great impression, attach a test as well.
+
* Write documentation or tutorials - A project can never have too much documentation.  We're in need of updates for the wiki and we're looking for more tutorials.
+
* Let us know how you feel - Feedback, whether positive or negative, is always appreciated.  This can be done via the newsgroup, existing bugs, or plan items in bugzilla.
+
  
== Project Status ==
+
== Historical Documents ==
JFace Data Binding 1.0 will be released with Eclipse 3.3, [[Europa Simultaneous Release | Europa]].  We have a few [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=%5BDataBinding%5D&classification=Eclipse&product=Platform&component=UI&target_milestone=3.3+M6&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=api&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= API additions or changes] that are scheduled to occur before 3.3M6 is released.
+
* [https://admin.adobe.acrobat.com/_a300965365/p77464314/ JFace Data Binding Webinar] ''(The code in this presentation is slightly out of date - converters and validators are set up differently in the final 1.0 API.)''
 +
* [[Media:Databinding.zip | Dave and Boris's EclipseCon 2007 long talk and slides]](Slightly out of date)
 +
* [[Media:Databinding.pdf | Dave Orme's EclipseCon 2006 Lightning Talk slides]] ''(This presentation is outdated. The concepts are still relevant though.)''
 +
* [[/Original Design | Original Design Document]]
 +
* [[/Scenarios | Scenarios Document]]
 +
 
 +
== Project Release Status ==
 +
JFace Data Binding 1.0 was released with Eclipse 3.3, [[Europa Simultaneous Release | Europa]].  The Eclipse 3.3.1 release (Europa Fall Maintenance Release) contains a number of [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=%5BDataBinding%5D&classification=Eclipse&product=Platform&component=UI&target_milestone=3.3.1&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= bug fixes].
 +
 
 +
[[Category:Data Binding]][[Category:Platform UI]]

Latest revision as of 07:32, 14 August 2013

JFace Data Binding is a multi-threaded set of abstractions that allow for automated validation and synchronization of values between objects. This is commonly used for, but not limited to, the binding of user interface components to model attributes. The core concepts behind the project are Observables and Bindings. We provide IObservable implementations for SWT, JFace, and JavaBeans but the core is void of references to these in anticipation of implementations for other projects (e.g. EMF, Swing, etc.).

JFace Data Binding
Home
How to Contribute
FAQ
Snippets
Concepts
Binding
Converter
Observable
Realm

Tutorials & Presentations

Concepts

  • Observable: value, list, set, or map whose state changes can be observed
  • Binding: keeps the state of two observables in sync, uni- or bidirectional
  • Data Binding Context: a container for bindings
  • Converter: used by a binding to convert values
  • Validators: used by a binding to validate values
  • Realm: serializes access to observables (every observable belongs to a realm)
  • Tracked Getter: makes the system aware of observables that a piece of code depends on
  • Master-Detail: used when you want to bind to attributes of the currently selected object, rather than a fixed object
  • Bind: the new and improved binding API

Miscellaneous

[edit] Contact Us

The JFace newsgroup is the place for discussions and questions relating to JFace Data Binding. When posting please prefix the subject with "[DataBinding]" to allow us to easily find posts related to the project.

Design discussions and bugs are located on Eclipse bugzilla with a the values...

Classification 
Eclipse
Product 
Platform
Component 
UI

Like posts to the newsgroup when logging bugs please prefix the summary with "[DataBinding]" to allow for easier identification.

[edit] Getting Involved

There are many ways to get involved with JFace Data Binding. To find out how you can contribute see How to Contribute.

[edit] Historical Documents

[edit] Project Release Status

JFace Data Binding 1.0 was released with Eclipse 3.3, Europa. The Eclipse 3.3.1 release (Europa Fall Maintenance Release) contains a number of bug fixes.