Archived
0

Routers update

This commit is contained in:
iMoHax
2014-07-20 19:08:07 +04:00
parent 53b4f272be
commit a3d5dacb69
6 changed files with 37 additions and 18 deletions

View File

@@ -4,10 +4,10 @@
<output url="file://$MODULE_DIR$/target/classes" /> <output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" /> <output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<excludeFolder url="file://$MODULE_DIR$/target" /> <excludeFolder url="file://$MODULE_DIR$/target" />
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
@@ -25,7 +25,7 @@
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" /> <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.0.b2" level="project" /> <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.0.b2" level="project" />
<orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" /> <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.slf4j:slf4j-log4j12:1.7.7" level="project" /> <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.7" level="project" />
<orderEntry type="library" name="Maven: org.controlsfx:controlsfx:8.0.6" level="project" /> <orderEntry type="library" name="Maven: org.controlsfx:controlsfx:8.0.6" level="project" />
</component> </component>
</module> </module>

View File

@@ -21,7 +21,7 @@ public class OffersController {
private VendorModel vendor; private VendorModel vendor;
@FXML @FXML
private ComboBox<Vendor> vendors; private ComboBox<VendorModel> vendors;
@FXML @FXML
private TableView<OfferDescModel> tblSell; private TableView<OfferDescModel> tblSell;
@@ -35,7 +35,7 @@ public class OffersController {
vendors.getSelectionModel().selectedItemProperty().addListener((ob, oldValue, newValue) ->{ vendors.getSelectionModel().selectedItemProperty().addListener((ob, oldValue, newValue) ->{
if (newValue != null){ if (newValue != null){
LOG.info("Change vendor to {}", newValue); LOG.info("Change vendor to {}", newValue);
setVendor(newValue); this.vendor = newValue;
fillTables(vendor); fillTables(vendor);
} else { } else {
vendors.getSelectionModel().select(oldValue); vendors.getSelectionModel().select(oldValue);
@@ -78,9 +78,6 @@ public class OffersController {
return vendor; return vendor;
} }
private void setVendor(Vendor vendor){
this.vendor = MainController.getMarket().asModel(vendor);
}
private OfferDescModel asOfferDescModel(OfferModel offer){ private OfferDescModel asOfferDescModel(OfferModel offer){
return MainController.getMarket().asOfferDescModel(offer); return MainController.getMarket().asOfferDescModel(offer);

View File

@@ -12,6 +12,7 @@ import ru.trader.core.Vendor;
import ru.trader.model.MarketModel; import ru.trader.model.MarketModel;
import ru.trader.model.OfferDescModel; import ru.trader.model.OfferDescModel;
import ru.trader.model.OrderModel; import ru.trader.model.OrderModel;
import ru.trader.model.VendorModel;
import ru.trader.view.support.NumberField; import ru.trader.view.support.NumberField;
@@ -32,7 +33,7 @@ public class RoutersController {
private Button add; private Button add;
@FXML @FXML
private ComboBox<Vendor> vendors; private ComboBox<VendorModel> vendors;
@FXML @FXML
private TableView<OrderModel> tblOrders; private TableView<OrderModel> tblOrders;
@@ -49,18 +50,19 @@ public class RoutersController {
while (c.next()) { while (c.next()) {
if (c.wasRemoved()){ if (c.wasRemoved()){
for (OrderModel o : c.getRemoved()) { for (OrderModel o : c.getRemoved()) {
totalProfit.setValue(totalProfit.getValue().doubleValue()-o.getProfit()); onRemove(o);
} }
} }
if (c.wasAdded()){ if (c.wasAdded()){
for (OrderModel o : c.getAddedSubList()) { for (OrderModel o : c.getAddedSubList()) {
totalProfit.setValue(totalProfit.getValue().doubleValue()+o.getProfit()); onAdd(o);
} }
} }
} }
}); });
} }
void init(){ void init(){
MarketModel market = MainController.getMarket(); MarketModel market = MainController.getMarket();
vendors.setItems(market.vendorsProperty()); vendors.setItems(market.vendorsProperty());
@@ -71,8 +73,20 @@ public class RoutersController {
private Collection<OfferDescModel> getOffers(){ private Collection<OfferDescModel> getOffers(){
MarketModel market = MainController.getMarket(); MarketModel market = MainController.getMarket();
Vendor vendor = vendors.getSelectionModel().getSelectedItem(); VendorModel vendor = vendors.getSelectionModel().getSelectedItem();
return vendor.getAllSellOffers().stream().map(market::asOfferDescModel).collect(Collectors.toList()); 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){ public void addOrders(ActionEvent e){

View File

@@ -21,12 +21,12 @@ public class MarketModel {
private final Collection<ChangeMarketListener> listener = new ArrayList<>(); private final Collection<ChangeMarketListener> listener = new ArrayList<>();
private final ListProperty<Vendor> vendors; private final ListProperty<VendorModel> vendors;
private final ListProperty<ItemDescModel> items; private final ListProperty<ItemDescModel> items;
private boolean alert = true; private boolean alert = true;
public ReadOnlyListProperty<Vendor> vendorsProperty() { public ReadOnlyListProperty<VendorModel> vendorsProperty() {
return vendors; return vendors;
} }
@@ -40,8 +40,8 @@ public class MarketModel {
public MarketModel(Market market) { public MarketModel(Market market) {
this.market = market; this.market = market;
items = new SimpleListProperty<>(BindingsHelper.observableList(market.getItems(), this::getItemDesc)); items = new SimpleListProperty<ItemDescModel>(BindingsHelper.observableList(market.getItems(), this::getItemDesc));
vendors = new SimpleListProperty<>(FXCollections.observableArrayList(market.get())); vendors = new SimpleListProperty<VendorModel>(BindingsHelper.observableList(market.get(), this::asModel));
} }
public void addListener(ChangeMarketListener listener){ public void addListener(ChangeMarketListener listener){
@@ -101,7 +101,7 @@ public class MarketModel {
LOG.info("Add vendor {} to market {}", vendor, this); LOG.info("Add vendor {} to market {}", vendor, this);
market.add(vendor.getVendor()); market.add(vendor.getVendor());
if (alert) listener.forEach((c) -> c.add(vendor)); if (alert) listener.forEach((c) -> c.add(vendor));
vendors.add(vendor.getVendor()); vendors.add(vendor);
} }
public void add(ItemModel item) { public void add(ItemModel item) {

View File

@@ -28,6 +28,14 @@ public class NumberField extends TextField {
setText(converter.toString(value)); 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() { public boolean isWrong() {
return wrong.get(); return wrong.get();
} }

View File

@@ -51,5 +51,5 @@
<TableView fx:constant="UNCONSTRAINED_RESIZE_POLICY"/> <TableView fx:constant="UNCONSTRAINED_RESIZE_POLICY"/>
</columnResizePolicy> </columnResizePolicy>
</TableView> </TableView>
<HBox><Label text="Итого:"/><NumberField editable="false" fx:id="totalProfit"/></HBox> <HBox><Label text="Суммарная прибыль:"/><NumberField editable="false" fx:id="totalProfit"/></HBox>
</VBox> </VBox>