From c2147f06dc148a7c3d8896d8ad1a40719d00532a Mon Sep 17 00:00:00 2001 From: = Date: Wed, 27 May 2026 02:27:18 +0200 Subject: [PATCH] Feat: Fixed Stats jittering and valuta --- .../view/widgets/dashboard/DashBoardView.java | 4 ++-- .../widgets/financialsummary/SummaryView.java | 2 +- .../mappe/view/widgets/market/MarketView.java | 2 +- .../mappe/view/widgets/stats/StatsView.java | 22 +++++++++++++------ 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/dashboard/DashBoardView.java b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/dashboard/DashBoardView.java index e9eb1c0..1079fcf 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/dashboard/DashBoardView.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/dashboard/DashBoardView.java @@ -662,8 +662,8 @@ public ComboBox getTimeRangeSelector() { * @param amount the amount of shares to show. * */ private String formatShares(final float amount) { - String formatted = String.format(java.util.Locale.US, "%.3f", amount); - return formatted.replaceAll("0+$", "").replaceAll("\\.$", ""); + String formatted = String.format(java.util.Locale.of("no", "NO"), "%.3f", amount); + return formatted.replaceAll("0+$", "").replaceAll(",$", ""); } /** diff --git a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/financialsummary/SummaryView.java b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/financialsummary/SummaryView.java index e95e0e1..874bd2e 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/financialsummary/SummaryView.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/financialsummary/SummaryView.java @@ -89,7 +89,7 @@ protected void initLayout() { VBox balanceInfo = new VBox(); titleLabel = new Label("Balance/NetWorth"); - balanceLabel = new Label("0$"); + balanceLabel = new Label("0NOK"); statusLabel = new Label(PlayerStatus.NOOB.getDisplayName()); Region spacerL = new Region(); diff --git a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/market/MarketView.java b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/market/MarketView.java index c6750d7..67420e2 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/market/MarketView.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/market/MarketView.java @@ -307,7 +307,7 @@ private VBox buildStockCard(final Stock stock) { VBox tickerBox = new VBox(2, ticker, company); tickerBox.setAlignment(Pos.TOP_LEFT); - Label price = new Label(String.format("$%.2f", stock.getSalesPrice().doubleValue())); + Label price = new Label(String.format("%.2f NOK", stock.getSalesPrice().doubleValue())); price.getStyleClass().add("market-price"); Region headerSpacer = new Region(); diff --git a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/stats/StatsView.java b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/stats/StatsView.java index 8f35e97..1e60d53 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/stats/StatsView.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/stats/StatsView.java @@ -215,9 +215,17 @@ private VBox buildChartPanel() { balanceChartPane = new Pane(); balanceChartPane.setMinHeight(120); VBox.setVgrow(balanceChartPane, Priority.ALWAYS); - // Re-render whenever the area is resized. - balanceChartPane.widthProperty().addListener((obs, o, n) -> renderBalanceChart()); - balanceChartPane.heightProperty().addListener((obs, o, n) -> renderBalanceChart()); + // Re-render whenever the area is resized. (Ignores changes under 2 pixels) + balanceChartPane.widthProperty().addListener((obs, o, n) -> { + if (Math.abs(n.doubleValue() - o.doubleValue()) > 2.0) { + renderBalanceChart(); + } + }); + balanceChartPane.heightProperty().addListener((obs, o, n) -> { + if (Math.abs(n.doubleValue() - o.doubleValue()) > 2.0) { + renderBalanceChart(); + } + }); VBox panel = new VBox(6, title, balanceChartPane); panel.getStyleClass().add("stats-panel"); @@ -407,7 +415,7 @@ private void renderBalanceChart() { balanceChartPane.getChildren().add(grid); double v = min + range * i / yTicks; - Text yLabel = new Text(0, y + 3, "$" + (long) v); + Text yLabel = new Text(0, y + 3, "NOK" + (long) v); yLabel.getStyleClass().add("stats-chart-axis"); yLabel.setX(padL - 4 - yLabel.getLayoutBounds().getWidth()); balanceChartPane.getChildren().add(yLabel); @@ -564,7 +572,7 @@ private HBox buildHoldingRow(final HoldingData h) { Region spacer = new Region(); HBox.setHgrow(spacer, Priority.ALWAYS); - Label value = new Label(String.format("$%.2f", h.getValue().doubleValue())); + Label value = new Label(String.format("%.2f NOK", h.getValue().doubleValue())); value.getStyleClass().add("stats-holding-value"); boolean up = h.getPnl().signum() >= 0; @@ -600,11 +608,11 @@ private static BigDecimal sumCost(final List holdings) { } private static String formatMoney(final BigDecimal v) { - return "$" + (long) v.doubleValue(); + return (long) v.doubleValue() + "NOK"; } private static String formatSigned(final double v) { - return (v >= 0 ? "+" : "") + "$" + (long) v; + return (v >= 0 ? "+" : "") + (long) v + "NOK"; } private static String formatSignedPct(final double v) {