[REVIEW REQUEST] Pre-built StringConverter Implementations
jonathan.giles at oracle.com
Tue Dec 20 21:37:07 PST 2011
With the introduction of the ComboBox control (and discussion around
editable Spinner and future controls like the Calendar Picker) we are
more formally working towards consistently using the StringConverter in
various places in the controls API, and usages of this class will only
become more prevalent over time.
One of the goals for JavaFX after shipping JavaFX 2.0 was to fill in the
gaps in the API. One gap that is now more important than ever is to
provide a number of pre-built StringConverters, and this is what I'm
keen to have reviewed today. As part of introducing the ComboBox
control, I'm wanting to make available a number of these
implementations. You can find all source code to these implementations
in the Jira issue for the ComboBox control .
All implementations are forked from JSR-273: Design-Time API for
JavaBeans (JBDT), in particular, the code from the package
javax.beans.convert . This is the same JSR that Rich recently forked
for design time APIs that appeared in the repo. There have been some
changes in the forked code:
* All classes have been renamed from <type>PropertyConverter to
* All classes extend javafx.util.StringConverter rather than
* StringConverter, having a generic type, allows for the method
signatures to be more type-specific, which we now take advantage of.
At a higher level, this API will be a new javafx-ui-converter project
inside the open source 'rt' folder. With regard to unit tests, it is my
intention to write unit tests to cover all use cases, to ensure validity
and consistency. Presently I have 150 unit tests that cover 84% of lines
and 74% of branches, and this will increase as time permits.
I do have some questions:
* Can people foresee any issues with the more tightly-constrained
generics? I can't imagine there being an issue, but let me know...
* What used to be called StringPropertyConverter is now called
DefaultStringConverter, which is a kind of a shame (with 'Default' being
a bit of a misnomer). Sure, to be accurate I'd call it
StringStringConverter, but that ain't any better... :-)
Any feedback would be much appreciated.
More information about the openjfx-dev