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 @@
-
+