diff --git a/src/main/java/edu/ntnu/idi/idatt/model/player/Player.java b/src/main/java/edu/ntnu/idi/idatt/model/player/Player.java index 6f981a7..d0a21e2 100644 --- a/src/main/java/edu/ntnu/idi/idatt/model/player/Player.java +++ b/src/main/java/edu/ntnu/idi/idatt/model/player/Player.java @@ -89,5 +89,8 @@ public String getStatus() { return "Novice"; } + public BigDecimal getStartingMoney(){ + return startingMoney; + } } diff --git a/src/main/java/edu/ntnu/idi/idatt/view/components/elements/PlayerPortfolioComponent.java b/src/main/java/edu/ntnu/idi/idatt/view/components/elements/PlayerPortfolioComponent.java index 6744dd4..a4f218e 100644 --- a/src/main/java/edu/ntnu/idi/idatt/view/components/elements/PlayerPortfolioComponent.java +++ b/src/main/java/edu/ntnu/idi/idatt/view/components/elements/PlayerPortfolioComponent.java @@ -3,11 +3,15 @@ import edu.ntnu.idi.idatt.model.portfolio.Portfolio; import edu.ntnu.idi.idatt.session.UserSession; import edu.ntnu.idi.idatt.view.components.ui.UICompositor; +import edu.ntnu.idi.idatt.view.util.CssUtils; import javafx.geometry.Pos; import javafx.scene.control.Label; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; +import java.math.BigDecimal; +import java.math.MathContext; +import java.math.RoundingMode; import java.util.ArrayList; import java.util.Collections; @@ -16,13 +20,19 @@ public class PlayerPortfolioComponent extends HBox { public PlayerPortfolioComponent(Portfolio portfolio) { this.setMaxSize(Double.MAX_VALUE, 500); this.getStyleClass().add("light"); + BigDecimal startingMoney = UserSession.getInstance().getPlayer().getStartingMoney(); + BigDecimal netMoney = UserSession.getInstance().getPlayer().getNetWorth(); + BigDecimal netPercentage = netMoney.divide(startingMoney) + .multiply(new BigDecimal("100")) + .setScale(2, RoundingMode.HALF_UP) + .subtract(new BigDecimal("100")); Label userTitle = new Label(String.format("%s's Portfolio", UserSession.getInstance().getPlayer().getName())); Label netWorth = new Label(); netWorth.textProperty().bind( UserSession.getInstance().netWorthProperty().asString("Net Worth: %.2f $")); Label percentageChange = new Label( - "Percentage change: " + UserSession.getInstance().netWorthProperty().get()); + "Percentage change: " + netPercentage + "%"); Label playerStatus = new Label("Player status: " + UserSession.getInstance().getPlayer().getStatus()); Label totalShares = new Label( "Total shares owned: " + UserSession.getInstance().getPlayer().getPortfolio().getShares().size()); @@ -30,6 +40,8 @@ public PlayerPortfolioComponent(Portfolio portfolio) { Collections.addAll(labels, netWorth, percentageChange, playerStatus, totalShares); labels.forEach(e -> e.getStyleClass().add("portfolio-box-text")); userTitle.getStyleClass().add("portfolio-box-title"); + String color = CssUtils.generateValueColors(netPercentage); + CssUtils.apply(percentageChange, color); UICompositor playerPortfolioComponent = new UICompositor.Builder() .parent(new HBox())