From a59575b342ef04222603c5d9f448c2d5851baacc Mon Sep 17 00:00:00 2001
From: Lara Blersch <lb210@hdm-stuttgart.de>
Date: Wed, 24 May 2023 17:27:13 +0200
Subject: [PATCH] keeping track of currentScene and don't reload it

---
 src/main/java/mi/hdm/TastyPages.java               |  1 +
 .../java/mi/hdm/controllers/BaseController.java    |  4 ++++
 src/main/java/mi/hdm/controllers/View.java         |  1 -
 src/main/resources/fxml/Meal_Plan.fxml             | 14 +++++++-------
 4 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/main/java/mi/hdm/TastyPages.java b/src/main/java/mi/hdm/TastyPages.java
index 1fc5261..8e29204 100644
--- a/src/main/java/mi/hdm/TastyPages.java
+++ b/src/main/java/mi/hdm/TastyPages.java
@@ -26,6 +26,7 @@ public class TastyPages extends Application {
     private final static Logger log = LogManager.getLogger(TastyPages.class);
 
     private static Stage stage;
+    public static final View startUpView = View.MAIN;
 
     public static void main(String[] args) {
         log.info("Starting TastyPages");
diff --git a/src/main/java/mi/hdm/controllers/BaseController.java b/src/main/java/mi/hdm/controllers/BaseController.java
index 7633ad3..e0a2bc9 100644
--- a/src/main/java/mi/hdm/controllers/BaseController.java
+++ b/src/main/java/mi/hdm/controllers/BaseController.java
@@ -15,8 +15,10 @@ public abstract class BaseController {
     private final static Stage stage = TastyPages.getApplicationStage();
 
     protected Scene currentScene;
+    private static View currentView = TastyPages.startUpView;
 
     protected void changeScene(final View newScene) {
+        if (newScene == currentView) { return; }
         try {
             boolean wasMaximized = stage.isMaximized();
             double sizeX = stage.getWidth();
@@ -27,10 +29,12 @@ public abstract class BaseController {
             Parent newParent = newScene.getScene();
 
             currentScene = new Scene(newParent, sizeX, sizeY);
+            currentView = newScene;
 
             stage.setTitle(newWindowTitle);
             stage.setScene(currentScene);
             stage.setMaximized(wasMaximized);
+            log.info("new view: {}", currentView);
         } catch (IOException io) {
             log.error("IO Exception: something went wrong when changing the scene.");
             io.printStackTrace();
diff --git a/src/main/java/mi/hdm/controllers/View.java b/src/main/java/mi/hdm/controllers/View.java
index fe0283b..471e036 100644
--- a/src/main/java/mi/hdm/controllers/View.java
+++ b/src/main/java/mi/hdm/controllers/View.java
@@ -34,7 +34,6 @@ public enum View {
     }
 
     public Parent getScene() throws IOException {
-        //TODO: keep track of current view and don't reload it if the user selects it again!
         log.info("Loading FXML for '{}' view from: {}", windowTitle, path);
         final FXMLLoader loader = new FXMLLoader(getClass().getResource(path));
         log.debug("Successfully retrieved resource from {}", path);
diff --git a/src/main/resources/fxml/Meal_Plan.fxml b/src/main/resources/fxml/Meal_Plan.fxml
index 4cfe212..75216f2 100644
--- a/src/main/resources/fxml/Meal_Plan.fxml
+++ b/src/main/resources/fxml/Meal_Plan.fxml
@@ -13,7 +13,7 @@
 <?import javafx.scene.text.Font?>
 <?import javafx.scene.text.Text?>
 
-<AnchorPane fx:id="parent" prefHeight="540.0" prefWidth="872.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="mi.hdm.controllers.MealPlanController">
+<AnchorPane fx:id="parent" prefHeight="540.0" prefWidth="872.0" xmlns="http://javafx.com/javafx/14" xmlns:fx="http://javafx.com/fxml/1" fx:controller="mi.hdm.controllers.MealPlanController">
    <children>
       <HBox alignment="CENTER_LEFT" prefHeight="69.0" prefWidth="793.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
          <children>
@@ -69,7 +69,7 @@
                               <Font name="Arial" size="17.0" />
                            </font>
                         </Text>
-                        <ProgressBar prefHeight="24.0" prefWidth="631.0" progress="0.0" style="-fx-background-color: d9d9d9; -fx-background-radius: 5; -fx-control-inner-background: a; -fx-accent: d91c1c;">
+                        <ProgressBar prefHeight="24.0" prefWidth="631.0" progress="0.0" style="-fx-background-color: #d9d9d9; -fx-background-radius: 5; -fx-control-inner-background: a; -fx-accent: d91c1c;">
                            <HBox.margin>
                               <Insets left="70.0" />
                            </HBox.margin>
@@ -83,7 +83,7 @@
                               <Font name="Arial" size="17.0" />
                            </font>
                         </Text>
-                        <ProgressBar prefHeight="24.0" prefWidth="631.0" progress="0.0" style="-fx-background-color: d9d9d9; -fx-background-radius: 5; -fx-control-inner-background: a; -fx-accent: d91c1c;">
+                        <ProgressBar prefHeight="24.0" prefWidth="631.0" progress="0.0" style="-fx-background-color: #d9d9d9; -fx-background-radius: 5; -fx-control-inner-background: a; -fx-accent: d91c1c;">
                            <HBox.margin>
                               <Insets left="70.0" />
                            </HBox.margin>
@@ -97,7 +97,7 @@
                               <Font name="Arial" size="17.0" />
                            </font>
                         </Text>
-                        <ProgressBar prefHeight="24.0" prefWidth="631.0" progress="0.0" style="-fx-background-color: d9d9d9; -fx-control-inner-background: a; -fx-background-radius: 5; -fx-accent: d91c1c;">
+                        <ProgressBar prefHeight="24.0" prefWidth="631.0" progress="0.0" style="-fx-background-color: #d9d9d9; -fx-control-inner-background: a; -fx-background-radius: 5; -fx-accent: d91c1c;">
                            <HBox.margin>
                               <Insets left="70.0" />
                            </HBox.margin>
@@ -111,7 +111,7 @@
                               <Font name="Arial" size="17.0" />
                            </font>
                         </Text>
-                        <ProgressBar prefHeight="24.0" prefWidth="631.0" progress="0.0" style="-fx-background-color: d9d9d9; -fx-control-inner-background: a; -fx-background-radius: 5; -fx-accent: d91c1c;">
+                        <ProgressBar prefHeight="24.0" prefWidth="631.0" progress="0.0" style="-fx-background-color: #d9d9d9; -fx-control-inner-background: a; -fx-background-radius: 5; -fx-accent: d91c1c;">
                            <HBox.margin>
                               <Insets left="70.0" />
                            </HBox.margin>
@@ -125,7 +125,7 @@
                               <Font name="Arial" size="17.0" />
                            </font>
                         </Text>
-                        <ProgressBar prefHeight="24.0" prefWidth="631.0" progress="0.0" style="-fx-background-color: d9d9d9; -fx-control-inner-background: a; -fx-background-radius: 5; -fx-accent: d91c1c;">
+                        <ProgressBar prefHeight="24.0" prefWidth="631.0" progress="0.0" style="-fx-background-color: #d9d9d9; -fx-control-inner-background: a; -fx-background-radius: 5; -fx-accent: d91c1c;">
                            <HBox.margin>
                               <Insets left="70.0" />
                            </HBox.margin>
@@ -139,7 +139,7 @@
                               <Font name="Arial" size="17.0" />
                            </font>
                         </Text>
-                        <ProgressBar prefHeight="24.0" prefWidth="631.0" progress="0.0" style="-fx-background-color: d9d9d9; -fx-control-inner-background: a; -fx-background-radius: 5; -fx-accent: d91c1c;">
+                        <ProgressBar prefHeight="24.0" prefWidth="631.0" progress="0.0" style="-fx-background-color:#d9d9d9; -fx-control-inner-background: a; -fx-background-radius: 5; -fx-accent: d91c1c;">
                            <HBox.margin>
                               <Insets left="70.0" />
                            </HBox.margin>
-- 
GitLab