From dfbe88cc2161ee5447f55928be6cd57a677b0aa7 Mon Sep 17 00:00:00 2001 From: pawelsa Date: Wed, 13 May 2026 22:39:37 +0200 Subject: [PATCH] feat(UIFactory): Add inbuilt UI buttons. --- .../idatt/view/components/ui/UIFactory.java | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) 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 2bd2903..6b1b3c7 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 @@ -5,12 +5,12 @@ import java.util.function.Consumer; import edu.ntnu.idi.idatt.session.UserSession; +import edu.ntnu.idi.idatt.view.SceneFactory; import edu.ntnu.idi.idatt.view.components.elements.IconComponent; import edu.ntnu.idi.idatt.view.components.elements.SearchBarComponent; import edu.ntnu.idi.idatt.view.components.primitives.ActionEventHandler; import edu.ntnu.idi.idatt.view.util.CssUtils; import edu.ntnu.idi.idatt.view.util.ResourceUtils; -import javafx.beans.binding.Bindings; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Parent; @@ -96,10 +96,19 @@ private static Parent createDefaultNavigation(Label titleLabel, List but UICompositor.Builder navigationBuilder = new UICompositor.Builder() .parent(new VBox()) + .growWithAlignment(Pos.CENTER) .addContent(titleLabel); buttons.forEach(b -> navigationBuilder.addContent(b)); + navigationBuilder.filler(); + + if (!SceneFactory.isFinal()) { + Button previous = new Button("Previous"); + previous.setOnAction((e) -> SceneFactory.goBack()); + navigationBuilder.addContent(previous); + } + UICompositor navigation = navigationBuilder.build(); return navigation.makeUI(); @@ -131,6 +140,16 @@ public static Parent createMenu(String title, List buttonLables, ActionE buttons.forEach(b -> menuBuilder.addContent(b)); + menuBuilder.filler(); + + Button progress = new Button("Advance to next week"); + progress.setOnAction((e) -> { + UserSession.getInstance().getExchange().advance(); + SceneFactory.reloadCurrent(); + }); + + menuBuilder.addContent(progress); + UICompositor menu = menuBuilder.build(); return menu.makeUI(); @@ -140,10 +159,11 @@ public static Parent createMenu(String title, List buttonLables, ActionE public static Parent createToolbar(ActionEventHandler menuHandle, ActionEventHandler quitHandle) { Label balance = new Label(); balance.textProperty().bind( - Bindings.concat("Balance: ", UserSession.getInstance().moneyProperty(), "USD")); + UserSession.getInstance().moneyProperty().asString("Balance: %.2f $")); Label playerStatus = new Label("Status:" + UserSession.getInstance().getPlayer().getStatus()); - Label playerNetWorth = new Label( - "Net Worth: " + UserSession.getInstance().getPlayer().getNetWorth().toString() + " USD"); + Label playerNetWorth = new Label(); + playerNetWorth.textProperty().bind( + UserSession.getInstance().netWorthProperty().asString("Net Worth: %.2f $")); CssUtils.apply(balance, CssUtils.MED_TEXT_16); CssUtils.apply(playerStatus, CssUtils.MED_TEXT_16);