diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/RecipeTileController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/RecipeTileController.java index cb23f567a3f89b8e4f6e9555bc4b1dfe472f76e0..74b5ea8000e98b23d73b648aed83349bb1ca14f2 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/RecipeTileController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/RecipeTileController.java @@ -19,6 +19,5 @@ public class RecipeTileController { this.recipe = recipe; nameTag.setText(recipe.getName()); missingTag.setText(Integer.toString(recipe.getMissingIngredients())); - } } diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/SuggestRecipesController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/SuggestRecipesController.java index 75af4a24f9cf0c98fd3696f279cc7a74e9166ee5..9edb97ce6699ecc125d3631f88650ce24ea9f4f9 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/SuggestRecipesController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/SuggestRecipesController.java @@ -11,10 +11,6 @@ import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.stage.Stage; -import no.ntnu.idatt1002.demo.data.Economics.Expense; -import no.ntnu.idatt1002.demo.data.Economics.FileHandling; -import no.ntnu.idatt1002.demo.data.Economics.Income; -import no.ntnu.idatt1002.demo.data.Economics.IncomeRegister; import no.ntnu.idatt1002.demo.data.recipes.*; import java.io.IOException; @@ -86,7 +82,7 @@ public class SuggestRecipesController implements Initializable { fridgeList.setItems(fridge); } - public void addToFridge(String ingredient) { +/* public void addToFridge(String ingredient) { System.out.println("Add to fridge!"); String toRemove = fridgeList.getSelectionModel().getSelectedItem(); ingredientsAtHand.addIngredient(FoodItem.valueOf(toRemove.toUpperCase())); @@ -95,14 +91,12 @@ public class SuggestRecipesController implements Initializable { fridge = FXCollections.observableArrayList(ingredientsAtHand.getIngredientsAtHand().stream().map(foodItem -> foodItem.label).toList()); fridgeList.setItems(fridge); - } + }*/ @FXML private void goBack(ActionEvent event) throws IOException { FXMLLoader loader = new FXMLLoader(); - - System.out.printf("Back button pressed"); loader.setLocation(getClass().getResource("/view/MainMenuNew.fxml")); Parent root = loader.load(); @@ -110,13 +104,19 @@ public class SuggestRecipesController implements Initializable { Scene scene = new Scene(root); stage.setScene(scene); stage.show(); - } + private void setRecipeTiles(int number) { + // Ingredeints at hand and recipesRegister + Recipe[] recipes = recipeRegister.pickBestFits(4, ingredientsAtHand); + + + } @Override public void initialize(URL url, ResourceBundle resourceBundle) { + // If no ingredients at hand file exsists, add one and let it be empty. //TODO ingredientsAtHand = FileHandler.readIngredientsAtHand("Fridge"); /*fridge = FXCollections.observableArrayList(ingredientsAtHand.getIngredientsAtHand());*/ fridge = FXCollections.observableArrayList(ingredientsAtHand.getIngredientsAtHand().stream().map(foodItem -> foodItem.label).toList()); @@ -127,5 +127,8 @@ public class SuggestRecipesController implements Initializable { recipeRegister = FileHandler.readRecipeRegister("Recipes"); recipes = FXCollections.observableArrayList(recipeRegister.getRecipes()); + // Get the number from FX-grid available? + setRecipeTiles(4); + } } diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/recipes/IngredientsAtHand.java b/src/main/java/no/ntnu/idatt1002/demo/data/recipes/IngredientsAtHand.java index ef4ccf0adb04e2d50422740da6caf19b7e4c4ea5..041c059cef3d41e3082627cf9632200cc7c42e30 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/data/recipes/IngredientsAtHand.java +++ b/src/main/java/no/ntnu/idatt1002/demo/data/recipes/IngredientsAtHand.java @@ -5,6 +5,7 @@ import java.util.List; public class IngredientsAtHand { //TODO: go through JavaDoc after refactoring. + //TODO: Make into a set private final ArrayList<FoodItem> ingredientsAtHand = new ArrayList<>(); diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/recipes/RecipeRegister.java b/src/main/java/no/ntnu/idatt1002/demo/data/recipes/RecipeRegister.java index 566c19884ae66b1e5ddad70b4d72a1d6c6d33a77..8108bf77be11983bc7378e0f4650c32089ea0922 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/data/recipes/RecipeRegister.java +++ b/src/main/java/no/ntnu/idatt1002/demo/data/recipes/RecipeRegister.java @@ -1,7 +1,9 @@ package no.ntnu.idatt1002.demo.data.recipes; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; public class RecipeRegister { @@ -29,4 +31,17 @@ public class RecipeRegister { .findFirst().orElse(null); } + public Recipe[] pickBestFits(int number, IngredientsAtHand atHand) { + Recipe[] recipes; + + this.recipes.forEach(r -> r.updateIngredientStatus(atHand)); + + recipes = (Recipe[]) this.recipes.stream() + .sorted(Comparator.comparingInt(Recipe::getMissingIngredients)) + .limit(number) + .toArray(); + + return recipes; + } + }