All notable changes to this project will be documented in this file.
- Support for validations using new annotations @AFXValidateRequired, @AFXValidateBoolean, @AFXValidateCustom, @AFXValidateMinMax, @AFXValidateSize, @AFXValidateRegExp and @AFXValidateTemporal.
- Extended @AFXFormMapping annotation in order to support validation
- Extended @AFXEnableNode and @AFXDisableNode in order to enable/disable JavaFX nodes depending on a validation result
- Upgraded Gradle to 7.5.1
- Updated dependencies:
- Spring Boot to 2.7.10
- Classgraph to 4.8.157
- ByteBuddy to 1.11.22
This release is only a minor enhancement release.
- Spelling error: Changed method name "AFXUtils.enableNodeWhenPropertyHasExpectValue" to "AFXUtils.enableNodeWhenPropertyHasExpectedValue"
- Updated dependencies:
- Spring Boot to 2.7.0
- Classgraph to 4.8.147
This release is only a minor technical upgrade.
- Updated dependencies:
- JavaFX to 18.0.1
- Classgraph to 4.8.146
- Logback to 1.2.11
- ControlsFX to 11.1.1
- JavaFX Gradle Plugin to 0.0.13
- Mockito to 4.5.1
- Introduced new module "actionfx-appfactory" with JavaFX app to generate new ActionFX projects and generate code for ActionFX controller based on existing FXML
- Support for a basic publish/subscribe mechanism for ActionFX controller methods using @AFXSubscribe
- Refactored usage of ActionFX' bean container - Method "ActionFX.scanForActionFXComponents()" no longer accepts a bean container instance.
- Added autodetection for bean container to use - in case the "actionfx-spring-boot" module is on the classpath, ActionFX' "SpringBeanContainer" is automatically used (except autodetection is disabled via configuration or the "AFXApplication" annotation).
- Fixed life-cycle bug for ActionFX controller in Spring (lazy initialization was not possible with Spring)
- Fixed children lookup bug for Accordion (which does not have the "javafx.beans.DefaultProperty" annotation for some reason)
- Fixed file extension filter issue in open file / save file dialogue: Extensions were not displayed.
- Upgraded build system to Gradle 7.4.2
- Added Gitpod development support via own Dockerfile
- Updated dependencies:
- JavaFX 17.0.1
- Spring Boot to 2.6.7
- Spring to 5.3.20
- Support for mapping a custom domain object to form controls via @AFXFormBinding and @AFXFormMapping.
- Added convenience methods for accessing the view from a controller to class "ActionFX" (showView, showViewAndWait, hideView)
- Extended annotation @AFXControlValue to specify the
sourceProperty
from where the value shall be taken andformatPattern
for type conversions to floating point numbers or dates - Updated dependencies:
- ByteBuddy to 1.11.5
- New dependency commons-beanutils 1.9.4
- Added attribute 'filterPredicateProperty' to annotation @AFXUseFilteredList in order to bind a predicate to the filtered list directly
- Extended ControllerWrapper class to retrieve the java.util.ResourceBundle from the controller instance
- Annotation @AFXOnAction now supports asynchronous method invocation via attribute 'async'.
- Support for working with simple dialogs like confirmation-, information-, warning-, error-, file handling- and text input dialogs.
- Added annotation @AFXRequiresUserConfirmation: Methods are only executed after the user confirms via a confirmation dialog.
- Added method argument annotations @AFXFromFileOpenDialog, @AFXFromFileSaveDialog, @AFXFromFileChooserDialog and @AFXFromTextInputDialog to request values from the user via dialogs.
- Changed @AFXOnAction#controlId attribute to @AFXOnAction#nodeId as also regular nodes (not controls) can have an "onAction" property (e.g. "MenuItem").
- Added field annotations @AFXEnableNode and @AFXDisableNode to control a node's disabledProperty() depending on other control values
- Added new sample application "TextEditor"
- Extended AFXCellValueConfig annotation by 'editable' attribute for making cells in TableView, TreeTableView, TreeView and ListView editable by the user
- ActionFX' annotation-based features are implemented as "controller extensions"
- Users can add controller extension when building the ActionFX instance at startup.
- Statically coded, non-FXML views are now supported by controllers via the @AFXController.viewClass() attribute.
- Added support for configuring cell value factories via annotation @AFXCellValueConfig.
- Added support for adding converter to components via annotation @AFXConverter.
- Upgraded dependencies:
- JavaFX to version 16 (minor versions starting from 11 are also possible)
- Classgraph to version 4.8.104
- Added support for internationalization (resource bundles are used for actionfx-core and Spring's org.springframework.context.MessageSource can be used in Spring environments as alternative)#
- Default byte-code enhancement strategy is SUBCLASSING
- Renamed library modules from "afx-" to "actionfx-" (e.g. "afx-core" to "actionfx-core".
- Support for wrapping controls in order to uniquely access e.g. the "user value".
- Added further annotations for ActionFX controllers: @AFXArgHint, @AFXControlValue, @AFXEnableMultiSelection, @AFXLoadControlData. @AFXOnAction, @AFXOnControlValueChange
- Added support for asynchronous method invocations (also used from the above mentioned annotations)
- Updated documentation
- Initial project setup