From d46ff97367b32ecab01f7dc0f7efda13373cc4c0 Mon Sep 17 00:00:00 2001 From: Marcus Hellberg Date: Tue, 2 Apr 2024 10:02:00 -0700 Subject: [PATCH] Change form biding to use BeanValidationBinder --- .../src/main/java/com/baeldung/spring/EmployeeEditor.java | 7 ++++--- .../src/main/java/com/baeldung/spring/EmployeesView.java | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/vaadin/src/main/java/com/baeldung/spring/EmployeeEditor.java b/vaadin/src/main/java/com/baeldung/spring/EmployeeEditor.java index 0bc2c61e20..7984ecce05 100644 --- a/vaadin/src/main/java/com/baeldung/spring/EmployeeEditor.java +++ b/vaadin/src/main/java/com/baeldung/spring/EmployeeEditor.java @@ -9,6 +9,7 @@ import com.vaadin.flow.component.icon.VaadinIcon; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; import com.vaadin.flow.component.textfield.TextField; +import com.vaadin.flow.data.binder.BeanValidationBinder; import com.vaadin.flow.data.binder.Binder; public class EmployeeEditor extends Composite { @@ -31,7 +32,7 @@ public class EmployeeEditor extends Composite { private DeleteListener deleteListener; private CancelListener cancelListener; - private final Binder binder = new Binder<>(Employee.class); + private final Binder binder = new BeanValidationBinder<>(Employee.class); public EmployeeEditor() { var firstName = new TextField("First name"); @@ -41,8 +42,8 @@ public EmployeeEditor() { var cancel = new Button("Cancel"); var delete = new Button("Delete", VaadinIcon.TRASH.create()); - binder.forField(firstName).bind(Employee::getFirstName, Employee::setFirstName); - binder.forField(lastName).bind(Employee::getLastName, Employee::setLastName); + binder.forField(firstName).bind("firstName"); + binder.forField(lastName).bind("lastName"); save.addThemeVariants(ButtonVariant.LUMO_PRIMARY); save.addClickListener(e -> save()); diff --git a/vaadin/src/main/java/com/baeldung/spring/EmployeesView.java b/vaadin/src/main/java/com/baeldung/spring/EmployeesView.java index 8b78b1b1c5..edb1f7a75b 100644 --- a/vaadin/src/main/java/com/baeldung/spring/EmployeesView.java +++ b/vaadin/src/main/java/com/baeldung/spring/EmployeesView.java @@ -37,7 +37,7 @@ public class EmployeesView extends VerticalLayout { addButton.addClickListener(e -> editEmployee(new Employee())); filter.setPlaceholder("Filter by last name"); - filter.setValueChangeMode(ValueChangeMode.EAGER); + filter.setValueChangeMode(ValueChangeMode.LAZY); filter.addValueChangeListener(e -> updateEmployees(e.getValue())); grid.setHeight("200px");