From 20a8e508cf91db436787fb52f97dc474d6fc66cf Mon Sep 17 00:00:00 2001 From: pawelsa Date: Mon, 25 May 2026 23:25:59 +0200 Subject: [PATCH] feat: Make player status a observable field in UserSession --- .../java/edu/ntnu/idi/idatt/session/UserSession.java | 12 ++++++++++++ .../ntnu/idi/idatt/view/components/ui/UIFactory.java | 6 +++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/edu/ntnu/idi/idatt/session/UserSession.java b/src/main/java/edu/ntnu/idi/idatt/session/UserSession.java index 09d85ac..05bacf6 100644 --- a/src/main/java/edu/ntnu/idi/idatt/session/UserSession.java +++ b/src/main/java/edu/ntnu/idi/idatt/session/UserSession.java @@ -7,6 +7,7 @@ import edu.ntnu.idi.idatt.storage.SessionManager; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; +import javafx.beans.property.SimpleStringProperty; /** * Class for managing current session. @@ -83,6 +84,7 @@ public void setExchange(Exchange exchange) { private final SimpleObjectProperty moneyProperty = new SimpleObjectProperty<>(BigDecimal.ZERO); private final SimpleObjectProperty netWorthProperty = new SimpleObjectProperty<>(BigDecimal.ZERO); private final SimpleIntegerProperty weekProperty = new SimpleIntegerProperty(); + private final SimpleStringProperty statusProperty = new SimpleStringProperty(); /** * Getter for moneyProperty. @@ -111,6 +113,15 @@ public SimpleIntegerProperty weekProperty() { return weekProperty; } + /** + * Getter for statusProperty. + * + * @return SimpleStringProperty; + */ + public SimpleStringProperty statusProperty() { + return statusProperty; + } + /** * Method used for updating the game state. *

@@ -128,6 +139,7 @@ public void updateGameState() { moneyProperty.set(player.getMoney()); netWorthProperty.set(player.getNetWorth()); weekProperty.set(exchange.getWeek()); + statusProperty.set(player.getStatus()); SessionManager.saveSession(); } diff --git a/src/main/java/edu/ntnu/idi/idatt/view/components/ui/UIFactory.java b/src/main/java/edu/ntnu/idi/idatt/view/components/ui/UIFactory.java index 076c1bb..06ba4c8 100644 --- a/src/main/java/edu/ntnu/idi/idatt/view/components/ui/UIFactory.java +++ b/src/main/java/edu/ntnu/idi/idatt/view/components/ui/UIFactory.java @@ -304,9 +304,9 @@ public static Parent createToolbar(ActionEventHandler menuHandle, ActionEventHan week.textProperty().bind( UserSession.getInstance().weekProperty().asString("Week: %d")); - // Player status only advances at purchases, doesn't need to be a observable - // value when saving game state. - Label playerStatus = new Label("Status: " + UserSession.getInstance().getPlayer().getStatus()); + Label playerStatus = new Label(); + playerStatus.textProperty().bind(Bindings.format("Status: %s", + UserSession.getInstance().statusProperty())); Label playerNetWorth = new Label(); playerNetWorth.textProperty().bind(