diff --git a/src/main/java/mi/hdm/App.java b/src/main/java/mi/hdm/App.java deleted file mode 100644 index 43db04632139b985df84c358558c0355962440c3..0000000000000000000000000000000000000000 --- a/src/main/java/mi/hdm/App.java +++ /dev/null @@ -1,14 +0,0 @@ -package mi.hdm; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -public class App { - private final static Logger log = LogManager.getLogger(App.class); - - public static void main(String[] args) { - log.info("Starting app"); - } - - public void save() {} -} diff --git a/src/main/java/mi/hdm/FileManager.java b/src/main/java/mi/hdm/FileManager.java index 3367bc51e497808f070613c146c5afd36fa7fb62..fc94da980179a58738bd2a1b9b7f19e486ffaede 100644 --- a/src/main/java/mi/hdm/FileManager.java +++ b/src/main/java/mi/hdm/FileManager.java @@ -7,7 +7,7 @@ public class FileManager { return fileManager; } - public void serializeToFile(App app) {} + public void serializeToFile(TastyPages app) {} - public App deserializeFromFile(String filepath) { return null; } + public TastyPages deserializeFromFile(String filepath) { return null; } } diff --git a/src/main/java/mi/hdm/TastyPages.java b/src/main/java/mi/hdm/TastyPages.java new file mode 100644 index 0000000000000000000000000000000000000000..af8ab30bcfc0effef3596cfa3daec0c3d1562fcd --- /dev/null +++ b/src/main/java/mi/hdm/TastyPages.java @@ -0,0 +1,33 @@ +package mi.hdm; + +import javafx.application.Application; +import javafx.scene.Scene; +import javafx.scene.layout.GridPane; +import javafx.stage.Stage; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class TastyPages extends Application { + private final static Logger log = LogManager.getLogger(TastyPages.class); + + public static void main(String[] args) { + log.info("Starting TastyPages"); + launch(args); + } + + + + public void save() {} + + @Override + public void start(Stage stage) throws Exception { + final GridPane gridPane = new GridPane(); + final Scene scene = new Scene(gridPane, 1400, 800); + //scene.getStylesheets().add("/styles/styles.css"); + + stage.setTitle("Start page"); + stage.setMaximized(true); //open scene in full screen + stage.setScene(scene); + stage.show(); + } +} diff --git a/src/main/java/mi/hdm/mealPlan/MealPlan.java b/src/main/java/mi/hdm/mealPlan/MealPlan.java index 29ab90f07a747aa2b1f2eb59afeead8a14ffc0fb..bb5e1f199434aeb67662ab8c967e58372c3435dd 100644 --- a/src/main/java/mi/hdm/mealPlan/MealPlan.java +++ b/src/main/java/mi/hdm/mealPlan/MealPlan.java @@ -1,28 +1,59 @@ package mi.hdm.mealPlan; +import mi.hdm.recipes.NutritionCalculator; import mi.hdm.recipes.NutritionTable; import mi.hdm.recipes.Recipe; +import mi.hdm.shoppingList.ShoppingList; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.time.LocalDate; +import java.util.HashMap; +import java.util.Map; /** * Allow the user to create a meal plan for the week. The user can check out his nutrition scores for the week. */ public class MealPlan { - //TODO: implement class< + private static final Logger log = LogManager.getLogger(MealPlan.class); + private final Map<LocalDate, Recipe> plan; private static final MealPlan mealPlan = new MealPlan(); + private MealPlan () { + plan = new HashMap<>(); + } + public static MealPlan getInstance() { return mealPlan; } - public void addRecipeToMealPlan(Recipe recipe, int day) {} + public void addRecipeToMealPlan(Recipe recipe, LocalDate date) { + plan.put(date, recipe); + } - public void clear(int day) {} + public void clear(LocalDate date) { + log.info("Day {} cleared successfully.", date); + plan.put(date, null); + } + + public void clear() { + log.info("MealPlan cleared successfully."); + plan.clear(); + } - public void clear() {} + public Recipe getRecipeForDay(LocalDate date) { - public void getRecipeForDay(int day) {} - public NutritionTable getNutritionTable() { return null; } + return plan.get(date); + } + public Map<LocalDate, Recipe> getAllRecipesFromPlan () { + return plan; + } + + public NutritionTable getNutritionTable() { + + return NutritionCalculator.calculateNutritionTable(mealPlan); + + } - public NutritionTable getNutritionTable(int day) { return null; } } diff --git a/src/main/java/mi/hdm/recipes/NutritionCalculator.java b/src/main/java/mi/hdm/recipes/NutritionCalculator.java index c10bf68e347bdd59918dccd02720e64f1e623bc1..a68e9bee552fa016c46b25b2de42c89927782cfa 100644 --- a/src/main/java/mi/hdm/recipes/NutritionCalculator.java +++ b/src/main/java/mi/hdm/recipes/NutritionCalculator.java @@ -4,6 +4,7 @@ import mi.hdm.mealPlan.MealPlan; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import java.time.LocalDate; import java.util.Map; public class NutritionCalculator { @@ -31,13 +32,18 @@ public class NutritionCalculator { for (RecipeComponent entry : ingredients.keySet()) { final Map<Nutrition, Double> nutritionTable = entry.getNutritionTable().getTable(); - //TODO: This doesnt apply if the measurement is PIECE or PINCH! FIX! - totalCals += nutritionTable.get(Nutrition.CALORIES) * ingredients.get(entry) / 100; - totalCarbs += nutritionTable.get(Nutrition.CARBS) * ingredients.get(entry) / 100; - totalFats += nutritionTable.get(Nutrition.FAT) * ingredients.get(entry) / 100; - totalProteins += nutritionTable.get(Nutrition.PROTEINS) * ingredients.get(entry) / 100; - totalFibers += nutritionTable.get(Nutrition.FIBERS) * ingredients.get(entry) / 100; - totalSalt += nutritionTable.get(Nutrition.SALT) * ingredients.get(entry) / 100; + int divisor; + if (entry.getMeasurement() == Measurement.PIECE || entry.getMeasurement() == Measurement.PINCH) { + divisor = 1; + } else { + divisor = 100; + } + totalCals += nutritionTable.get(Nutrition.CALORIES) * ingredients.get(entry) / divisor; + totalCarbs += nutritionTable.get(Nutrition.CARBS) * ingredients.get(entry) / divisor; + totalFats += nutritionTable.get(Nutrition.FAT) * ingredients.get(entry) / divisor; + totalProteins += nutritionTable.get(Nutrition.PROTEINS) * ingredients.get(entry) / divisor; + totalFibers += nutritionTable.get(Nutrition.FIBERS) * ingredients.get(entry) / divisor; + totalSalt += nutritionTable.get(Nutrition.SALT) * ingredients.get(entry) / divisor; } log.info("NutritionTable calculated successfully."); return new NutritionTable(totalCals, totalCarbs, totalFats, totalProteins, totalFibers, totalSalt); @@ -45,6 +51,27 @@ public class NutritionCalculator { //TODO: implement calcuating nutrition table from meal plan and List<Recipe> public static NutritionTable calculateNutritionTable(MealPlan mealPlan) { - return null; + + Map<LocalDate, Recipe> plan = mealPlan.getAllRecipesFromPlan(); + + double totalCals = 0, + totalCarbs = 0, + totalFats = 0, + totalProteins = 0, + totalFibers = 0, + totalSalt = 0; + + for (Recipe r : plan.values()) { + final Map<Nutrition, Double> nutritionTable = r.getNutritionTable().getTable(); + totalCals += nutritionTable.get(Nutrition.CALORIES); + totalCarbs += nutritionTable.get(Nutrition.CARBS); + totalFats += nutritionTable.get(Nutrition.FAT); + totalProteins += nutritionTable.get(Nutrition.PROTEINS); + totalFibers += nutritionTable.get(Nutrition.FIBERS); + totalSalt += nutritionTable.get(Nutrition.SALT); + } + log.info("NutritionTable calculated successfully."); + + return new NutritionTable(totalCals, totalCarbs, totalFats, totalProteins, totalFibers, totalSalt); } }