diff --git a/client/src/main/java/ru/trader/controllers/PowerPlayController.java b/client/src/main/java/ru/trader/controllers/PowerPlayController.java index bf069e6..a797d1b 100644 --- a/client/src/main/java/ru/trader/controllers/PowerPlayController.java +++ b/client/src/main/java/ru/trader/controllers/PowerPlayController.java @@ -1,10 +1,13 @@ package ru.trader.controllers; +import javafx.beans.InvalidationListener; import javafx.beans.property.*; import javafx.collections.FXCollections; +import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.scene.control.*; import javafx.scene.input.KeyCode; +import javafx.util.converter.NumberStringConverter; import org.controlsfx.control.CheckComboBox; import org.controlsfx.control.MasterDetailPane; import ru.trader.Main; @@ -20,7 +23,6 @@ import ru.trader.view.support.autocomplete.CachedSuggestionProvider; import ru.trader.view.support.autocomplete.SystemsProvider; import java.util.Collection; -import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -59,13 +61,17 @@ public class PowerPlayController { private TableView tblResults; @FXML private TableView tblDetail; + @FXML + private Label resultPopSumm; + @FXML + private Label detailPopSumm; private MarketModel world; private ProfileModel profile; private Optional hqSystem; private PowerPlayAnalyzator analyzator; - private final List result = FXCollections.observableArrayList(); - private final List detail = FXCollections.observableArrayList(); + private final ObservableList result = FXCollections.observableArrayList(); + private final ObservableList detail = FXCollections.observableArrayList(); @FXML @@ -81,6 +87,7 @@ public class PowerPlayController { cbStates.getItems().setAll(POWER_STATE.values()); cbStates.getCheckModel().check(POWER_STATE.CONTROL); cbStates.getCheckModel().check(POWER_STATE.HEADQUARTERS); + cbStates.getCheckModel().check(POWER_STATE.TURMOIL); BindingsHelper.setTableViewItems(tblResults, result); BindingsHelper.setTableViewItems(tblDetail, detail); @@ -129,7 +136,7 @@ public class PowerPlayController { }); historySystems.getSelectionModel().selectedItemProperty().addListener((ov, o, n) -> { - if (n != null){ + if (n != null) { checkedSystem.setValue(n); } }); @@ -149,6 +156,17 @@ public class PowerPlayController { resultPane.setShowDetailNode(false); } }); + NumberStringConverter converter = new NumberStringConverter("#,##0.##"); + result.addListener((InvalidationListener) i -> + resultPopSumm.setText(converter.toString(getPopulationSumm(result))) + ); + detail.addListener((InvalidationListener) i -> + detailPopSumm.setText(converter.toString(getPopulationSumm(detail))) + ); + } + + private long getPopulationSumm(Collection collection){ + return collection.stream().mapToLong(ResultEntry::getPopulation).sum(); } private void fillDetail(SystemModel detailSystem) { @@ -424,6 +442,10 @@ public class PowerPlayController { return intersecting; } + public long getPopulation() { + return population.get(); + } + public ReadOnlyLongProperty populationProperty() { return population; } diff --git a/client/src/main/resources/lang/locale.properties b/client/src/main/resources/lang/locale.properties index 033374b..b27bf33 100644 --- a/client/src/main/resources/lang/locale.properties +++ b/client/src/main/resources/lang/locale.properties @@ -66,6 +66,7 @@ power.YONG_RUI=Li Yong-Rui power.ANTAL=Pranav Antal power.HUDSON=Zachary Hudson power.TORVAL=Zemina Torval +power.GROM=Yuri Grom power.NONE=None power.states.HEADQUARTERS=Headquarters @@ -73,6 +74,8 @@ power.states.CONTROL=Controlled power.states.EXPLOITED=Exploited power.states.EXPANSION=Expansion power.states.CONTESTED=Contested +power.states.BLOCKED=Blocked +power.states.TURMOIL=Turmoil power.states.NONE=None item.group.chemicals=Chemicals diff --git a/client/src/main/resources/lang/locale_ru_RU_FULL.properties b/client/src/main/resources/lang/locale_ru_RU_FULL.properties index 82df33c..c0161e0 100644 --- a/client/src/main/resources/lang/locale_ru_RU_FULL.properties +++ b/client/src/main/resources/lang/locale_ru_RU_FULL.properties @@ -68,6 +68,7 @@ power.YONG_RUI=Li Yong-Rui power.ANTAL=Pranav Antal power.HUDSON=Zachary Hudson power.TORVAL=Zemina Torval +power.GROM=Yuri Grom power.NONE=\u041D\u0435\u0442 power.states.HEADQUARTERS=\u0428\u0442\u0430\u0431-\u043A\u0432\u0430\u0440\u0442\u0438\u0440\u0430 @@ -75,6 +76,8 @@ power.states.CONTROL=\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u0438\u0440\u044 power.states.EXPLOITED=\u042D\u043A\u0441\u043F\u043B\u0443\u0430\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044F power.states.EXPANSION=\u042D\u043A\u0441\u043F\u0430\u043D\u0441\u0438\u044F power.states.CONTESTED=\u041E\u0441\u043F\u0430\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044F +power.states.BLOCKED=\u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0430 +power.states.TURMOIL=\u041A\u0440\u0438\u0437\u0438\u0441 power.states.NONE=\u041D\u0435\u0442 item.group.chemicals=\u0425\u0438\u043C\u0438\u043A\u0430\u0442\u044B diff --git a/client/src/main/resources/view/powerplay.fxml b/client/src/main/resources/view/powerplay.fxml index 3bc55dc..3ef5522 100644 --- a/client/src/main/resources/view/powerplay.fxml +++ b/client/src/main/resources/view/powerplay.fxml @@ -1,5 +1,6 @@ + @@ -11,6 +12,8 @@ + + @@ -87,7 +90,8 @@ - + + @@ -125,6 +129,7 @@ + @@ -149,11 +154,14 @@ + + - + + @@ -199,6 +207,8 @@ + +