add population summ
This commit is contained in:
@@ -1,10 +1,13 @@
|
|||||||
package ru.trader.controllers;
|
package ru.trader.controllers;
|
||||||
|
|
||||||
|
import javafx.beans.InvalidationListener;
|
||||||
import javafx.beans.property.*;
|
import javafx.beans.property.*;
|
||||||
import javafx.collections.FXCollections;
|
import javafx.collections.FXCollections;
|
||||||
|
import javafx.collections.ObservableList;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.input.KeyCode;
|
import javafx.scene.input.KeyCode;
|
||||||
|
import javafx.util.converter.NumberStringConverter;
|
||||||
import org.controlsfx.control.CheckComboBox;
|
import org.controlsfx.control.CheckComboBox;
|
||||||
import org.controlsfx.control.MasterDetailPane;
|
import org.controlsfx.control.MasterDetailPane;
|
||||||
import ru.trader.Main;
|
import ru.trader.Main;
|
||||||
@@ -20,7 +23,6 @@ import ru.trader.view.support.autocomplete.CachedSuggestionProvider;
|
|||||||
import ru.trader.view.support.autocomplete.SystemsProvider;
|
import ru.trader.view.support.autocomplete.SystemsProvider;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -59,13 +61,17 @@ public class PowerPlayController {
|
|||||||
private TableView<ResultEntry> tblResults;
|
private TableView<ResultEntry> tblResults;
|
||||||
@FXML
|
@FXML
|
||||||
private TableView<ResultEntry> tblDetail;
|
private TableView<ResultEntry> tblDetail;
|
||||||
|
@FXML
|
||||||
|
private Label resultPopSumm;
|
||||||
|
@FXML
|
||||||
|
private Label detailPopSumm;
|
||||||
|
|
||||||
private MarketModel world;
|
private MarketModel world;
|
||||||
private ProfileModel profile;
|
private ProfileModel profile;
|
||||||
private Optional<SystemModel> hqSystem;
|
private Optional<SystemModel> hqSystem;
|
||||||
private PowerPlayAnalyzator analyzator;
|
private PowerPlayAnalyzator analyzator;
|
||||||
private final List<ResultEntry> result = FXCollections.observableArrayList();
|
private final ObservableList<ResultEntry> result = FXCollections.observableArrayList();
|
||||||
private final List<ResultEntry> detail = FXCollections.observableArrayList();
|
private final ObservableList<ResultEntry> detail = FXCollections.observableArrayList();
|
||||||
|
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
@@ -81,6 +87,7 @@ public class PowerPlayController {
|
|||||||
cbStates.getItems().setAll(POWER_STATE.values());
|
cbStates.getItems().setAll(POWER_STATE.values());
|
||||||
cbStates.getCheckModel().check(POWER_STATE.CONTROL);
|
cbStates.getCheckModel().check(POWER_STATE.CONTROL);
|
||||||
cbStates.getCheckModel().check(POWER_STATE.HEADQUARTERS);
|
cbStates.getCheckModel().check(POWER_STATE.HEADQUARTERS);
|
||||||
|
cbStates.getCheckModel().check(POWER_STATE.TURMOIL);
|
||||||
|
|
||||||
BindingsHelper.setTableViewItems(tblResults, result);
|
BindingsHelper.setTableViewItems(tblResults, result);
|
||||||
BindingsHelper.setTableViewItems(tblDetail, detail);
|
BindingsHelper.setTableViewItems(tblDetail, detail);
|
||||||
@@ -149,6 +156,17 @@ public class PowerPlayController {
|
|||||||
resultPane.setShowDetailNode(false);
|
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<ResultEntry> collection){
|
||||||
|
return collection.stream().mapToLong(ResultEntry::getPopulation).sum();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void fillDetail(SystemModel detailSystem) {
|
private void fillDetail(SystemModel detailSystem) {
|
||||||
@@ -424,6 +442,10 @@ public class PowerPlayController {
|
|||||||
return intersecting;
|
return intersecting;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getPopulation() {
|
||||||
|
return population.get();
|
||||||
|
}
|
||||||
|
|
||||||
public ReadOnlyLongProperty populationProperty() {
|
public ReadOnlyLongProperty populationProperty() {
|
||||||
return population;
|
return population;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ power.YONG_RUI=Li Yong-Rui
|
|||||||
power.ANTAL=Pranav Antal
|
power.ANTAL=Pranav Antal
|
||||||
power.HUDSON=Zachary Hudson
|
power.HUDSON=Zachary Hudson
|
||||||
power.TORVAL=Zemina Torval
|
power.TORVAL=Zemina Torval
|
||||||
|
power.GROM=Yuri Grom
|
||||||
power.NONE=None
|
power.NONE=None
|
||||||
|
|
||||||
power.states.HEADQUARTERS=Headquarters
|
power.states.HEADQUARTERS=Headquarters
|
||||||
@@ -73,6 +74,8 @@ power.states.CONTROL=Controlled
|
|||||||
power.states.EXPLOITED=Exploited
|
power.states.EXPLOITED=Exploited
|
||||||
power.states.EXPANSION=Expansion
|
power.states.EXPANSION=Expansion
|
||||||
power.states.CONTESTED=Contested
|
power.states.CONTESTED=Contested
|
||||||
|
power.states.BLOCKED=Blocked
|
||||||
|
power.states.TURMOIL=Turmoil
|
||||||
power.states.NONE=None
|
power.states.NONE=None
|
||||||
|
|
||||||
item.group.chemicals=Chemicals
|
item.group.chemicals=Chemicals
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ power.YONG_RUI=Li Yong-Rui
|
|||||||
power.ANTAL=Pranav Antal
|
power.ANTAL=Pranav Antal
|
||||||
power.HUDSON=Zachary Hudson
|
power.HUDSON=Zachary Hudson
|
||||||
power.TORVAL=Zemina Torval
|
power.TORVAL=Zemina Torval
|
||||||
|
power.GROM=Yuri Grom
|
||||||
power.NONE=\u041D\u0435\u0442
|
power.NONE=\u041D\u0435\u0442
|
||||||
|
|
||||||
power.states.HEADQUARTERS=\u0428\u0442\u0430\u0431-\u043A\u0432\u0430\u0440\u0442\u0438\u0440\u0430
|
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.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.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.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
|
power.states.NONE=\u041D\u0435\u0442
|
||||||
|
|
||||||
item.group.chemicals=\u0425\u0438\u043C\u0438\u043A\u0430\u0442\u044B
|
item.group.chemicals=\u0425\u0438\u043C\u0438\u043A\u0430\u0442\u044B
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import javafx.geometry.Insets?>
|
||||||
<?import javafx.scene.control.*?>
|
<?import javafx.scene.control.*?>
|
||||||
<?import javafx.scene.control.cell.*?>
|
<?import javafx.scene.control.cell.*?>
|
||||||
<?import javafx.scene.layout.*?>
|
<?import javafx.scene.layout.*?>
|
||||||
@@ -11,6 +12,8 @@
|
|||||||
<VBox xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
|
<VBox xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
|
||||||
fx:controller="ru.trader.controllers.PowerPlayController"
|
fx:controller="ru.trader.controllers.PowerPlayController"
|
||||||
prefHeight="500" >
|
prefHeight="500" >
|
||||||
|
<fx:define><Insets fx:id="tablePadding" left="0" right="0" top="0" bottom="0" /></fx:define>
|
||||||
|
<fx:define><Insets fx:id="summPadding" left="4" right="4" top="4" bottom="4" /></fx:define>
|
||||||
<TitledPane text="Параметры анализа" collapsible="false">
|
<TitledPane text="Параметры анализа" collapsible="false">
|
||||||
<HBox spacing="50" alignment="CENTER" minHeight="210" maxHeight="210">
|
<HBox spacing="50" alignment="CENTER" minHeight="210" maxHeight="210">
|
||||||
<VBox minWidth="250" maxWidth="250" spacing="4">
|
<VBox minWidth="250" maxWidth="250" spacing="4">
|
||||||
@@ -87,7 +90,8 @@
|
|||||||
<MasterDetailPane fx:id="resultPane" detailSide="RIGHT" prefWidth="1190" dividerPosition="0.566" showDetailNode="false" VBox.vgrow="ALWAYS">
|
<MasterDetailPane fx:id="resultPane" detailSide="RIGHT" prefWidth="1190" dividerPosition="0.566" showDetailNode="false" VBox.vgrow="ALWAYS">
|
||||||
<masterNode>
|
<masterNode>
|
||||||
<TitledPane text="Результаты анализа" collapsible="false">
|
<TitledPane text="Результаты анализа" collapsible="false">
|
||||||
<TableView fx:id="tblResults">
|
<VBox spacing="4" padding="$tablePadding">
|
||||||
|
<TableView fx:id="tblResults" VBox.vgrow="ALWAYS">
|
||||||
<columns>
|
<columns>
|
||||||
<TableColumn prefWidth="150" text="%market.system">
|
<TableColumn prefWidth="150" text="%market.system">
|
||||||
<cellValueFactory><PropertyValueFactory property="name"/></cellValueFactory>
|
<cellValueFactory><PropertyValueFactory property="name"/></cellValueFactory>
|
||||||
@@ -125,6 +129,7 @@
|
|||||||
<cellValueFactory><PropertyValueFactory property="upkeep"/></cellValueFactory>
|
<cellValueFactory><PropertyValueFactory property="upkeep"/></cellValueFactory>
|
||||||
</TableColumn>
|
</TableColumn>
|
||||||
<TableColumn prefWidth="80" text="Население">
|
<TableColumn prefWidth="80" text="Население">
|
||||||
|
<cellFactory><TextCell><converter><CustomNumberStringConverter pattern="#,##0.##" /></converter></TextCell></cellFactory>
|
||||||
<cellValueFactory><PropertyValueFactory property="population"/></cellValueFactory>
|
<cellValueFactory><PropertyValueFactory property="population"/></cellValueFactory>
|
||||||
</TableColumn>
|
</TableColumn>
|
||||||
<TableColumn prefWidth="100" text="Тип площадки">
|
<TableColumn prefWidth="100" text="Тип площадки">
|
||||||
@@ -149,11 +154,14 @@
|
|||||||
</ContextMenu>
|
</ContextMenu>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
</TableView>
|
</TableView>
|
||||||
|
<HBox spacing="4" padding="$summPadding"><Label text="Сумма населения:" /><Label fx:id="resultPopSumm" /></HBox>
|
||||||
|
</VBox>
|
||||||
</TitledPane>
|
</TitledPane>
|
||||||
</masterNode>
|
</masterNode>
|
||||||
<detailNode>
|
<detailNode>
|
||||||
<TitledPane text="Системы в радиусе 15 LY" collapsible="false">
|
<TitledPane text="Системы в радиусе 15 LY" collapsible="false">
|
||||||
<TableView fx:id="tblDetail">
|
<VBox spacing="4" padding="$tablePadding">
|
||||||
|
<TableView fx:id="tblDetail" VBox.vgrow="ALWAYS">
|
||||||
<columns>
|
<columns>
|
||||||
<TableColumn prefWidth="100" text="%market.system">
|
<TableColumn prefWidth="100" text="%market.system">
|
||||||
<cellValueFactory><PropertyValueFactory property="name"/></cellValueFactory>
|
<cellValueFactory><PropertyValueFactory property="name"/></cellValueFactory>
|
||||||
@@ -199,6 +207,8 @@
|
|||||||
</ContextMenu>
|
</ContextMenu>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
</TableView>
|
</TableView>
|
||||||
|
<HBox spacing="4" padding="$summPadding"><Label text="Сумма населения:" /><Label fx:id="detailPopSumm" /></HBox>
|
||||||
|
</VBox>
|
||||||
</TitledPane>
|
</TitledPane>
|
||||||
</detailNode>
|
</detailNode>
|
||||||
</MasterDetailPane>
|
</MasterDetailPane>
|
||||||
|
|||||||
Reference in New Issue
Block a user