Archived
0

add skipped fields to system editor

This commit is contained in:
Mo
2016-03-17 19:09:45 +03:00
parent ee5a56f782
commit 9a567a436f
2 changed files with 71 additions and 17 deletions

View File

@@ -1,25 +1,26 @@
package ru.trader.controllers; package ru.trader.controllers;
import javafx.beans.property.DoubleProperty; import javafx.beans.property.*;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.collections.FXCollections; import javafx.collections.FXCollections;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.scene.Parent; import javafx.scene.Parent;
import javafx.scene.control.*; import javafx.scene.control.*;
import javafx.scene.control.cell.ComboBoxTableCell;
import javafx.util.converter.DefaultStringConverter; import javafx.util.converter.DefaultStringConverter;
import javafx.util.converter.DoubleStringConverter; import javafx.util.converter.DoubleStringConverter;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import ru.trader.Main; import ru.trader.Main;
import ru.trader.core.FACTION;
import ru.trader.core.GOVERNMENT;
import ru.trader.core.POWER;
import ru.trader.core.POWER_STATE;
import ru.trader.model.MarketModel; import ru.trader.model.MarketModel;
import ru.trader.model.ModelFabric; import ru.trader.model.ModelFabric;
import ru.trader.model.ProfileModel; import ru.trader.model.ProfileModel;
import ru.trader.model.SystemModel; import ru.trader.model.SystemModel;
import ru.trader.model.support.PositionComputer; import ru.trader.model.support.PositionComputer;
import ru.trader.view.support.Localization; import ru.trader.view.support.*;
import ru.trader.view.support.ViewUtils;
import ru.trader.view.support.autocomplete.AutoCompletion; import ru.trader.view.support.autocomplete.AutoCompletion;
import ru.trader.view.support.autocomplete.CachedSuggestionProvider; import ru.trader.view.support.autocomplete.CachedSuggestionProvider;
import ru.trader.view.support.autocomplete.SystemsProvider; import ru.trader.view.support.autocomplete.SystemsProvider;
@@ -34,6 +35,14 @@ public class SystemsEditorController {
@FXML @FXML
private TableColumn<SystemData, String> clnName; private TableColumn<SystemData, String> clnName;
@FXML @FXML
private TableColumn<SystemData, FACTION> clnFaction;
@FXML
private TableColumn<SystemData, GOVERNMENT> clnGovernment;
@FXML
private TableColumn<SystemData, POWER> clnPower;
@FXML
private TableColumn<SystemData, POWER_STATE> clnPowerState;
@FXML
private TableColumn<SystemData, Double> clnX; private TableColumn<SystemData, Double> clnX;
@FXML @FXML
private TableColumn<SystemData, Double> clnY; private TableColumn<SystemData, Double> clnY;
@@ -77,6 +86,10 @@ public class SystemsEditorController {
private void initialize() { private void initialize() {
init(); init();
clnName.setCellFactory(TextFieldCell.forTableColumn(new DefaultStringConverter())); clnName.setCellFactory(TextFieldCell.forTableColumn(new DefaultStringConverter()));
clnFaction.setCellFactory(ComboBoxTableCell.forTableColumn(new FactionStringConverter(), FXCollections.observableArrayList(FACTION.values())));
clnGovernment.setCellFactory(ComboBoxTableCell.forTableColumn(new GovernmentStringConverter(), FXCollections.observableArrayList(GOVERNMENT.values())));
clnPower.setCellFactory(ComboBoxTableCell.forTableColumn(new PowerStringConverter(), FXCollections.observableArrayList(POWER.values())));
clnPowerState.setCellFactory(ComboBoxTableCell.forTableColumn(new PowerStateStringConverter(), FXCollections.observableArrayList(POWER_STATE.values())));
clnX.setCellFactory(TextFieldCell.forTableColumn(new DoubleStringConverter())); clnX.setCellFactory(TextFieldCell.forTableColumn(new DoubleStringConverter()));
clnY.setCellFactory(TextFieldCell.forTableColumn(new DoubleStringConverter())); clnY.setCellFactory(TextFieldCell.forTableColumn(new DoubleStringConverter()));
clnZ.setCellFactory(TextFieldCell.forTableColumn(new DoubleStringConverter())); clnZ.setCellFactory(TextFieldCell.forTableColumn(new DoubleStringConverter()));
@@ -272,6 +285,10 @@ public class SystemsEditorController {
private final DoubleProperty x; private final DoubleProperty x;
private final DoubleProperty y; private final DoubleProperty y;
private final DoubleProperty z; private final DoubleProperty z;
private final ObjectProperty<FACTION> faction;
private final ObjectProperty<GOVERNMENT> government;
private final ObjectProperty<POWER> power;
private final ObjectProperty<POWER_STATE> powerState;
private final DoubleProperty s1 = new SimpleDoubleProperty(); private final DoubleProperty s1 = new SimpleDoubleProperty();
private final DoubleProperty s2 = new SimpleDoubleProperty(); private final DoubleProperty s2 = new SimpleDoubleProperty();
@@ -287,6 +304,10 @@ public class SystemsEditorController {
x = new SimpleDoubleProperty(Double.NaN); x = new SimpleDoubleProperty(Double.NaN);
y = new SimpleDoubleProperty(Double.NaN); y = new SimpleDoubleProperty(Double.NaN);
z = new SimpleDoubleProperty(Double.NaN); z = new SimpleDoubleProperty(Double.NaN);
faction = new SimpleObjectProperty<>(FACTION.NONE);
government = new SimpleObjectProperty<>(GOVERNMENT.NONE);
power = new SimpleObjectProperty<>(POWER.NONE);
powerState = new SimpleObjectProperty<>(POWER_STATE.NONE);
} }
private SystemData(SystemModel system) { private SystemData(SystemModel system) {
@@ -295,6 +316,10 @@ public class SystemsEditorController {
x = new SimpleDoubleProperty(system.getX()); x = new SimpleDoubleProperty(system.getX());
y = new SimpleDoubleProperty(system.getY()); y = new SimpleDoubleProperty(system.getY());
z = new SimpleDoubleProperty(system.getZ()); z = new SimpleDoubleProperty(system.getZ());
faction = new SimpleObjectProperty<>(system.getFaction());
government = new SimpleObjectProperty<>(system.getGovernment());
power = new SimpleObjectProperty<>(system.getPower());
powerState = new SimpleObjectProperty<>(system.getPowerState());
} }
public StringProperty nameProperty() { public StringProperty nameProperty() {
@@ -337,6 +362,22 @@ public class SystemsEditorController {
return s6; return s6;
} }
public ObjectProperty<FACTION> factionProperty() {
return faction;
}
public ObjectProperty<GOVERNMENT> governmentProperty() {
return government;
}
public ObjectProperty<POWER> powerProperty() {
return power;
}
public ObjectProperty<POWER_STATE> powerStateProperty() {
return powerState;
}
public boolean isEmpty(){ public boolean isEmpty(){
return name.get().isEmpty() || Double.isNaN(x.get()) || Double.isNaN(y.get()) || Double.isNaN(z.get()); return name.get().isEmpty() || Double.isNaN(x.get()) || Double.isNaN(y.get()) || Double.isNaN(z.get());
} }
@@ -346,8 +387,16 @@ public class SystemsEditorController {
if (system != null){ if (system != null){
system.setName(name.get()); system.setName(name.get());
system.setPosition(x.get(), y.get(), z.get()); system.setPosition(x.get(), y.get(), z.get());
system.setFaction(faction.get());
system.setGovernment(government.get());
system.setPower(power.get());
system.setPowerState(powerState.get());
} else { } else {
market.add(name.get(), x.get(), y.get(), z.get()); SystemModel system = market.add(name.get(), x.get(), y.get(), z.get());
system.setFaction(faction.get());
system.setGovernment(government.get());
system.setPower(power.get());
system.setPowerState(powerState.get());
} }
} }
} }

View File

@@ -1,16 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?> <?import javafx.scene.control.*?>
<?import javafx.scene.control.cell.*?>
<?import javafx.scene.layout.*?> <?import javafx.scene.layout.*?>
<?import org.controlsfx.glyphfont.*?>
<?import javafx.scene.control.cell.PropertyValueFactory?>
<?import ru.trader.view.support.cells.PriceCellImpl?>
<?import ru.trader.view.support.cells.OfferCellValueImpl?>
<?import ru.trader.view.support.cells.DoubleCell?>
<?import org.controlsfx.glyphfont.Glyph?>
<?import org.controlsfx.control.SegmentedButton?>
<GridPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" <GridPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="ru.trader.controllers.SystemsEditorController" styleClass="dialog" fx:controller="ru.trader.controllers.SystemsEditorController" styleClass="dialog"
hgap="10" vgap="5" prefHeight="400"> hgap="10" vgap="5" prefHeight="400">
@@ -57,11 +50,23 @@
</Button> </Button>
</HBox> </HBox>
<TableView fx:id="tblSystems" editable="true" prefWidth="725.0" GridPane.rowIndex="3" GridPane.columnSpan="4"> <TableView fx:id="tblSystems" editable="true" prefWidth="800" GridPane.rowIndex="3" GridPane.columnSpan="4">
<columns> <columns>
<TableColumn fx:id="clnName" minWidth="180.0" text="%market.systems"> <TableColumn fx:id="clnName" minWidth="180.0" text="%market.systems">
<cellValueFactory><PropertyValueFactory property="name"/></cellValueFactory> <cellValueFactory><PropertyValueFactory property="name"/></cellValueFactory>
</TableColumn> </TableColumn>
<TableColumn fx:id="clnFaction" minWidth="100" text="%market.allegiance">
<cellValueFactory><PropertyValueFactory property="faction"/></cellValueFactory>
</TableColumn>
<TableColumn fx:id="clnGovernment" minWidth="100" text="%market.government">
<cellValueFactory><PropertyValueFactory property="government"/></cellValueFactory>
</TableColumn>
<TableColumn fx:id="clnPower" minWidth="100" text="Сила">
<cellValueFactory><PropertyValueFactory property="power"/></cellValueFactory>
</TableColumn>
<TableColumn fx:id="clnPowerState" minWidth="100" text="Статус">
<cellValueFactory><PropertyValueFactory property="powerState"/></cellValueFactory>
</TableColumn>
<TableColumn fx:id="clnX" minWidth="60.0" text="x"> <TableColumn fx:id="clnX" minWidth="60.0" text="x">
<cellValueFactory><PropertyValueFactory property="x"/></cellValueFactory> <cellValueFactory><PropertyValueFactory property="x"/></cellValueFactory>
</TableColumn> </TableColumn>