resort items and offers tabs on update prices
This commit is contained in:
@@ -56,6 +56,10 @@ public class ItemsController {
|
||||
MarketModel market = MainController.getMarket();
|
||||
market.addListener(new ItemsStatChangeListener());
|
||||
tblItems.setItems(FXCollections.observableArrayList(market.itemsProperty()));
|
||||
sort();
|
||||
}
|
||||
|
||||
private void sort(){
|
||||
if (tblItems.getSortOrder().size()>0)
|
||||
tblItems.sort();
|
||||
}
|
||||
@@ -65,6 +69,7 @@ public class ItemsController {
|
||||
for (ItemDescModel descModel : tblItems.getItems()) {
|
||||
if (descModel.hasItem(offer)){
|
||||
descModel.refresh(offer.getType());
|
||||
sort();
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -73,10 +78,12 @@ public class ItemsController {
|
||||
private void refresh(){
|
||||
LOG.info("Refresh all stats");
|
||||
tblItems.getItems().forEach(ItemDescModel::refresh);
|
||||
sort();
|
||||
}
|
||||
|
||||
private void addItem(ItemDescModel item){
|
||||
tblItems.getItems().add(item);
|
||||
sort();
|
||||
}
|
||||
|
||||
private class ItemsStatChangeListener extends ChangeMarketListener {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package ru.trader.controllers;
|
||||
|
||||
import javafx.application.Platform;
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.scene.control.ListView;
|
||||
@@ -72,19 +73,25 @@ public class OffersController {
|
||||
private void fillTables(VendorModel vendor){
|
||||
if (vendor != null){
|
||||
tblSell.setItems(FXCollections.observableList(vendor.getSells(this::asOfferDescModel)));
|
||||
if (tblSell.getSortOrder().size()>0)
|
||||
tblSell.sort();
|
||||
|
||||
tblBuy.setItems(FXCollections.observableList(vendor.getBuys(this::asOfferDescModel)));
|
||||
if (tblBuy.getSortOrder().size()>0)
|
||||
tblBuy.sort();
|
||||
|
||||
sort();
|
||||
} else {
|
||||
tblSell.getItems().clear();
|
||||
tblBuy.getItems().clear();
|
||||
}
|
||||
}
|
||||
|
||||
private void sort(){
|
||||
Platform.runLater(()->{
|
||||
if (tblBuy.getSortOrder().size()>0){
|
||||
tblBuy.sort();
|
||||
}
|
||||
if (tblSell.getSortOrder().size()>0){
|
||||
tblSell.sort();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@FXML
|
||||
public void editPrice(TableColumn.CellEditEvent<OfferDescModel, Double> event){
|
||||
@@ -142,12 +149,14 @@ public class OffersController {
|
||||
for (OfferDescModel descModel : tblSell.getItems()) {
|
||||
if (descModel.hasItem(offer)){
|
||||
descModel.refresh(offer.getType());
|
||||
sort();
|
||||
return;
|
||||
}
|
||||
}
|
||||
for (OfferDescModel descModel : tblBuy.getItems()) {
|
||||
if (descModel.hasItem(offer)){
|
||||
descModel.refresh(offer.getType());
|
||||
sort();
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -157,10 +166,18 @@ public class OffersController {
|
||||
LOG.info("Refresh lists");
|
||||
tblSell.getItems().forEach(OfferDescModel::refresh);
|
||||
tblBuy.getItems().forEach(OfferDescModel::refresh);
|
||||
sort();
|
||||
}
|
||||
|
||||
private class OffersChangeListener extends ChangeMarketListener {
|
||||
|
||||
@Override
|
||||
public void priceChange(OfferModel offer, double oldPrice, double newPrice) {
|
||||
if (vendor.hasBuy(offer.getItem()) || vendor.hasSell(offer.getItem())){
|
||||
sort();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(OfferModel offer) {
|
||||
refresh(offer);
|
||||
|
||||
Reference in New Issue
Block a user