diff --git a/client/src/main/java/client/scenes/FoodpalApplicationCtrl.java b/client/src/main/java/client/scenes/FoodpalApplicationCtrl.java index 327941c..416d830 100644 --- a/client/src/main/java/client/scenes/FoodpalApplicationCtrl.java +++ b/client/src/main/java/client/scenes/FoodpalApplicationCtrl.java @@ -9,10 +9,12 @@ import java.util.Optional; import java.util.logging.Logger; import java.util.stream.Collectors; +import client.UI; import client.exception.InvalidModificationException; import client.scenes.nutrition.NutritionViewCtrl; import client.scenes.recipe.RecipeDetailCtrl; +import client.scenes.shopping.ShoppingListCtrl; import client.utils.Config; import client.utils.ConfigService; import client.utils.DefaultValueFactory; @@ -33,8 +35,6 @@ import commons.ws.messages.UpdateRecipeMessage; import jakarta.inject.Inject; import javafx.application.Platform; import javafx.fxml.FXML; -import javafx.fxml.FXMLLoader; -import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Alert; import javafx.scene.control.Button; @@ -616,11 +616,10 @@ public class FoodpalApplicationCtrl implements LocaleAware { } public void openShoppingListWindow() throws IOException { - FXMLLoader loader = new FXMLLoader(getClass().getResource("shopping/ShoppingList.fxml")); - Parent root = (Parent)loader.load(); + var root = UI.getFXML().load(ShoppingListCtrl.class, "client", "scenes", "shopping", "ShoppingList.fxml"); Stage stage = new Stage(); stage.setTitle(this.getLocaleString("menu.shopping.title")); - stage.setScene(new Scene(root)); + stage.setScene(new Scene(root.getValue())); stage.show(); } diff --git a/client/src/main/java/client/scenes/recipe/RecipeDetailCtrl.java b/client/src/main/java/client/scenes/recipe/RecipeDetailCtrl.java index f1eeb5d..04140d1 100644 --- a/client/src/main/java/client/scenes/recipe/RecipeDetailCtrl.java +++ b/client/src/main/java/client/scenes/recipe/RecipeDetailCtrl.java @@ -2,6 +2,7 @@ package client.scenes.recipe; import client.exception.UpdateException; import client.scenes.FoodpalApplicationCtrl; +import client.service.ShoppingListService; import client.utils.Config; import client.utils.ConfigService; import client.utils.LocaleAware; @@ -10,6 +11,7 @@ import client.utils.PrintExportService; import client.utils.server.ServerUtils; import client.utils.WebSocketDataService; import com.google.inject.Inject; +import commons.FormalIngredient; import commons.Recipe; import java.io.File; @@ -20,6 +22,7 @@ import java.util.function.BiConsumer; import java.util.function.Consumer; import javafx.beans.binding.Bindings; +import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.ComboBox; @@ -46,6 +49,7 @@ public class RecipeDetailCtrl implements LocaleAware { private final FoodpalApplicationCtrl appCtrl; private final ConfigService configService; private final WebSocketDataService webSocketDataService; + private final ShoppingListService shoppingListService; public Spinner scaleSpinner; public Label inferredKcalLabel; @@ -67,12 +71,14 @@ public class RecipeDetailCtrl implements LocaleAware { ServerUtils server, FoodpalApplicationCtrl appCtrl, ConfigService configService, + ShoppingListService listService, WebSocketDataService webSocketDataService) { this.localeManager = localeManager; this.server = server; this.appCtrl = appCtrl; this.configService = configService; this.webSocketDataService = webSocketDataService; + this.shoppingListService = listService; } @FXML @@ -418,4 +424,13 @@ public class RecipeDetailCtrl implements LocaleAware { }); langSelector.getItems().addAll("en", "nl", "pl", "tok"); } + + public void handleAddAllToShoppingList(ActionEvent actionEvent) { + System.out.println("handleAddAllToShoppingList"); + // TODO BACKLOG Add overview screen + recipe.getIngredients().stream() + .filter(x -> x.getClass().equals(FormalIngredient.class)) + .map(FormalIngredient.class::cast) + .forEach(x -> shoppingListService.putIngredient(x, recipe)); + } } diff --git a/client/src/main/java/client/scenes/shopping/ShoppingListCtrl.java b/client/src/main/java/client/scenes/shopping/ShoppingListCtrl.java index b73ec9d..0e76b79 100644 --- a/client/src/main/java/client/scenes/shopping/ShoppingListCtrl.java +++ b/client/src/main/java/client/scenes/shopping/ShoppingListCtrl.java @@ -5,6 +5,7 @@ import client.utils.LocaleAware; import client.utils.LocaleManager; import com.google.inject.Inject; import commons.FormalIngredient; +import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.ListCell; import javafx.scene.control.ListView; @@ -19,7 +20,6 @@ public class ShoppingListCtrl implements LocaleAware { @FXML private ListView>> shoppingListView; - @Inject public ShoppingListCtrl( ShoppingListService shopping, @@ -63,4 +63,10 @@ public class ShoppingListCtrl implements LocaleAware { this.shopping.getItems() ); } + + public void handleAddItem(ActionEvent actionEvent) { + } + + public void handleRemoveItem(ActionEvent actionEvent) { + } }