add orders list to paths screen
This commit is contained in:
@@ -9,6 +9,7 @@ import javafx.scene.control.ButtonType;
|
|||||||
import javafx.scene.control.Dialog;
|
import javafx.scene.control.Dialog;
|
||||||
import javafx.scene.control.TableView;
|
import javafx.scene.control.TableView;
|
||||||
import ru.trader.Main;
|
import ru.trader.Main;
|
||||||
|
import ru.trader.model.OrderModel;
|
||||||
import ru.trader.model.RouteModel;
|
import ru.trader.model.RouteModel;
|
||||||
import ru.trader.model.support.BindingsHelper;
|
import ru.trader.model.support.BindingsHelper;
|
||||||
import ru.trader.view.support.Localization;
|
import ru.trader.view.support.Localization;
|
||||||
@@ -19,7 +20,11 @@ import java.util.Optional;
|
|||||||
public class PathsController {
|
public class PathsController {
|
||||||
@FXML
|
@FXML
|
||||||
private TableView<RouteModel> tblPaths;
|
private TableView<RouteModel> tblPaths;
|
||||||
|
@FXML
|
||||||
|
private TableView<OrderModel> tblOrders;
|
||||||
|
|
||||||
private final List<RouteModel> paths = FXCollections.observableArrayList();
|
private final List<RouteModel> paths = FXCollections.observableArrayList();
|
||||||
|
private final ObservableList<OrderModel> orders = FXCollections.observableArrayList();
|
||||||
private final ListChangeListener<RouteModel> PATHS_CHANGE_LISTENER = l -> {
|
private final ListChangeListener<RouteModel> PATHS_CHANGE_LISTENER = l -> {
|
||||||
while (l.next()) {
|
while (l.next()) {
|
||||||
if (l.wasAdded()) {
|
if (l.wasAdded()) {
|
||||||
@@ -35,8 +40,19 @@ public class PathsController {
|
|||||||
@FXML
|
@FXML
|
||||||
private void initialize() {
|
private void initialize() {
|
||||||
BindingsHelper.setTableViewItems(tblPaths, paths);
|
BindingsHelper.setTableViewItems(tblPaths, paths);
|
||||||
|
tblOrders.setItems(orders);
|
||||||
|
tblPaths.getSelectionModel().selectedItemProperty().addListener((ov, o, n) ->{
|
||||||
|
if (n != null){
|
||||||
|
fillOrders(n);
|
||||||
|
} else {
|
||||||
|
orders.clear();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void fillOrders(RouteModel route) {
|
||||||
|
orders.setAll(route.getOrders());
|
||||||
|
}
|
||||||
|
|
||||||
private void createDialog(Parent owner, Parent content){
|
private void createDialog(Parent owner, Parent content){
|
||||||
dlg = new Dialog<>();
|
dlg = new Dialog<>();
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package ru.trader.view.support.cells;
|
||||||
|
|
||||||
|
import javafx.collections.ObservableList;
|
||||||
|
import javafx.scene.control.TableRow;
|
||||||
|
import javafx.scene.control.TableView;
|
||||||
|
import javafx.util.Callback;
|
||||||
|
import ru.trader.model.OrderModel;
|
||||||
|
import ru.trader.view.support.ViewUtils;
|
||||||
|
|
||||||
|
public class OrderDecoratedRow extends DecoratedRowFactory<OrderModel> {
|
||||||
|
public OrderDecoratedRow() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderDecoratedRow(Callback<TableView<OrderModel>, TableRow<OrderModel>> decorated) {
|
||||||
|
super(decorated);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doStyle(TableRow<OrderModel> row, OrderModel entry) {
|
||||||
|
ObservableList<String> styles = row.getStyleClass();
|
||||||
|
styles.remove(ViewUtils.ILLEGAL_ITEM_STYLE);
|
||||||
|
if (entry != null && entry.isIllegal()){
|
||||||
|
styles.add(ViewUtils.ILLEGAL_ITEM_STYLE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,7 +8,10 @@
|
|||||||
<?import ru.trader.view.support.cells.DoubleCell?>
|
<?import ru.trader.view.support.cells.DoubleCell?>
|
||||||
<?import ru.trader.view.support.cells.PathRouteCell?>
|
<?import ru.trader.view.support.cells.PathRouteCell?>
|
||||||
<?import ru.trader.view.support.cells.TimeCell?>
|
<?import ru.trader.view.support.cells.TimeCell?>
|
||||||
<HBox xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
|
<?import javafx.scene.layout.VBox?>
|
||||||
|
<?import ru.trader.view.support.cells.OfferCellValueImpl?>
|
||||||
|
<?import ru.trader.view.support.cells.OrderDecoratedRow?>
|
||||||
|
<VBox xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
|
||||||
fx:controller="ru.trader.controllers.PathsController" styleClass="dialog"
|
fx:controller="ru.trader.controllers.PathsController" styleClass="dialog"
|
||||||
prefWidth="1050">
|
prefWidth="1050">
|
||||||
<TableView fx:id="tblPaths" editable="true">
|
<TableView fx:id="tblPaths" editable="true">
|
||||||
@@ -55,4 +58,41 @@
|
|||||||
</ContextMenu>
|
</ContextMenu>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
</TableView>
|
</TableView>
|
||||||
</HBox>
|
<TitledPane maxHeight="200" collapsible="false">
|
||||||
|
<TableView fx:id="tblOrders">
|
||||||
|
<rowFactory><OrderDecoratedRow /></rowFactory>
|
||||||
|
<columns>
|
||||||
|
<TableColumn minWidth="150" text="%market.system">
|
||||||
|
<cellValueFactory><PropertyValueFactory property="system"/></cellValueFactory>
|
||||||
|
</TableColumn>
|
||||||
|
<TableColumn minWidth="150" text="%market.order.seller">
|
||||||
|
<cellValueFactory><PropertyValueFactory property="station"/></cellValueFactory>
|
||||||
|
</TableColumn>
|
||||||
|
<TableColumn minWidth="150" text="%market.item">
|
||||||
|
<cellValueFactory><PropertyValueFactory property="name"/></cellValueFactory>
|
||||||
|
</TableColumn>
|
||||||
|
<TableColumn minWidth="80" text="%market.offer.price">
|
||||||
|
<cellFactory><DoubleCell/></cellFactory>
|
||||||
|
<cellValueFactory><PropertyValueFactory property="price"/></cellValueFactory>
|
||||||
|
</TableColumn>
|
||||||
|
<TableColumn minWidth="80" text="%market.order.count">
|
||||||
|
<cellValueFactory><PropertyValueFactory property="count"/></cellValueFactory>
|
||||||
|
</TableColumn>
|
||||||
|
<TableColumn minWidth="170" text="%market.order.buyer">
|
||||||
|
<cellValueFactory><OfferCellValueImpl property="buyOffer"/></cellValueFactory>
|
||||||
|
</TableColumn>
|
||||||
|
<TableColumn minWidth="80" text="%market.order.distance">
|
||||||
|
<cellFactory><DistanceCell /></cellFactory>
|
||||||
|
<cellValueFactory><PropertyValueFactory property="distance"/></cellValueFactory>
|
||||||
|
</TableColumn>
|
||||||
|
<TableColumn minWidth="80" text="%market.order.profit">
|
||||||
|
<cellFactory><DoubleCell/></cellFactory>
|
||||||
|
<cellValueFactory><PropertyValueFactory property="profit"/></cellValueFactory>
|
||||||
|
</TableColumn>
|
||||||
|
</columns>
|
||||||
|
<columnResizePolicy>
|
||||||
|
<TableView fx:constant="UNCONSTRAINED_RESIZE_POLICY"/>
|
||||||
|
</columnResizePolicy>
|
||||||
|
</TableView>
|
||||||
|
</TitledPane>
|
||||||
|
</VBox>
|
||||||
|
|||||||
Reference in New Issue
Block a user