Spring Boot
Release Notes
Version 2.7.6
Version Updates
The following versions have been updated:
| Dependency | New version | Previous version |
|---|---|---|
3.4.11 (Release Notes) |
3.4.9 |
Bugfixes
-
In version
2.7.5, entering a value to a cell inside a table created with@UITableComponentand traversing with the tab-key results in loosing focus. Starting with2.7.6, the behavior has been fixed.
Version 2.7.5
Bugfixes
-
In version
2.7.4, the linkki-bom was published incorrectly and did not contain anydependencyManagemententries. This issue affects only version2.7.4. Starting with2.7.5, the BOM has been fixed and works as expected.
Version 2.7.4
Version Updates
The following versions have been updated:
Dependency |
New version |
Previous version |
Spring Boot |
3.4.9 (Release Notes) |
3.4.7 |
Version 2.7.3
Version Updates
The following versions have been updated:
Dependency |
New version |
Previous version |
Spring Boot |
3.4.5 (Release Notes) |
3.4.3 |
Version 2.7.2
Version Updates
The following versions have been updated:
Dependency |
New version |
Previous version |
Faktor-IPS |
25.1.3.release (Release Notes) |
25.1.2.release |
Vaadin |
24.5.14 (Release Notes) |
24.5.12 |
Bugfixes
-
Required fields (e.g.,
TextField,ComboBox) were not marked red when prefilled with an invalid value under certain conditions. This was a Vaadin bug that is fixed with this version. Note that the issue only appeared in 2.7.1 and does not affect 2.7.0.
Version 2.7.1
Version Updates
The following versions have been updated:
| Dependency | New version | Previous version |
|---|---|---|
Faktor-IPS |
25.1.2.release (Release Notes) |
25.1.0.release |
Vaadin |
24.5.12 (Release Notes) |
24.5.8 |
Spring Boot |
3.4.3 (Release Notes) |
3.4.1 |
Bugfixes
-
Loading indicator of a grid is not visible if placeholder is set and the grid does not have full height.
Version 2.7.0
The release notes contain changes compared to version 2.6.2.
Version Updates
The following versions have been updated:
| Dependency | New version | Previous version |
|---|---|---|
Faktor-IPS |
25.1.0.release (Release Notes) |
24.7.5.release |
Vaadin |
24.5.8 (Release Notes) |
24.4.16 |
Spring Boot |
3.4.1 (Release Notes) |
3.3.5 |
The Vaadin version update brings some notable changes that affect linkki applications:
-
New properties in
LumoUtility: InLumoUtilitynew properties have been added, most notably a utility class to setflexto 1. Existing custom CSS classes can thus be replaced by the new utility class. -
Setting
reactEnabletofalsein thevaadin-maven-pluginleads to a Vite error on startup of the application due to missing vaadin-router resources.
As the react router now behaves mostly like the legacy vaadin router, it may be an option to remove the configuration and use the default react router instead.
If the configuration should be kepft, the propertyvaadin.react.enableneeds to be set tofalsetoo. See https://vaadin.com/docs/latest/upgrading#opting-out-of-react
UI Annotations and Aspects
-
New annotation: @UICheckboxes
A new UI component,@UICheckboxes, is now available, providing a way to create a checkbox group for related binary choices. For more information, see here. -
New annotation: @UILongField
A new UI component,@UILongField, is now available, providing a way to accept a number with data typelong. For more information, see here. -
@UIComboBox: Automatically focus first applicable element
If a character or word is entered into a combobox and there is only one matching element, then this element gets selected automatically.- Example
-
A combobox has the values UP, DOWN, LEFT, RIGHT.
If the user enters 'u', the entry UP is selected automatically.
If the user enters 't', there are two possible matches (LEFT and RIGHT) and therefore no entry is selected automatically.
-
@UILabel: support for asynchronously loaded values
UILabelhas been enhanced to handle asynchronous value loading usingCompletableFutureas return type. A loading indicator will be displayed until the value is available. Refer to UILabel documentation for more details. -
New aspect annotation: @BindClosable for sections
A new aspect annotation,@BindClosable, is now available, providing a way to create closable sections with the option to have them initially closed. For more information, see here. -
@BindPlaceholder: support for sections
The @BindPlaceholder annotation can now be used on a@UISectionto set a placeholder text if the section has no child elements or all child elements are invisible.@BindPlaceholder on @UISection@BindPlaceholder @UISection(caption = "@UISection with @BindPlaceholder") public class SectionWithBindPlaceholder { public String getPlaceholder() { return "This section is empty"; } }The old solution using an extra
UILabelwith the styleLinkkiTheme.Text.TEXT_PLACEHOLDERis now obsolete and should be replaced as it did not work correctly with different layout options.Old solution with UILabel and style LinkkiTheme.Text.TEXT_PLACEHOLDER@UISection(caption = "@UISection with placeholder label") public class SectionWithPlaceholderLabel { @UILabel(position = 10, label = "", styleNames = LinkkiTheme.Text.TEXT_PLACEHOLDER) public String getPlaceholder() { return "This is a placeholder."; } }LinkkiTheme.Text.TEXT_PLACEHOLDERhas been deprecated and should not be used anymore as it did not work consistently for varying label width. Use@BindPlaceholderon@UISectioninstead (see above).
Other Improvements
-
Unique IDs for exceptions
If an exception occurs in the application, it will be displayed by the configured error handler or an error page in case of an exception during navigation. With the default configuration, the exception is now logged with a unique ID that is also displayed in the UI, making it easier to find the exception in the logs. Custom implementation may need to be adapted to be able to make use of this feature. -
Karibu testing: more utilities
TheKaribuUIExtensionhas been extended with possibilities to add error routes and to set production mode. The documentation has been improved accordingly.
Many useful methods were also added to the KaribuUtils to make it even easier to write Karibu tests, such as-
methods for printing out any component as String. This can be used to assert that certain text is or is not displayed anywhere in the UI, disregarding the placement or the actual component that is used.
-
methods for setting value input fields and consistently firing change events
-
methods for tables
-
-
Testbench extension: support for table placeholder
The new page objectLinkkiGridElementadds support to retrieve the placeholder text of a table. It can be used instead ofGridElement, e.g.$(LinkkiGridElement.class). -
Tutorial in the documentation
The linkki tutorial is now part of this documentation.
Bugfixes
-
LabelComponentWrapper#setLabel()now callsHasLabel#setLabel()if the component is an instance ofHasLabelinstead of setting the HTML property directly. -
The items of a table created with
@UITableComponentare now only fetched asynchronously if the return type isCompletableFuture. The documentation is updated accordingly. -
Card sections theme now only applies to dialogs if the theme is explicitly set on the dialog itself or a child layout.
-
The disabled and readonly style of radio buttons and checkboxes has been harmonised to follow the linkki style guidelines.
-
DefaultCaptionProvidernow takes the provided locale into account and translates the captions accordingly. -
The recommended .gitignore file is now added in generated archetype projects.
-
Components within a form layout that are required and have an empty/ blank label do not scroll anymore.
-
@UIDecimalFieldnow handles very large numbers without unwanted rounding. -
Previously, setting the value to
nullin@UIRadioButtonsfailed to check the appropriate radio button. Now, selectingnullcorrectly checks the "Not specified" radio button, ensuring proper representation.With this bug fix, the converter must now be able to handle null-valued presentation values. Although this was already part of the
Convertercontract, it can now lead to an exception inValueAspectDefinition. -
Disabled, readonly and checked radio buttons are now displayed correctly