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