From 97ec8ce1cf481cfed84ec5d83f32b8c14ca0926d Mon Sep 17 00:00:00 2001 From: Mo Date: Sat, 24 Oct 2015 16:15:42 +0300 Subject: [PATCH] show time and distance in helper --- .../trader/controllers/HelperController.java | 21 ++++++++++++--- .../main/java/ru/trader/model/RouteModel.java | 2 +- .../ru/trader/view/support/RouteNode.java | 3 +-- .../ru/trader/view/support/ViewUtils.java | 9 +++++++ .../view/support/cells/DistanceCell.java | 7 ++--- .../trader/view/support/cells/TimeCell.java | 26 +++++++++++++++++++ client/src/main/resources/view/helper.fxml | 12 ++++++--- client/src/main/resources/view/paths.fxml | 19 +++++++------- 8 files changed, 75 insertions(+), 24 deletions(-) create mode 100644 client/src/main/java/ru/trader/view/support/cells/TimeCell.java diff --git a/client/src/main/java/ru/trader/controllers/HelperController.java b/client/src/main/java/ru/trader/controllers/HelperController.java index d145bba..29b5ad8 100644 --- a/client/src/main/java/ru/trader/controllers/HelperController.java +++ b/client/src/main/java/ru/trader/controllers/HelperController.java @@ -45,6 +45,10 @@ public class HelperController { @FXML private Label time; @FXML + private Label distance; + @FXML + private Label stationDistance; + @FXML private Label refuel; @FXML private ListView buyOrders; @@ -197,9 +201,18 @@ public class HelperController { station.setText(entry.getStation().getName()); system.setText(entry.getStation().getSystem().getName()); if (index > 0){ - time.setText(ViewUtils.timeToString(route.get(index-1).getTime())); + RouteEntryModel prev = route.get(index - 1); + time.setText(ViewUtils.timeToString(prev.getTime())); + distance.setText(ViewUtils.distanceToString(prev.getStation().getSystem().getDistance(entry.getStation().getSystem()))); + if (entry.isTransit()) { + stationDistance.setText(""); + } else { + stationDistance.setText(ViewUtils.stationDistanceToString(entry.getStation().getDistance())); + } } else { - time.setText(ViewUtils.timeToString(0)); + time.setText(""); + distance.setText(""); + stationDistance.setText(""); } refuel.setText(String.valueOf(entry.getRefill())); buyOrders.setItems(entry.orders()); @@ -213,6 +226,8 @@ public class HelperController { station.setText(""); system.setText("No route"); time.setText(""); + distance.setText(""); + stationDistance.setText(""); refuel.setText(""); buyOrders.setItems(FXCollections.emptyObservableList()); sellOrders.setItems(FXCollections.emptyObservableList()); @@ -253,7 +268,7 @@ public class HelperController { } private void bindKeys(){ - KeyBinding.bind(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, KeyEvent.CTRL_MASK), k -> ViewUtils.doFX(this::complete)); + KeyBinding.bind(KeyStroke.getKeyStroke(KeyEvent.VK_END, 0), k -> ViewUtils.doFX(this::complete)); } private final ChangeListener currentEntryListener = (ov, o, n) -> ViewUtils.doFX(() -> setRouteEntry(n.intValue())); diff --git a/client/src/main/java/ru/trader/model/RouteModel.java b/client/src/main/java/ru/trader/model/RouteModel.java index 8f1cf34..7a4aaac 100644 --- a/client/src/main/java/ru/trader/model/RouteModel.java +++ b/client/src/main/java/ru/trader/model/RouteModel.java @@ -72,7 +72,7 @@ public class RouteModel { } public int getJumps() { - return entries.size(); + return entries.size()-1; } public int getRefuels() { diff --git a/client/src/main/java/ru/trader/view/support/RouteNode.java b/client/src/main/java/ru/trader/view/support/RouteNode.java index 6917c4b..fd5a41f 100644 --- a/client/src/main/java/ru/trader/view/support/RouteNode.java +++ b/client/src/main/java/ru/trader/view/support/RouteNode.java @@ -10,7 +10,6 @@ import ru.trader.analysis.Route; import ru.trader.analysis.RouteEntry; import ru.trader.core.Vendor; import ru.trader.model.RouteModel; -import ru.trader.view.support.cells.DistanceCell; public class RouteNode { private final static String CSS_PATH = "path"; @@ -39,7 +38,7 @@ public class RouteNode { VBox.setVgrow(track, Priority.ALWAYS); track.getStyleClass().add(CSS_TRACK); - Text t = new Text(DistanceCell.distanceToString(entry.getVendor().getDistance(prev))); + Text t = new Text(ViewUtils.distanceToString(entry.getVendor().getDistance(prev))); t.getStyleClass().add(CSS_TRACK_TEXT); track.getChildren().addAll(t, Glyph.create("FontAwesome|LONG_ARROW_RIGHT")); diff --git a/client/src/main/java/ru/trader/view/support/ViewUtils.java b/client/src/main/java/ru/trader/view/support/ViewUtils.java index 648afa1..539566c 100644 --- a/client/src/main/java/ru/trader/view/support/ViewUtils.java +++ b/client/src/main/java/ru/trader/view/support/ViewUtils.java @@ -45,4 +45,13 @@ public class ViewUtils { public static String timeToString(long time){ return String.format("%d:%02d:%02d", time/3600, (time%3600)/60, (time%60)); } + + public static String distanceToString(double distance){ + if (distance < 0.01) return String.format("%.0f Ls", distance / 0.00000003169); + return String.format("%.2f LY", distance); + } + + public static String stationDistanceToString(double distance){ + return String.format("%.2f Ls", distance); + } } diff --git a/client/src/main/java/ru/trader/view/support/cells/DistanceCell.java b/client/src/main/java/ru/trader/view/support/cells/DistanceCell.java index 2420ba7..ef30100 100644 --- a/client/src/main/java/ru/trader/view/support/cells/DistanceCell.java +++ b/client/src/main/java/ru/trader/view/support/cells/DistanceCell.java @@ -4,6 +4,7 @@ import javafx.scene.control.TableCell; import javafx.scene.control.TableColumn; import javafx.util.Callback; import ru.trader.view.support.NaNComparator; +import ru.trader.view.support.ViewUtils; public class DistanceCell implements Callback, TableCell> { public DistanceCell() { @@ -20,15 +21,11 @@ public class DistanceCell implements Callback, TableCe setText(null); setGraphic(null); } else { - setText(distanceToString(item)); + setText(ViewUtils.distanceToString(item)); setGraphic(null); } } }; } - public static String distanceToString(double distance){ - if (distance < 0.01) return String.format("%.0f Ls", distance / 0.00000003169); - return String.format("%.2f LY", distance); - } } diff --git a/client/src/main/java/ru/trader/view/support/cells/TimeCell.java b/client/src/main/java/ru/trader/view/support/cells/TimeCell.java new file mode 100644 index 0000000..8146fa7 --- /dev/null +++ b/client/src/main/java/ru/trader/view/support/cells/TimeCell.java @@ -0,0 +1,26 @@ +package ru.trader.view.support.cells; + +import javafx.scene.control.TableCell; +import javafx.scene.control.TableColumn; +import javafx.util.Callback; +import ru.trader.view.support.ViewUtils; + +public class TimeCell implements Callback, TableCell> { + + @Override + public TableCell call(TableColumn param) { + return new TableCell(){ + @Override + protected void updateItem(Long item, boolean empty) { + super.updateItem(item, empty); + if (empty) { + setText(null); + setGraphic(null); + } else { + setText(ViewUtils.timeToString(item)); + setGraphic(null); + } + } + }; + } +} diff --git a/client/src/main/resources/view/helper.fxml b/client/src/main/resources/view/helper.fxml index d46ea36..85321bb 100644 --- a/client/src/main/resources/view/helper.fxml +++ b/client/src/main/resources/view/helper.fxml @@ -6,18 +6,22 @@ + spacing="4" minWidth="220" maxWidth="220" fx:id="helper"> - + - + + diff --git a/client/src/main/resources/view/paths.fxml b/client/src/main/resources/view/paths.fxml index b53abd5..ffaef0c 100644 --- a/client/src/main/resources/view/paths.fxml +++ b/client/src/main/resources/view/paths.fxml @@ -1,16 +1,13 @@ + - - - - - - - - + + + + @@ -35,7 +32,11 @@ - + + + + +