<Label JavaFXUtils.i18nKey="key.label"
JavaFXUtils.i18nArgs="one, two"
JavaFXUtils.i18nDefaultValue="No value supplied"/>
01 December 2016
The following dependencies have been upgraded
org.jetbrains.kotlin:kotlin-stdlib:1.0.5-2
Action properties can now react to changes made to the application’s Locale.
Any properties configured via messages.properties will be refreshed when the application’s
Locale changes value.
Labeled, Tab and MenuItem nodes can react to changes made to the application’s Locale provided you supply enough
information to resolve the target message. JavaFXUtils exposes 3 new properties and 1 connect method to make this feature
work. You may use these properties with FXML, for example
<Label JavaFXUtils.i18nKey="key.label"
JavaFXUtils.i18nArgs="one, two"
JavaFXUtils.i18nDefaultValue="No value supplied"/>
You must use the connect method on the View class too, like so
Node node = loadFromFXML();
if (node instanceof Parent) {
scene.setRoot((Parent) node);
} else {
((Group) scene.getRoot()).getChildren().addAll(node);
}
connectActions(node, controller);
connectMessageSource(node);
JavaFXAction supports four new properties:
style: used to set style on the bound widget.
graphic: used to set the graphic node on the bound widget.
graphicStyle: used to set style on the graphic node of the bound widget.
graphicStyleClass: used to set style classes on the graphic node of the bound widget.
You may define a & at the beginning of the value of either style or graphicStyle properties,
this instructs the runtime to append the style definition instead of overwriting it.
New CollectionBindings class provides binding factories on ObservableList/ObservableSet/ObservableMap
Join source observable collection to StringBinding.
Calculate min, max, average, and sum on source observable collection.
New FilteringBindings class provides filtering capabilities on ObservableList/ObservableSet/ObservableMap
Filter ObservableList/ObservableSet/ObservableMap and find first match, creating a ObjectBinding.
Filter ObservableList/ObservableSet/ObservableMap then map and find first match to X; where X may be a wrapper type, String or a type R.
Map elements of ObservableList/ObservableSet/ObservableMap to X then filter and find first match; where X may be a wrapper type, String or a type R.
New ReducingBindings class provides reduce capabilities on ObservableList/ObservableSet/ObservableMap
Reduce ObservableList/ObservableSet/ObservableMap to ObjectBinding.
Reduce ObservableList/ObservableSet/ObservableMap then map to X; where X may be a wrapper type, String or a type R.
Map elements of ObservableList/ObservableSet/ObservableMap to X then reduce; where X may be a wrapper type, String or a type R.
New MappingBindings class provides lots of useful binding and property factories
Convert ObservableValue<X> to is corresponding XBinding.
Convert ObservableXValue to ObjectBinding<X>.
Create bindings that update their value and notify listeners inside the UI thread.
Gradle wrapper version on all Lazybones templates has been bumped to 3.2.
Full binary compatibility report between Griffon 2.9.0 and 2.8.0 can be found here.
A list of fixed issues can be found at the 2.9.0 milestone page.