Archived
0

add population summ

This commit is contained in:
Mo
2016-11-09 21:14:14 +03:00
parent fd95692271
commit 5a0fc0c95b
4 changed files with 44 additions and 6 deletions

View File

@@ -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<ResultEntry> tblResults;
@FXML
private TableView<ResultEntry> tblDetail;
@FXML
private Label resultPopSumm;
@FXML
private Label detailPopSumm;
private MarketModel world;
private ProfileModel profile;
private Optional<SystemModel> hqSystem;
private PowerPlayAnalyzator analyzator;
private final List<ResultEntry> result = FXCollections.observableArrayList();
private final List<ResultEntry> detail = FXCollections.observableArrayList();
private final ObservableList<ResultEntry> result = FXCollections.observableArrayList();
private final ObservableList<ResultEntry> 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);
@@ -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<ResultEntry> 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;
}

View File

@@ -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

View File

@@ -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

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.*?>
<?import javafx.scene.control.cell.*?>
<?import javafx.scene.layout.*?>
@@ -11,6 +12,8 @@
<VBox xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="ru.trader.controllers.PowerPlayController"
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">
<HBox spacing="50" alignment="CENTER" minHeight="210" maxHeight="210">
<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">
<masterNode>
<TitledPane text="Результаты анализа" collapsible="false">
<TableView fx:id="tblResults">
<VBox spacing="4" padding="$tablePadding">
<TableView fx:id="tblResults" VBox.vgrow="ALWAYS">
<columns>
<TableColumn prefWidth="150" text="%market.system">
<cellValueFactory><PropertyValueFactory property="name"/></cellValueFactory>
@@ -125,6 +129,7 @@
<cellValueFactory><PropertyValueFactory property="upkeep"/></cellValueFactory>
</TableColumn>
<TableColumn prefWidth="80" text="Население">
<cellFactory><TextCell><converter><CustomNumberStringConverter pattern="#,##0.##" /></converter></TextCell></cellFactory>
<cellValueFactory><PropertyValueFactory property="population"/></cellValueFactory>
</TableColumn>
<TableColumn prefWidth="100" text="Тип площадки">
@@ -149,11 +154,14 @@
</ContextMenu>
</contextMenu>
</TableView>
<HBox spacing="4" padding="$summPadding"><Label text="Сумма населения:" /><Label fx:id="resultPopSumm" /></HBox>
</VBox>
</TitledPane>
</masterNode>
<detailNode>
<TitledPane text="Системы в радиусе 15 LY" collapsible="false">
<TableView fx:id="tblDetail">
<VBox spacing="4" padding="$tablePadding">
<TableView fx:id="tblDetail" VBox.vgrow="ALWAYS">
<columns>
<TableColumn prefWidth="100" text="%market.system">
<cellValueFactory><PropertyValueFactory property="name"/></cellValueFactory>
@@ -199,6 +207,8 @@
</ContextMenu>
</contextMenu>
</TableView>
<HBox spacing="4" padding="$summPadding"><Label text="Сумма населения:" /><Label fx:id="detailPopSumm" /></HBox>
</VBox>
</TitledPane>
</detailNode>
</MasterDetailPane>