Archived
0

Add up, down, add item buttons to vendor editor

This commit is contained in:
iMoHax
2014-07-31 17:59:52 +04:00
parent 4ba9969ead
commit c9541021dd
3 changed files with 50 additions and 4 deletions

View File

@@ -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<ItemModel> addItem(){
Optional<String> 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);
}

View File

@@ -118,6 +118,10 @@ public class Screeners {
}
public static Optional<ItemModel> showAddItem(){
return mainController.addItem();
}
public static void closeAll() {
itemDescController.close();
}

View File

@@ -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<items.getItems().size()-1){
FakeOffer offer = items.getItems().remove(index);
items.getItems().add(index+1, offer);
items.getSelectionModel().select(index + 1, items.getColumns().get(0));
}
}
public void add() {
Optional<ItemModel> 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{" +