Skip to content

Commit

Permalink
format
Browse files Browse the repository at this point in the history
  • Loading branch information
rockoder committed Jul 23, 2018
1 parent dacf049 commit 35c92fa
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 43 deletions.
29 changes: 1 addition & 28 deletions vaadin-spring/src/main/java/com/baeldung/EmployeeEditor.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,31 +12,17 @@
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.
* <p>
* 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());
Expand All @@ -51,18 +37,15 @@ public EmployeeEditor(EmployeeRepository repository) {

add(firstName, lastName, actions);

// bind using naming convention
binder.bindInstanceFields(this);

// Configure and style components
setSpacing(true);

save.getElement().getThemeList().add("primary");
delete.getElement().getThemeList().add("error");

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));
Expand Down Expand Up @@ -90,28 +73,18 @@ public final void editEmployee(Employee c) {
}
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
cancel.setVisible(persisted);
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;
}

}
Original file line number Diff line number Diff line change
@@ -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<Employee, Long> {

List<Employee> findByLastNameStartsWithIgnoreCase(String lastName);
Expand Down
15 changes: 2 additions & 13 deletions vaadin-spring/src/main/java/com/baeldung/MainView.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.baeldung;

import org.springframework.util.StringUtils;

import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.icon.VaadinIcon;
Expand All @@ -8,8 +10,6 @@
import com.vaadin.flow.component.textfield.TextField;
import com.vaadin.flow.data.value.ValueChangeMode;
import com.vaadin.flow.router.Route;
import com.vaadin.flow.spring.annotation.UIScope;
import org.springframework.util.StringUtils;

@Route
public class MainView extends VerticalLayout {
Expand All @@ -31,7 +31,6 @@ public MainView(EmployeeRepository repo, EmployeeEditor editor) {
this.filter = new TextField();
this.addNewBtn = new Button("New employee", VaadinIcon.PLUS.create());

// build layout
HorizontalLayout actions = new HorizontalLayout(filter, addNewBtn);
add(actions, grid, editor);

Expand All @@ -41,38 +40,28 @@ public MainView(EmployeeRepository repo, EmployeeEditor editor) {

filter.setPlaceholder("Filter by last name");

// Hook logic to components

// Replace listing with filtered content when user changes filter
filter.setValueChangeMode(ValueChangeMode.EAGER);
filter.addValueChangeListener(e -> listEmployees(e.getValue()));

// Connect selected Employee to editor or hide if none is selected
grid.asSingleSelect().addValueChangeListener(e -> {
editor.editEmployee(e.getValue());
});

// Instantiate and edit new Employee the new button is clicked
addNewBtn.addClickListener(e -> editor.editEmployee(new Employee("", "")));

// Listen changes made by the editor, refresh data from backend
editor.setChangeHandler(() -> {
editor.setVisible(false);
listEmployees(filter.getValue());
});

// Initialize listing
listEmployees(null);
}

// tag::listEmployees[]
void listEmployees(String filterText) {
if (StringUtils.isEmpty(filterText)) {
grid.setItems(employeeRepository.findAll());
} else {
grid.setItems(employeeRepository.findByLastNameStartsWithIgnoreCase(filterText));
}
}
// end::listEmployees[]

}

0 comments on commit 35c92fa

Please sign in to comment.