summaryrefslogtreecommitdiffstats
path: root/documentation
diff options
context:
space:
mode:
Diffstat (limited to 'documentation')
-rw-r--r--documentation/datamodel/datamodel-forms.asciidoc34
1 files changed, 15 insertions, 19 deletions
diff --git a/documentation/datamodel/datamodel-forms.asciidoc b/documentation/datamodel/datamodel-forms.asciidoc
index 62fd9df38c..62d844dee6 100644
--- a/documentation/datamodel/datamodel-forms.asciidoc
+++ b/documentation/datamodel/datamodel-forms.asciidoc
@@ -323,11 +323,11 @@ Even if the user has not edited a field, all validation error will be shown if w
binder.load(new Person());
// This will make all current validation errors visible
-List<ValidationError<?>> validationErrors = binder.validate();
+ValidationStatus<Person> status = binder.validate();
-if (!validationErrors.isEmpty()) {
+if (status.hasErrors()) {
Notification.show("Validation error count: "
- + validationErrors.size());
+ + status.getValidationErrors().size());
}
----
@@ -341,7 +341,7 @@ Handling a checked exception::
----
try {
binder.save(person);
-} catch (BindingException e) {
+} catch (ValidationException e) {
Notification.show("Validation error count: "
+ e.getValidationErrors().size());
}
@@ -566,21 +566,17 @@ We can also define our own status handler to provide a custom way of handling st
----
BinderStatusHandler defaultHandler = binder.getStatusHandler();
-binder.setStatusHandler(results -> {
- String errorMessage = results.stream()
- // Ignore helper and confirmation messages
- .filter(BinderResult::isError)
- // Ignore messages that belong to a specific field
- .filter(error -> !error.getField().isPresent())
- // Create a string out of the remaining messages
- .map(Result::getMessage).map(o -> o.get())
- .collect(Collectors.joining("\n"));
-
- formStatusLabel.setValue(errorMessage);
- formStatusLabel.setVisible(!errorMessage.isEmpty());
-
- // Let the default handler show messages for each field
- defaultHandler.accept(event);
+binder.setStatusHandler(status -> {
+ // create an error message on failed bean level validations
+ List<Result<?>> errors = status.getBeanValidationErrors();
+ String errorMessage = errors.stream().map(Result::getMessage)
+ .map(o -> o.get()).collect(Collectors.joining("\n"));
+ // show error in a label
+ formStatusLabel.setValue(errorMessage);
+ formStatusLabel.setVisible(!errorMessage.isEmpty());
+
+ // Let the default handler show messages for each field
+ defaultHandler.accept(status);
});
----