13_Update
Keine Dateien in diesem Thema verfügbar.
Lernmaterialien
Change Order
Dialog
OrdersView.java
private void addEditOrder(PizzaOrder existingOrder) {Because the same method can then handle both cases:
existingOrder == null→ create a new pizza orderexistingOrder != null→ edit an existing pizza order
OrdersView.java
buttonAdd.addClickListener(b -> addEditOrder(null));Button
OrdersView.java
grid.addComponentColumn(o -> new Button("Edit order", e-> addEditOrder(o)))
.setHeader("Task")
.setSortable(false);This adds a new column to the Grid.
grid.addComponentColumn(o -> new Button("Edit order", e -> addEditOrder(o)))For every PizzaOrder o, it creates an Edit
order button.
When clicked:
addEditOrder(o)opens the dialog for that specific order.
.setHeader("Task")Sets the column title to Task.
.setSortable(false)Disables sorting for this button column.
Dialog
OrdersView.java
private void addEditOrder(PizzaOrder existingOrder) {
PizzaOrder order;
Dialog dialog = new Dialog();
dialog.setHeaderTitle(existingOrder == null ? "New Pizza Order" : "Edit Pizza Order");
if (existingOrder != null) {
order = existingOrder;
}
else {
order = new PizzaOrder();
order.setOrderId();
}binder.setBean(order);
does two things:
- Reads current values from
order - Shows them in the form fields
The dialog fields will show the current values, for example:
pizza → "Salami"
size → "Large"
price → 12.5
quantity → 2
garlic → true Button saveButton = new Button("OK", event -> {
if (binder.validate().isOk()) {
if (existingOrder == null) {
pizzaOrderService.add(order);
}
reload();@NotNull(message = "Order date is required")
@PastOrPresent(message = "Order date must be in the past or today")
private LocalDate orderDate;Change
@NotNull(message = "Order date is required")
@PastOrPresent(message = "Order date must be in the past or today")
private LocalDate orderDate;