Skip to content

Commit

Permalink
Feat: Summary now optional
Browse files Browse the repository at this point in the history
  • Loading branch information
tommyah committed May 14, 2026
1 parent 4a716a7 commit 58209ed
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 38 deletions.
18 changes: 11 additions & 7 deletions src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
import java.util.Objects;
import edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.financialsummary.SummaryController;
import edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.financialsummary.SummaryView;
import edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.stats.StatsController;
import edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.stats.StatsView;
import edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.dashboard.DashBoardController;
import edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.dashboard.DashBoardView;
import edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.topbar.TopBarController;
import edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.topbar.TopBarView;
import javafx.application.Application;
Expand Down Expand Up @@ -86,20 +86,24 @@ public void start(final Stage stage) throws Exception {
SummaryView summaryView = new SummaryView();
new SummaryController(summaryView, eventManager, exchange, player);

// Top bar
// Top bar with summary section
TopBarView topBarView = new TopBarView(summaryView);
new TopBarController(topBarView, eventManager);

// Top bar without summary section
TopBarView topBarView2 = new TopBarView();
new TopBarController(topBarView2, eventManager);

// Stats page
StatsView statsView = new StatsView();
new StatsController(statsView,
DashBoardView dashBoardView = new DashBoardView();
new DashBoardController(dashBoardView,
eventManager,
player,
exchange,
stocksInFile);

// In-game
InGameView inGameView = new InGameView(topBarView, statsView.getRootPane());
// In-game (Change "topBarView" to "topBarView2" if no summary section).
InGameView inGameView = new InGameView(topBarView, dashBoardView.getRootPane());

// Register all views
viewManager.addView(mainMenuView);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.dashboard;

public enum DashBoardActions {
BUY_SHARES,
SELL_SHARES,
SELECT_STOCK;
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
package edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.stats;
package edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.dashboard;

import edu.ntnu.idi.idatt2003.g40.mappe.engine.Exchange;
import edu.ntnu.idi.idatt2003.g40.mappe.model.Player;
import edu.ntnu.idi.idatt2003.g40.mappe.model.Share;
import edu.ntnu.idi.idatt2003.g40.mappe.model.Stock;
import edu.ntnu.idi.idatt2003.g40.mappe.service.SaleCalculator;
import edu.ntnu.idi.idatt2003.g40.mappe.service.TransactionFactory;
import edu.ntnu.idi.idatt2003.g40.mappe.service.event.EventManager;
import edu.ntnu.idi.idatt2003.g40.mappe.utils.Validator;
import edu.ntnu.idi.idatt2003.g40.mappe.view.ViewController;
Expand All @@ -15,7 +12,7 @@
import java.math.BigDecimal;
import java.util.List;

public class StatsController extends ViewController<StatsView> {
public class DashBoardController extends ViewController<DashBoardView> {

private Player player;
private Exchange exchange;
Expand All @@ -24,11 +21,11 @@ public class StatsController extends ViewController<StatsView> {
/**
* {@inheritDoc}
*/
public StatsController(final StatsView viewElement,
final EventManager eventManager,
final Player player,
final Exchange exchange,
final List<Stock> stockList)
public DashBoardController(final DashBoardView viewElement,
final EventManager eventManager,
final Player player,
final Exchange exchange,
final List<Stock> stockList)
throws IllegalArgumentException {
this.player = player;
this.stockList = stockList;
Expand Down Expand Up @@ -58,7 +55,7 @@ protected void initInteractions() {
populateStockList();
getViewElement().setCurrentStock(stockList.getFirst());
getViewElement().updateGraph();
getViewElement().setOnAction(StatsActions.BUY_SHARES, () -> {
getViewElement().setOnAction(DashBoardActions.BUY_SHARES, () -> {
if (Validator.NOT_EMPTY.isValid(getViewElement().getQuantityInputField().getText())) {
BigDecimal amountToBuy = new BigDecimal(getViewElement().getQuantityInputField().getText());
exchange.buy(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.stats;
package edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.dashboard;

import edu.ntnu.idi.idatt2003.g40.mappe.model.Stock;
import edu.ntnu.idi.idatt2003.g40.mappe.view.ViewElement;
Expand All @@ -8,6 +8,7 @@
import java.util.List;
import java.util.function.Consumer;

import edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.financialsummary.SummaryView;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.chart.LineChart;
Expand All @@ -22,7 +23,7 @@
import javafx.scene.layout.Region;
import javafx.scene.layout.VBox;

public class StatsView extends ViewElement<HBox, StatsActions> {
public class DashBoardView extends ViewElement<HBox, DashBoardActions> {
private LineChart<Number, Number> chart;
private XYChart.Series<Number, Number> dataSeries;
private VBox sidebar;
Expand All @@ -35,9 +36,9 @@ public class StatsView extends ViewElement<HBox, StatsActions> {
private Label selectedStockPriceLabel;
private TextField shareQuantityInputField;

public StatsView() {
public DashBoardView() {
stockButtons = new ArrayList<>();
super(new HBox(), StatsActions.class);
super(new HBox(), DashBoardActions.class);
}

@Override
Expand Down Expand Up @@ -110,11 +111,11 @@ protected void initLayout() {

Button buyBtn = new Button("buy");
buyBtn.getStyleClass().add("buy-button");
registerButton(StatsActions.BUY_SHARES, buyBtn);
registerButton(DashBoardActions.BUY_SHARES, buyBtn);

Button sellBtn = new Button("sell");
sellBtn.getStyleClass().add("sell-button");
registerButton(StatsActions.SELL_SHARES, sellBtn);
registerButton(DashBoardActions.SELL_SHARES, sellBtn);

shareQuantityInputField = new TextField("1.0");

Expand All @@ -130,8 +131,8 @@ protected void initLayout() {
mainContent.getChildren().addAll(topSection, chart, tradeActions);
getRootPane().getChildren().addAll(scrollPane, mainContent);

registerButton(StatsActions.BUY_SHARES, buyBtn);
registerButton(StatsActions.SELL_SHARES, sellBtn);
registerButton(DashBoardActions.BUY_SHARES, buyBtn);
registerButton(DashBoardActions.SELL_SHARES, sellBtn);
}

@Override
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,17 @@ public class TopBarView extends ViewElement<VBox, TopBarActions> {
private Button statsBtn;
private Button marketBtn;
private Button settingsBtn;
private final SummaryView summaryView;
private SummaryView summaryView;

public TopBarView(final SummaryView summaryView) {
this.summaryView = summaryView;
super(new VBox(10), TopBarActions.class);
}

public TopBarView() {
super(new VBox(10), TopBarActions.class);
}

@Override
protected void initLayout() {
HBox navRow = new HBox(20);
Expand All @@ -31,7 +35,6 @@ protected void initLayout() {
navRow.setMaxWidth(Double.MAX_VALUE);
navRow.setMinHeight(Region.USE_PREF_SIZE);

//VBox.setVgrow(getRootPane(), Priority.SOMETIMES);
HBox.setHgrow(navRow, Priority.ALWAYS);

getRootPane().setAlignment(Pos.TOP_CENTER);
Expand All @@ -54,9 +57,11 @@ protected void initLayout() {
settingsBtn
);


getRootPane().getChildren().addAll(navRow, summaryView.getRootPane());

if (summaryView != null) {
getRootPane().getChildren().addAll(navRow, summaryView.getRootPane());
} else {
getRootPane().getChildren().add(navRow);
}
registerButton(TopBarActions.EXIT, quitBtn);
registerButton(TopBarActions.STATS, statsBtn);
registerButton(TopBarActions.MARKET, marketBtn);
Expand Down

0 comments on commit 58209ed

Please sign in to comment.