diff --git a/client/src/main/java/ru/trader/controllers/MainController.java b/client/src/main/java/ru/trader/controllers/MainController.java index cbe513f..19684c8 100644 --- a/client/src/main/java/ru/trader/controllers/MainController.java +++ b/client/src/main/java/ru/trader/controllers/MainController.java @@ -10,6 +10,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xml.sax.SAXException; import ru.trader.World; +import ru.trader.model.ItemModel; import ru.trader.model.MarketModel; import javax.xml.stream.XMLStreamException; @@ -80,12 +81,17 @@ public class MainController { } - public void addItem(ActionEvent actionEvent){ + public Optional addItem(){ Optional res = Dialogs.create() .title("Добавление нового товара") .message("Введите название товара") .showTextInput(); - if (res.isPresent()) market.add(market.newItem(res.get())); + ItemModel item = null; + if (res.isPresent()){ + item = market.newItem(res.get()); + market.add(item); + } + return Optional.ofNullable(item); } diff --git a/client/src/main/java/ru/trader/controllers/Screeners.java b/client/src/main/java/ru/trader/controllers/Screeners.java index 129571b..974424a 100644 --- a/client/src/main/java/ru/trader/controllers/Screeners.java +++ b/client/src/main/java/ru/trader/controllers/Screeners.java @@ -118,6 +118,10 @@ public class Screeners { } + public static Optional showAddItem(){ + return mainController.addItem(); + } + public static void closeAll() { itemDescController.close(); } diff --git a/client/src/main/java/ru/trader/controllers/VendorEditorController.java b/client/src/main/java/ru/trader/controllers/VendorEditorController.java index 078e05e..fd4be18 100644 --- a/client/src/main/java/ru/trader/controllers/VendorEditorController.java +++ b/client/src/main/java/ru/trader/controllers/VendorEditorController.java @@ -3,6 +3,7 @@ package ru.trader.controllers; import javafx.beans.property.DoubleProperty; import javafx.beans.property.ReadOnlyStringProperty; import javafx.beans.property.SimpleDoubleProperty; +import javafx.collections.ListChangeListener; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.Parent; @@ -21,6 +22,8 @@ import ru.trader.model.*; import ru.trader.model.support.BindingsHelper; import ru.trader.view.support.cells.TextFieldCell; +import java.util.Optional; + public class VendorEditorController { private final static Logger LOG = LoggerFactory.getLogger(VendorEditorController.class); @@ -55,6 +58,7 @@ public class VendorEditorController { items.getSelectionModel().setCellSelectionEnabled(true); buy.setCellFactory(TextFieldCell.forTableColumn(new DoubleStringConverter())); sell.setCellFactory(TextFieldCell.forTableColumn(new DoubleStringConverter())); + fillItems(); } public Action showDialog(Parent parent, Parent content, VendorModel vendor){ @@ -75,14 +79,13 @@ public class VendorEditorController { private void fill(){ name.setText(vendor.getName()); - fillItems(); vendor.getSells().forEach(this::fillOffer); vendor.getBuys().forEach(this::fillOffer); } private void reset(){ name.setText(""); - fillItems(); + items.getItems().forEach(FakeOffer::reset); } private void fillItems() { @@ -106,6 +109,32 @@ public class VendorEditorController { } } + public void up(){ + int index = items.getSelectionModel().getSelectedIndex(); + if (index>0){ + FakeOffer offer = items.getItems().remove(index); + items.getItems().add(index-1, offer); + items.getSelectionModel().select(index - 1, items.getColumns().get(0)); + } + } + + public void down(){ + int index = items.getSelectionModel().getSelectedIndex(); + if (index>=0 && index item = Screeners.showAddItem(); + if (item.isPresent()){ + items.getItems().add(new FakeOffer(item.get())); + } + } + + public void saveChanges(){ LOG.info("Save vendor changes"); items.getSelectionModel().clearSelection(); @@ -242,6 +271,13 @@ public class VendorEditorController { bprice.set(buy.getPrice()); } + public void reset(){ + sprice.setValue(0); + bprice.setValue(0); + this.sell = null; + this.buy = null; + } + @Override public String toString() { return "FakeOffer{" +