diff --git a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/dashboard/DashBoardController.java b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/dashboard/DashBoardController.java index ecf8526..b1d376b 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/dashboard/DashBoardController.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/dashboard/DashBoardController.java @@ -9,6 +9,7 @@ import javafx.scene.control.TextFormatter; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -38,22 +39,29 @@ private void handleStockSelection(final Stock stock, final float amountOwned) { getViewElement().updateGraph(); } - private void populateStockList() { + private void populateStockList(String filter) { getViewElement().clearStockList(); + String search = filter.toLowerCase(); for (Stock s : stockList) { - Button stockBtn = getViewElement().createStockButton(s.getSymbol()); + boolean matches = s.getSymbol().toLowerCase().contains(search) || + s.getCompany().toLowerCase().contains(search); - getViewElement().setOnStockAction(stockBtn, s, (stock)-> { - BigDecimal amountOfSharesOwned = player.getPortfolio().getTotalSharesBySymbol(s.getSymbol()); - handleStockSelection(stock, amountOfSharesOwned.floatValue()); - }); + if (matches) { + Button stockBtn = getViewElement().createStockButton(s.getSymbol()); + + getViewElement().setOnStockAction(stockBtn, s, (Stock stock) -> { + BigDecimal amountOfSharesOwned = player.getPortfolio() + .getTotalSharesBySymbol(s.getSymbol()); + handleStockSelection(stock, amountOfSharesOwned.floatValue()); + }); + } } } @Override protected void initInteractions() { - populateStockList(); + populateStockList(""); getViewElement().setCurrentStock(stockList.getFirst(), 0); getViewElement().updateGraph(); getViewElement().setOnAction(DashBoardActions.BUY_SHARES, () -> { @@ -116,5 +124,9 @@ protected void initInteractions() { } return null; })); + + getViewElement().getSideBarSearchField().textProperty().addListener((observable, o, n) -> { + populateStockList(n); + }); } } 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 948d91a..9699f5a 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 @@ -93,7 +93,7 @@ protected void initLayout() { yAxis.setTickMarkVisible(true); yAxis.setMinorTickVisible(false); yAxis.setAutoRanging(false); - yAxis.setLabel("Price ($)"); + yAxis.setLabel("Price (NOK)"); chart = new LineChart<>(xAxis, yAxis); chart.setCreateSymbols(false); @@ -312,7 +312,9 @@ private void setHighPriceLabel(float value) { highPriceLabel.setText("High: " + Math.round(value*100f)/100f + " NOK"); } - //public void update + public TextField getSideBarSearchField() { + return sideBarSearchField; + } public Stock getCurrentStock() { return selectedStock;