diff --git a/vaadin-spring/src/main/java/com/baeldung/EmployeeEditor.java b/vaadin-spring/src/main/java/com/baeldung/EmployeeEditor.java index c10c88978b..ee312786d1 100644 --- a/vaadin-spring/src/main/java/com/baeldung/EmployeeEditor.java +++ b/vaadin-spring/src/main/java/com/baeldung/EmployeeEditor.java @@ -12,31 +12,17 @@ import com.vaadin.flow.spring.annotation.SpringComponent; import com.vaadin.flow.spring.annotation.UIScope; import org.springframework.beans.factory.annotation.Autowired; -/** - * A simple example to introduce building forms. As your real application is probably much - * more complicated than this example, you could re-use this form in multiple places. This - * example component is only used in MainView. - *
- * In a real world application you'll most likely using a common super class for all your
- * forms - less code, better UX.
- */
@SpringComponent
@UIScope
public class EmployeeEditor extends VerticalLayout implements KeyNotifier {
private final EmployeeRepository repository;
- /**
- * The currently edited employee
- */
private Employee employee;
- /* Fields to edit properties in Employee entity */
TextField firstName = new TextField("First name");
TextField lastName = new TextField("Last name");
- /* Action buttons */
- // TODO why more code?
Button save = new Button("Save", VaadinIcon.CHECK.create());
Button cancel = new Button("Cancel");
Button delete = new Button("Delete", VaadinIcon.TRASH.create());
@@ -51,10 +37,8 @@ public class EmployeeEditor extends VerticalLayout implements KeyNotifier {
add(firstName, lastName, actions);
- // bind using naming convention
binder.bindInstanceFields(this);
- // Configure and style components
setSpacing(true);
save.getElement().getThemeList().add("primary");
@@ -62,7 +46,6 @@ public class EmployeeEditor extends VerticalLayout implements KeyNotifier {
addKeyPressListener(Key.ENTER, e -> save());
- // wire action buttons to save, delete and reset
save.addClickListener(e -> save());
delete.addClickListener(e -> delete());
cancel.addClickListener(e -> editEmployee(employee));
@@ -90,28 +73,18 @@ public class EmployeeEditor extends VerticalLayout implements KeyNotifier {
}
final boolean persisted = c.getId() != null;
if (persisted) {
- // Find fresh entity for editing
employee = repository.findById(c.getId()).get();
} else {
employee = c;
}
+
cancel.setVisible(persisted);
-
- // Bind employee properties to similarly named fields
- // Could also use annotation or "manual binding" or programmatically
- // moving values from fields to entities before saving
binder.setBean(employee);
-
setVisible(true);
-
- // Focus first name initially
firstName.focus();
}
public void setChangeHandler(ChangeHandler h) {
- // ChangeHandler is notified when either save or delete
- // is clicked
changeHandler = h;
}
-
}
diff --git a/vaadin-spring/src/main/java/com/baeldung/EmployeeRepository.java b/vaadin-spring/src/main/java/com/baeldung/EmployeeRepository.java
index 66b5f329d7..044160da78 100644
--- a/vaadin-spring/src/main/java/com/baeldung/EmployeeRepository.java
+++ b/vaadin-spring/src/main/java/com/baeldung/EmployeeRepository.java
@@ -1,9 +1,9 @@
package com.baeldung;
-import org.springframework.data.jpa.repository.JpaRepository;
-
import java.util.List;
+import org.springframework.data.jpa.repository.JpaRepository;
+
public interface EmployeeRepository extends JpaRepository