don't refresh item stat model in controllers, it's refreshed in model
This commit is contained in:
@@ -5,9 +5,16 @@ import javafx.collections.FXCollections;
|
|||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
|
|
||||||
|
import javafx.geometry.Pos;
|
||||||
|
import javafx.scene.Node;
|
||||||
|
import javafx.scene.control.Button;
|
||||||
|
import javafx.scene.control.Label;
|
||||||
import javafx.scene.control.TableColumn;
|
import javafx.scene.control.TableColumn;
|
||||||
import javafx.scene.control.TableView;
|
import javafx.scene.control.TableView;
|
||||||
import javafx.scene.input.MouseButton;
|
import javafx.scene.input.MouseButton;
|
||||||
|
import javafx.scene.layout.HBox;
|
||||||
|
import javafx.scene.text.TextAlignment;
|
||||||
|
import org.controlsfx.glyphfont.Glyph;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import ru.trader.model.*;
|
import ru.trader.model.*;
|
||||||
@@ -22,6 +29,8 @@ public class ItemsController {
|
|||||||
@FXML
|
@FXML
|
||||||
private TableView<ItemModel> tblItems;
|
private TableView<ItemModel> tblItems;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private TableColumn<ItemModel, Number> itemNameColumn;
|
||||||
@FXML
|
@FXML
|
||||||
private TableColumn<ItemModel, Number> minProfit;
|
private TableColumn<ItemModel, Number> minProfit;
|
||||||
@FXML
|
@FXML
|
||||||
@@ -41,6 +50,8 @@ public class ItemsController {
|
|||||||
Screeners.showItemDesc(tblItems);
|
Screeners.showItemDesc(tblItems);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
addRefreshButton(itemNameColumn);
|
||||||
|
|
||||||
minProfit.setCellValueFactory((data) -> {
|
minProfit.setCellValueFactory((data) -> {
|
||||||
ItemModel iDesc = data.getValue();
|
ItemModel iDesc = data.getValue();
|
||||||
return ModelBindings.diff(iDesc.minBuyProperty(),iDesc.maxSellProperty());
|
return ModelBindings.diff(iDesc.minBuyProperty(),iDesc.maxSellProperty());
|
||||||
@@ -57,9 +68,15 @@ public class ItemsController {
|
|||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addRefreshButton(TableColumn<?, ?> itemNameColumn) {
|
||||||
|
Button refreshButton = new Button();
|
||||||
|
refreshButton.setGraphic(Glyph.create("FontAwesome|REFRESH"));
|
||||||
|
refreshButton.setOnAction(e -> refresh());
|
||||||
|
itemNameColumn.setGraphic(refreshButton);
|
||||||
|
}
|
||||||
|
|
||||||
void init(){
|
void init(){
|
||||||
MarketModel market = MainController.getMarket();
|
MarketModel market = MainController.getMarket();
|
||||||
market.getNotificator().add(new ItemsStatChangeListener());
|
|
||||||
items.clear();
|
items.clear();
|
||||||
items.addAll(market.itemsProperty());
|
items.addAll(market.itemsProperty());
|
||||||
sort();
|
sort();
|
||||||
@@ -70,51 +87,12 @@ public class ItemsController {
|
|||||||
tblItems.sort();
|
tblItems.sort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@FXML
|
||||||
private void refresh(){
|
private void refresh(){
|
||||||
LOG.info("Refresh all stats");
|
LOG.info("Refresh all stats");
|
||||||
tblItems.getItems().forEach(ItemModel::refresh);
|
tblItems.getItems().forEach(ItemModel::refresh);
|
||||||
sort();
|
sort();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addItem(ItemModel item){
|
|
||||||
items.add(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
private class ItemsStatChangeListener extends ChangeMarketListener {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void add(ItemModel item) {
|
|
||||||
addItem(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void remove(SystemModel system) {
|
|
||||||
if (!system.isEmpty()) refresh();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void add(StationModel station) {
|
|
||||||
refresh();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void remove(StationModel station) { refresh();}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void add(OfferModel offer) {
|
|
||||||
sort();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void remove(OfferModel offer) {
|
|
||||||
sort();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void priceChange(OfferModel offer, double price, double value) {
|
|
||||||
sort();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -270,12 +270,6 @@ public class OffersController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refresh(){
|
|
||||||
LOG.info("Refresh lists");
|
|
||||||
tblSell.getItems().forEach(OfferModel::refresh);
|
|
||||||
tblBuy.getItems().forEach(OfferModel::refresh);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void showOffers(Collection<StationModel> buyers){
|
private void showOffers(Collection<StationModel> buyers){
|
||||||
StationModel seller = getStation();
|
StationModel seller = getStation();
|
||||||
MarketModel market = MainController.getMarket();
|
MarketModel market = MainController.getMarket();
|
||||||
@@ -326,7 +320,6 @@ public class OffersController {
|
|||||||
if (station.getSystem().equals(system.getValue())) {
|
if (station.getSystem().equals(system.getValue())) {
|
||||||
stationsList.getItems().add(station);
|
stationsList.getItems().add(station);
|
||||||
}
|
}
|
||||||
refresh();
|
|
||||||
sort();
|
sort();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -344,7 +337,6 @@ public class OffersController {
|
|||||||
if (station.getSystem().equals(system.getValue())) {
|
if (station.getSystem().equals(system.getValue())) {
|
||||||
stationsList.getItems().remove(station);
|
stationsList.getItems().remove(station);
|
||||||
}
|
}
|
||||||
refresh();
|
|
||||||
sort();
|
sort();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
fx:controller="ru.trader.controllers.ItemsController">
|
fx:controller="ru.trader.controllers.ItemsController">
|
||||||
<TableView fx:id="tblItems" editable="true" VBox.vgrow="ALWAYS" prefWidth="1195.0">
|
<TableView fx:id="tblItems" editable="true" VBox.vgrow="ALWAYS" prefWidth="1195.0">
|
||||||
<columns>
|
<columns>
|
||||||
<TableColumn editable="true" minWidth="200.0" text="%market.item">
|
<TableColumn fx:id="itemNameColumn" editable="true" minWidth="200.0" text="%market.item">
|
||||||
<cellValueFactory><PropertyValueFactory property="name"/></cellValueFactory>
|
<cellValueFactory><PropertyValueFactory property="name"/></cellValueFactory>
|
||||||
</TableColumn>
|
</TableColumn>
|
||||||
<TableColumn editable="true" resizable="false" text="%market.offer.buy">
|
<TableColumn editable="true" resizable="false" text="%market.offer.buy">
|
||||||
|
|||||||
Reference in New Issue
Block a user