Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
JFace Data Binding/Converter
In JFace Data Binding converters are used to convert from one value type to another.
JFace Data Binding |
Home |
How to Contribute |
FAQ |
Snippets |
Concepts |
Binding |
Converter |
Observable |
Realm |
Converters, implementations of org.eclipse.core.databinding.conversion.IConverter
, are a basic yet core part of the binding pipeline. They allow for the conversion between data types. This conversion can be as basic as converting from a primitive (e.g. boolean.class) to a boxed type (e.g. Boolean.class) or as complex as converting a String to an int.
To convert a value within a data binding, create an UpdateValueStrategy and set your converter to it. Then use that update strategy in the data binding.
Implementation Design Principles
- It's best for the converter to be immutable. This will allow for greater reuse of the instance especially across threads.
- Synchronize during convert(...) if necessary. A good example of this is using
com.ibm.icu.text.NumberFormat
in a converter. NumberFormat expects to be externally synchronized as the state of NumberFormat changes during formatting and parsing. In order to be used across threads access to the internal NumberFormat must be synchronized. - If the converter is converting to a primitive from an object ensure null is handled.