New & Noteworthy

1.0.2

Bug Fixes

  • PmoBasedDialogFactory#newOkDialog throws NullPointerException

1.0.1

HTML content in @BindTooltip

Before migrating to Vaadin 8, the annotation BindTooltip supported HTML content by default. However, this behavior has been changed in Vaadin 8 due to security concerns. To mitigate this change for our users, BindTooltip now supports selected HTML tags that are commonly considered safe, such as <strong> and <em>. For a full list of supported tags, see JavaDoc of the annotation.

Bugfix: dialogs opened in View#open are closed immediately

OkCancelDialogs are closed automatically when the URL changes. While this features still works as intended, the timing of when the URL change event is fired has changed in Vaadin 8. The changed timing lead to the bug that OkCancelDialogs that are opened in the enter method of a View are closed immediately, thus are never visible to the user. This bug is fixed now.

1.0

New method in BindingManager to create a BindingContext with a PropertyBehaviorProvider

For a while now, BindingContexts can accept a PropertyBehaviorProvider that defines which behaviors are to be used for all bindings in the context. However, BindingManager does not directly offer any support for PropertyBehaviors when creating new BindingContexts yet. In the default implementation DefaultBindingManager, the constructor accepts a PropertyBehaviorProvider that is used for all new BindingContexts. No individual choices can be made.

In the new linkki version, BindingManager is extended with two new methods createContext(Class, PropertyBehaviorProvider) and createContext(String, PropertyBehaviorProvider). These methods enables the caller to create a BindingContext using the specific behaviors that are passed to the method. The section "Using PropertyBehaviors with a BindingManager" in chapter "architecture" of the documentation contains further information about these methods.

If you are creating an AbstractPage which should use a custom PropertyBehaviorProvider, you can create a new BindingContext using the new methods, and use this context in the method getBindingContext().

Changed argument order in PmoBasedDialogFactory

The openOkCancelDialog(String, Object, Handler) method in PmoBasedDialogFactory is deprecated as the method had different argument order compared to newOkCancelDialog() method. Use openOkCancelDialog(String, Handler, Handler, Object…​) instead. It creates a new OkCancelDialog based on multiple PMOs and opens the dialog.

To mirror the corresponding newOkDialog following methods are also introduced in PmoBasedDialogFactory.

New Methods Description

openOkDialog(String, Object…​)

creates a new OkCancelDialog and opens the dialog.

openOkCancelDialog(String, Handler , Object…​)

creates a new OkCancelDialog based on multiple PMOs with okHandler and opens the dialog

Default constructor for DefaultBindingManager

In the previous versions, a ValidationService is required to create a DefaultBindingManager. However, it is often sufficient to use a DefaultBindingManager with no validation service at all. For this reason, DefaultBindingManager now has a default constructor which creates a new instance with ValidationService.NOP_VALIDATION_SERVICE.

startNewContext deprecated

The BindingManager’s `startNewContext method has been deprecated, as it is no longer necessary to explicitly start a context. When getContext is called, a new context is created as necessary. Existing calls can be refactored with 0.9.20190528_to_latest/migrate.sed.

Update to Vaadin 8.8.5

To benefit from bugfixes in the latest patch releases of Vaadin, the dependency of linkki-vaadin8 has been updated to Vaadin 8.8.5. You can read the change logs for Vaadin 8.8.3, 8.8.4 and 8.8.5.

New module linkki-ips-vaadin8

A new module linkki-ips-vaadin8 provides linkki components and utilities for projects using Faktor-IPS. This modules contains an UI annotation for the data type Decimal, as well as converters to create linkki validation messages from Faktor-IPS messages.

Bugfixes

  • When using a PMO property with dynamic fields with different bound model attributes, every field was bound to the first annotation’s model attribute.

  • The value of a ComboBox was sometimes removed upon update of the BindingContext.

  • LinkkiUi initialization order was changed, so that the correct Locale is present when the ApplicationLayout is created.