diff --git a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Main.java b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Main.java index 9321762..841fbb4 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Main.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Main.java @@ -1,5 +1,6 @@ package edu.ntnu.idi.idatt2003.g40.mappe; +import edu.ntnu.idi.idatt2003.g40.mappe.engine.Exchange; import edu.ntnu.idi.idatt2003.g40.mappe.model.Stock; import edu.ntnu.idi.idatt2003.g40.mappe.service.FileConverter; import edu.ntnu.idi.idatt2003.g40.mappe.service.FileParser; @@ -38,18 +39,6 @@ * */ public class Main extends Application { - static void main() { - FileParser parser1 = new FileParser("src/main/resources/dummydata.txt"); - FileConverter converter1 = new FileConverter(); - try { - List stocksInFile = converter1.getStocksFromStrings(parser1.readFile()); - parser1.writeStocksToFile(converter1.stocksToStrings(stocksInFile)); - stocksInFile.forEach(s -> System.out.println(s.getSymbol())); - } catch (IOException e) { - System.err.println(e.getMessage()); - } - } - /** * {@inheritDoc} * */ @@ -66,6 +55,14 @@ public void start(final Stage stage) throws Exception { EventManager eventManager = new EventManager(); ViewManager viewManager = new ViewManager(stage, eventManager); + List stocksInFile; + FileParser parser1 = new FileParser("src/main/resources/dummydata.txt"); + + FileConverter converter1 = new FileConverter(); + stocksInFile = converter1.getStocksFromStrings(parser1.readFile()); + + Exchange exchange = new Exchange("Exchange", stocksInFile); + // Main menu MainMenuView mainMenuView = new MainMenuView(); new MainMenuController(mainMenuView, eventManager); @@ -85,7 +82,7 @@ public void start(final Stage stage) throws Exception { // Summary section of the top bar SummaryView summaryView = new SummaryView(); - new SummaryController(summaryView, eventManager); + new SummaryController(summaryView, eventManager, exchange); // Top bar TopBarView topBarView = new TopBarView(summaryView); diff --git a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/financialsummary/SummaryController.java b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/financialsummary/SummaryController.java index fecc2ae..5f720e8 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/financialsummary/SummaryController.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/financialsummary/SummaryController.java @@ -1,23 +1,31 @@ package edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.financialsummary; +import edu.ntnu.idi.idatt2003.g40.mappe.engine.Exchange; import edu.ntnu.idi.idatt2003.g40.mappe.service.event.EventManager; import edu.ntnu.idi.idatt2003.g40.mappe.view.ViewController; public class SummaryController extends ViewController { + private Exchange exchange; /** * {@inheritDoc}. */ public SummaryController(final SummaryView viewElement, - final EventManager eventManager) + final EventManager eventManager, + final Exchange exchange) throws IllegalArgumentException { + this.exchange = exchange; super(viewElement, eventManager); } @Override protected void initInteractions() { getViewElement().setOnAction(SummaryActions.NEXT_WEEK, () -> { - System.out.println("Next week!"); + exchange.nextWeek(); + }); + + exchange.weekProperty().addListener((observable, o, n) -> { + getViewElement().setWeek((Integer) n); }); } } 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 100f9eb..816d87f 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 @@ -84,7 +84,7 @@ protected void initLayout() { navInfo.setAlignment(Pos.TOP_CENTER); nextBtn = new Button("next"); - weekLabel = new Label("week: 0"); + weekLabel = new Label("week: 1"); weekLabel.getStyleClass().add("week-label"); Region spacerR = new Region(); VBox.setVgrow(spacerR, Priority.ALWAYS); diff --git a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/stats/StatsController.java b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/stats/StatsController.java index 275ea4f..873ca7b 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/stats/StatsController.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/stats/StatsController.java @@ -1,4 +1,46 @@ package edu.ntnu.idi.idatt2003.g40.mappe.view.widgets.stats; -public class StatsController { +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.Transaction; +import edu.ntnu.idi.idatt2003.g40.mappe.service.PurchaseCalculator; +import edu.ntnu.idi.idatt2003.g40.mappe.service.TransactionCalculator; +import edu.ntnu.idi.idatt2003.g40.mappe.service.TransactionFactory; +import edu.ntnu.idi.idatt2003.g40.mappe.service.TransactionType; +import edu.ntnu.idi.idatt2003.g40.mappe.service.event.EventManager; +import edu.ntnu.idi.idatt2003.g40.mappe.view.ViewController; + +import java.math.BigDecimal; + +public class StatsController extends ViewController { + + private Player player; + private Exchange exchange; + + /** + * {@inheritDoc} + */ + public StatsController(final StatsView viewElement, + final EventManager eventManager, + final Player player, + final Exchange exchange) + throws IllegalArgumentException { + this.player = player; + this.exchange = exchange; + super(viewElement, eventManager); + } + + @Override + protected void initInteractions() { + getViewElement().setOnAction(StatsActions.BUY_SHARES, () -> { + BigDecimal amountToBuy = new BigDecimal("1.0"); + Transaction transaction = exchange.buy( + getViewElement().getCurrentStock().getSymbol(), + amountToBuy, + player + ); + + }); + } } 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 4b6e832..0c4c702 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 @@ -9,10 +9,10 @@ import javafx.scene.chart.XYChart; import javafx.scene.control.Button; import javafx.scene.control.Label; -import javafx.scene.control.ScrollBar; import javafx.scene.control.ScrollPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; +import javafx.scene.layout.Region; import javafx.scene.layout.VBox; public class StatsView extends ViewElement { @@ -22,7 +22,9 @@ public class StatsView extends ViewElement { private ArrayList stocks; private ArrayList stockStrings; private ArrayList