From 4664b8ca4a1110c48573c01ce10454616ee73f0c Mon Sep 17 00:00:00 2001 From: iMoHax Date: Mon, 12 Dec 2016 13:04:53 +0300 Subject: [PATCH] don't refresh item stat model in controllers, it's refreshed in model --- .../trader/controllers/ItemsController.java | 60 ++++++------------- .../trader/controllers/OffersController.java | 8 --- client/src/main/resources/view/items.fxml | 2 +- 3 files changed, 20 insertions(+), 50 deletions(-) diff --git a/client/src/main/java/ru/trader/controllers/ItemsController.java b/client/src/main/java/ru/trader/controllers/ItemsController.java index 4f72283..3c7fa80 100644 --- a/client/src/main/java/ru/trader/controllers/ItemsController.java +++ b/client/src/main/java/ru/trader/controllers/ItemsController.java @@ -5,9 +5,16 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.fxml.FXML; +import javafx.geometry.Pos; +import javafx.scene.Node; +import javafx.scene.control.Button; +import javafx.scene.control.Label; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.input.MouseButton; +import javafx.scene.layout.HBox; +import javafx.scene.text.TextAlignment; +import org.controlsfx.glyphfont.Glyph; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ru.trader.model.*; @@ -22,6 +29,8 @@ public class ItemsController { @FXML private TableView tblItems; + @FXML + private TableColumn itemNameColumn; @FXML private TableColumn minProfit; @FXML @@ -41,6 +50,8 @@ public class ItemsController { Screeners.showItemDesc(tblItems); } }); + addRefreshButton(itemNameColumn); + minProfit.setCellValueFactory((data) -> { ItemModel iDesc = data.getValue(); return ModelBindings.diff(iDesc.minBuyProperty(),iDesc.maxSellProperty()); @@ -57,9 +68,15 @@ public class ItemsController { init(); } + private void addRefreshButton(TableColumn itemNameColumn) { + Button refreshButton = new Button(); + refreshButton.setGraphic(Glyph.create("FontAwesome|REFRESH")); + refreshButton.setOnAction(e -> refresh()); + itemNameColumn.setGraphic(refreshButton); + } + void init(){ MarketModel market = MainController.getMarket(); - market.getNotificator().add(new ItemsStatChangeListener()); items.clear(); items.addAll(market.itemsProperty()); sort(); @@ -70,51 +87,12 @@ public class ItemsController { tblItems.sort(); } + @FXML private void refresh(){ LOG.info("Refresh all stats"); tblItems.getItems().forEach(ItemModel::refresh); sort(); } - private void addItem(ItemModel item){ - items.add(item); - } - - private class ItemsStatChangeListener extends ChangeMarketListener { - - @Override - public void add(ItemModel item) { - addItem(item); - } - - @Override - public void remove(SystemModel system) { - if (!system.isEmpty()) refresh(); - } - - @Override - public void add(StationModel station) { - refresh(); - } - - @Override - public void remove(StationModel station) { refresh();} - - @Override - public void add(OfferModel offer) { - sort(); - } - - @Override - public void remove(OfferModel offer) { - sort(); - } - - @Override - public void priceChange(OfferModel offer, double price, double value) { - sort(); - } - } - } diff --git a/client/src/main/java/ru/trader/controllers/OffersController.java b/client/src/main/java/ru/trader/controllers/OffersController.java index 551c446..14d2c5b 100644 --- a/client/src/main/java/ru/trader/controllers/OffersController.java +++ b/client/src/main/java/ru/trader/controllers/OffersController.java @@ -270,12 +270,6 @@ public class OffersController { } } - private void refresh(){ - LOG.info("Refresh lists"); - tblSell.getItems().forEach(OfferModel::refresh); - tblBuy.getItems().forEach(OfferModel::refresh); - } - private void showOffers(Collection buyers){ StationModel seller = getStation(); MarketModel market = MainController.getMarket(); @@ -326,7 +320,6 @@ public class OffersController { if (station.getSystem().equals(system.getValue())) { stationsList.getItems().add(station); } - refresh(); sort(); }); } @@ -344,7 +337,6 @@ public class OffersController { if (station.getSystem().equals(system.getValue())) { stationsList.getItems().remove(station); } - refresh(); sort(); }); } diff --git a/client/src/main/resources/view/items.fxml b/client/src/main/resources/view/items.fxml index ecfc920..d872ab9 100644 --- a/client/src/main/resources/view/items.fxml +++ b/client/src/main/resources/view/items.fxml @@ -12,7 +12,7 @@ fx:controller="ru.trader.controllers.ItemsController"> - +