From 223febf6fd46c04700f13f00f484ba23cc2fe738 Mon Sep 17 00:00:00 2001 From: Lukas Karsch <lk224@hdm-stuttgart.de> Date: Thu, 15 Jun 2023 23:37:33 +0200 Subject: [PATCH] (Recipe view) fixed bug where the ingredient label wouldn't fully show --- .../mi/hdm/components/IngredientLabel.java | 33 ++++++++++--------- .../hdm/controllers/RecipeViewController.java | 11 ++++--- .../java/mi/hdm/recipes/CategoryManager.java | 1 + 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/src/main/java/mi/hdm/components/IngredientLabel.java b/src/main/java/mi/hdm/components/IngredientLabel.java index 6ecf4e8..7cbf7da 100644 --- a/src/main/java/mi/hdm/components/IngredientLabel.java +++ b/src/main/java/mi/hdm/components/IngredientLabel.java @@ -1,30 +1,33 @@ package mi.hdm.components; -import javafx.scene.control.Label; import javafx.scene.layout.HBox; -import mi.hdm.recipes.Measurement; +import javafx.scene.text.Text; +import mi.hdm.recipes.RecipeComponent; public class IngredientLabel extends HBox { - - private final String name; private final int amount; - private final Measurement measurement; + private final RecipeComponent component; - public IngredientLabel(String name, int amount, Measurement measurement) { + public IngredientLabel(int amount, RecipeComponent component) { super(); - this.name = name; this.amount = amount; - this.measurement = measurement; + this.component = component; - Label labelAmount = new Label(amount + " " + measurement); - labelAmount.prefWidth(100); - Label labelName = new Label(name); - labelName.prefWidth(300); + Text labelAmount = new Text(amount + " " + component.getMeasurement()); + Text labelName = new Text(component.getName()); getChildren().addAll(labelAmount, labelName); - //setAlignment(Pos.BASELINE_LEFT); - setSpacing(5.0); - //setStyle("-fx-padding: 5px"); + setSpacing(16.0); + setStyle("-fx-padding: 5px;"); + } + + public int getAmount() { + return amount; + } + + public RecipeComponent getComponent() { + //TODO: create a copy + return component; } } diff --git a/src/main/java/mi/hdm/controllers/RecipeViewController.java b/src/main/java/mi/hdm/controllers/RecipeViewController.java index 3e161f7..3dbb2cf 100644 --- a/src/main/java/mi/hdm/controllers/RecipeViewController.java +++ b/src/main/java/mi/hdm/controllers/RecipeViewController.java @@ -7,7 +7,10 @@ import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.VBox; import mi.hdm.components.IngredientLabel; -import mi.hdm.recipes.*; +import mi.hdm.recipes.Ingredient; +import mi.hdm.recipes.IngredientManager; +import mi.hdm.recipes.Recipe; +import mi.hdm.recipes.RecipeManager; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -60,11 +63,9 @@ public class RecipeViewController extends BaseController { //TODO: amount and measurement are not displayed, but without the name they are recipe.getIngredients().forEach((code, amount) -> { Ingredient i = ingredientManager.getIngredient(code).orElseThrow(); - String name = i.getName(); - Measurement measurement = i.getMeasurement(); - IngredientLabel ingredientLabel = new IngredientLabel(name, amount, measurement); - log.debug("Added ingredient label with the following values: {}, {}, {}", name, amount, measurement); + IngredientLabel ingredientLabel = new IngredientLabel(amount, i); ingredientVBox.getChildren().add(ingredientLabel); + log.debug("Added ingredient label with the following values: {}, {}, {}", i.getName(), amount, i.getMeasurement()); }); diff --git a/src/main/java/mi/hdm/recipes/CategoryManager.java b/src/main/java/mi/hdm/recipes/CategoryManager.java index 9510b86..2e6d1cd 100644 --- a/src/main/java/mi/hdm/recipes/CategoryManager.java +++ b/src/main/java/mi/hdm/recipes/CategoryManager.java @@ -102,6 +102,7 @@ public class CategoryManager { } public static String numberToColorCodeString(int colourCode) { + //TODO: move method into Category class, remove the # String intToHex = Integer.toHexString(colourCode); intToHex = intToHex .indent(6 - intToHex.length()) -- GitLab