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.TableView;
|
||||
import ru.trader.Main;
|
||||
import ru.trader.model.OrderModel;
|
||||
import ru.trader.model.RouteModel;
|
||||
import ru.trader.model.support.BindingsHelper;
|
||||
import ru.trader.view.support.Localization;
|
||||
@@ -19,7 +20,11 @@ import java.util.Optional;
|
||||
public class PathsController {
|
||||
@FXML
|
||||
private TableView<RouteModel> tblPaths;
|
||||
@FXML
|
||||
private TableView<OrderModel> tblOrders;
|
||||
|
||||
private final List<RouteModel> paths = FXCollections.observableArrayList();
|
||||
private final ObservableList<OrderModel> orders = FXCollections.observableArrayList();
|
||||
private final ListChangeListener<RouteModel> PATHS_CHANGE_LISTENER = l -> {
|
||||
while (l.next()) {
|
||||
if (l.wasAdded()) {
|
||||
@@ -35,8 +40,19 @@ public class PathsController {
|
||||
@FXML
|
||||
private void initialize() {
|
||||
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){
|
||||
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.PathRouteCell?>
|
||||
<?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"
|
||||
prefWidth="1050">
|
||||
<TableView fx:id="tblPaths" editable="true">
|
||||
@@ -55,4 +58,41 @@
|
||||
</ContextMenu>
|
||||
</contextMenu>
|
||||
</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