InventoryService.java
[code]
package com.dataSQL;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class InventoryService {
@Autowired
private JdbcTemplate jdbcTemplate;
public List<Inventory> findAll() {
return jdbcTemplate.query(
"SELECT inventory_id, id, short_desc, long_desc, department, category, price FROM inventory",
(rs, rownum) -> new Inventory(rs.getInt("inventory_id"),
rs.getString("id"),
rs.getString("short_desc"),
rs.getString("long_desc"),
rs.getString("department"),
rs.getString("category"),
rs.getString("price")));
}
public void update(Inventory inventorymodel) {
jdbcTemplate.update(
"UPDATE inventorymodel SET id=?, short_desc=?, long_desc=?, department=?, category=?, price=? WHERE inventory_id=?",
inventorymodel.getId(), inventorymodel.getShort_desc(), inventorymodel.getLong_desc(), inventorymodel.getDepartment(), inventorymodel.getCategory(), inventorymodel.getPrice(), inventorymodel.getInventory_id());
}
}
[/code]InventoryUI.java
package com.dataSQL;
import com.vaadin.data.Binder;
import com.vaadin.server.VaadinRequest;
import com.vaadin.spring.annotation.SpringUI;
import com.vaadin.ui.*;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
@SpringUI
public class InventoryUI extends UI {
@Autowired
private InventoryService service;
private Inventory inventory;
private Binder<Inventory> binder = new Binder<>(Inventory.class);
private Grid<Inventory> grid = new Grid<Inventory>(Inventory.class);
private TextField id = new TextField("Internal ID");
private TextField short_desc = new TextField("Short Desc");
private TextField long_desc = new TextField("Long Desc");
private TextField department = new TextField("Department");
private TextField category = new TextField("Category");
private TextField price = new TextField("Price");
private Button save = new Button("Save", e -> saveInventory());
@Override
protected void init(VaadinRequest request) {
updateGrid();
grid.setColumns("id", "short_desc", "long_desc", "department", "category", "price");
grid.addSelectionListener(e -> updateForm());
binder.bindInstanceFields(this);
VerticalLayout layout = new VerticalLayout(grid, id, short_desc, long_desc, department, category, price, save);
setContent(layout);
}
private void updateGrid() {
List<Inventory> inventorys = service.findAll();
grid.setItems(inventorys);
setFormVisible(false);
}
private void updateForm() {
if (grid.asSingleSelect().isEmpty()) {
setFormVisible(false);
} else {
inventory = grid.asSingleSelect().getValue();
binder.setBean(inventory);
setFormVisible(true);
}
}
private void setFormVisible(boolean visible) {
id.setVisible(visible);
short_desc.setVisible(visible);
long_desc.setVisible(visible);
department.setVisible(visible);
category.setVisible(visible);
price.setVisible(visible);
save.setVisible(visible);
}
private void saveInventory() {
service.update(inventory);
updateGrid();
}
}