From a3d5dacb69502beb7eef59983abd6d45a8f9440d Mon Sep 17 00:00:00 2001 From: iMoHax Date: Sun, 20 Jul 2014 19:08:07 +0400 Subject: [PATCH] Routers update --- client/client.iml | 4 ++-- .../trader/controllers/OffersController.java | 7 ++---- .../trader/controllers/RoutersController.java | 24 +++++++++++++++---- .../java/ru/trader/model/MarketModel.java | 10 ++++---- .../ru/trader/view/support/NumberField.java | 8 +++++++ client/src/main/resources/view/routers.fxml | 2 +- 6 files changed, 37 insertions(+), 18 deletions(-) diff --git a/client/client.iml b/client/client.iml index 19aad9e..b374a6f 100644 --- a/client/client.iml +++ b/client/client.iml @@ -4,10 +4,10 @@ + - @@ -25,7 +25,7 @@ - + diff --git a/client/src/main/java/ru/trader/controllers/OffersController.java b/client/src/main/java/ru/trader/controllers/OffersController.java index 0826bba..b573a94 100644 --- a/client/src/main/java/ru/trader/controllers/OffersController.java +++ b/client/src/main/java/ru/trader/controllers/OffersController.java @@ -21,7 +21,7 @@ public class OffersController { private VendorModel vendor; @FXML - private ComboBox vendors; + private ComboBox vendors; @FXML private TableView tblSell; @@ -35,7 +35,7 @@ public class OffersController { vendors.getSelectionModel().selectedItemProperty().addListener((ob, oldValue, newValue) ->{ if (newValue != null){ LOG.info("Change vendor to {}", newValue); - setVendor(newValue); + this.vendor = newValue; fillTables(vendor); } else { vendors.getSelectionModel().select(oldValue); @@ -78,9 +78,6 @@ public class OffersController { return vendor; } - private void setVendor(Vendor vendor){ - this.vendor = MainController.getMarket().asModel(vendor); - } private OfferDescModel asOfferDescModel(OfferModel offer){ return MainController.getMarket().asOfferDescModel(offer); diff --git a/client/src/main/java/ru/trader/controllers/RoutersController.java b/client/src/main/java/ru/trader/controllers/RoutersController.java index e9a4801..81f9602 100644 --- a/client/src/main/java/ru/trader/controllers/RoutersController.java +++ b/client/src/main/java/ru/trader/controllers/RoutersController.java @@ -12,6 +12,7 @@ import ru.trader.core.Vendor; import ru.trader.model.MarketModel; import ru.trader.model.OfferDescModel; import ru.trader.model.OrderModel; +import ru.trader.model.VendorModel; import ru.trader.view.support.NumberField; @@ -32,7 +33,7 @@ public class RoutersController { private Button add; @FXML - private ComboBox vendors; + private ComboBox vendors; @FXML private TableView tblOrders; @@ -49,18 +50,19 @@ public class RoutersController { while (c.next()) { if (c.wasRemoved()){ for (OrderModel o : c.getRemoved()) { - totalProfit.setValue(totalProfit.getValue().doubleValue()-o.getProfit()); + onRemove(o); } } if (c.wasAdded()){ for (OrderModel o : c.getAddedSubList()) { - totalProfit.setValue(totalProfit.getValue().doubleValue()+o.getProfit()); + onAdd(o); } } } }); } + void init(){ MarketModel market = MainController.getMarket(); vendors.setItems(market.vendorsProperty()); @@ -71,8 +73,20 @@ public class RoutersController { private Collection getOffers(){ MarketModel market = MainController.getMarket(); - Vendor vendor = vendors.getSelectionModel().getSelectedItem(); - return vendor.getAllSellOffers().stream().map(market::asOfferDescModel).collect(Collectors.toList()); + VendorModel vendor = vendors.getSelectionModel().getSelectedItem(); + return vendor.getSells(market::asOfferDescModel); + } + + private void onAdd(OrderModel order){ + balance.add(order.getProfit()); + totalProfit.add(order.getProfit()); + vendors.getSelectionModel().select(order.getBuyer().getVendor()); + } + + private void onRemove(OrderModel order) { + balance.sub(order.getProfit()); + totalProfit.sub(order.getProfit()); + vendors.getSelectionModel().select(order.getVendor()); } public void addOrders(ActionEvent e){ diff --git a/client/src/main/java/ru/trader/model/MarketModel.java b/client/src/main/java/ru/trader/model/MarketModel.java index 4b6fe91..158f36d 100644 --- a/client/src/main/java/ru/trader/model/MarketModel.java +++ b/client/src/main/java/ru/trader/model/MarketModel.java @@ -21,12 +21,12 @@ public class MarketModel { private final Collection listener = new ArrayList<>(); - private final ListProperty vendors; + private final ListProperty vendors; private final ListProperty items; private boolean alert = true; - public ReadOnlyListProperty vendorsProperty() { + public ReadOnlyListProperty vendorsProperty() { return vendors; } @@ -40,8 +40,8 @@ public class MarketModel { public MarketModel(Market market) { this.market = market; - items = new SimpleListProperty<>(BindingsHelper.observableList(market.getItems(), this::getItemDesc)); - vendors = new SimpleListProperty<>(FXCollections.observableArrayList(market.get())); + items = new SimpleListProperty(BindingsHelper.observableList(market.getItems(), this::getItemDesc)); + vendors = new SimpleListProperty(BindingsHelper.observableList(market.get(), this::asModel)); } public void addListener(ChangeMarketListener listener){ @@ -101,7 +101,7 @@ public class MarketModel { LOG.info("Add vendor {} to market {}", vendor, this); market.add(vendor.getVendor()); if (alert) listener.forEach((c) -> c.add(vendor)); - vendors.add(vendor.getVendor()); + vendors.add(vendor); } public void add(ItemModel item) { diff --git a/client/src/main/java/ru/trader/view/support/NumberField.java b/client/src/main/java/ru/trader/view/support/NumberField.java index 656aa5b..73e7fab 100644 --- a/client/src/main/java/ru/trader/view/support/NumberField.java +++ b/client/src/main/java/ru/trader/view/support/NumberField.java @@ -28,6 +28,14 @@ public class NumberField extends TextField { setText(converter.toString(value)); } + public void add(Number value){ + setValue(number.getValue().doubleValue() + value.doubleValue()); + } + + public void sub(Number value){ + setValue(number.getValue().doubleValue() - value.doubleValue()); + } + public boolean isWrong() { return wrong.get(); } diff --git a/client/src/main/resources/view/routers.fxml b/client/src/main/resources/view/routers.fxml index 99625ac..0dda52a 100644 --- a/client/src/main/resources/view/routers.fxml +++ b/client/src/main/resources/view/routers.fxml @@ -51,5 +51,5 @@ - +