Archived
0

resort items and offers tabs on update prices

This commit is contained in:
iMoHax
2014-09-04 15:17:00 +04:00
parent eaea4469c0
commit 1e8dce9477
2 changed files with 30 additions and 6 deletions

View File

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

View File

@@ -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);