diff --git a/client/src/main/java/ru/trader/controllers/SystemsEditorController.java b/client/src/main/java/ru/trader/controllers/SystemsEditorController.java index 7089ea5..c638cf1 100644 --- a/client/src/main/java/ru/trader/controllers/SystemsEditorController.java +++ b/client/src/main/java/ru/trader/controllers/SystemsEditorController.java @@ -1,25 +1,26 @@ package ru.trader.controllers; -import javafx.beans.property.DoubleProperty; -import javafx.beans.property.SimpleDoubleProperty; -import javafx.beans.property.SimpleStringProperty; -import javafx.beans.property.StringProperty; +import javafx.beans.property.*; import javafx.collections.FXCollections; import javafx.fxml.FXML; import javafx.scene.Parent; import javafx.scene.control.*; +import javafx.scene.control.cell.ComboBoxTableCell; import javafx.util.converter.DefaultStringConverter; import javafx.util.converter.DoubleStringConverter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; 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.ModelFabric; import ru.trader.model.ProfileModel; import ru.trader.model.SystemModel; import ru.trader.model.support.PositionComputer; -import ru.trader.view.support.Localization; -import ru.trader.view.support.ViewUtils; +import ru.trader.view.support.*; import ru.trader.view.support.autocomplete.AutoCompletion; import ru.trader.view.support.autocomplete.CachedSuggestionProvider; import ru.trader.view.support.autocomplete.SystemsProvider; @@ -34,6 +35,14 @@ public class SystemsEditorController { @FXML private TableColumn clnName; @FXML + private TableColumn clnFaction; + @FXML + private TableColumn clnGovernment; + @FXML + private TableColumn clnPower; + @FXML + private TableColumn clnPowerState; + @FXML private TableColumn clnX; @FXML private TableColumn clnY; @@ -77,6 +86,10 @@ public class SystemsEditorController { private void initialize() { init(); 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())); clnY.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 y; private final DoubleProperty z; + private final ObjectProperty faction; + private final ObjectProperty government; + private final ObjectProperty power; + private final ObjectProperty powerState; private final DoubleProperty s1 = new SimpleDoubleProperty(); private final DoubleProperty s2 = new SimpleDoubleProperty(); @@ -287,6 +304,10 @@ public class SystemsEditorController { x = new SimpleDoubleProperty(Double.NaN); y = 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) { @@ -295,6 +316,10 @@ public class SystemsEditorController { x = new SimpleDoubleProperty(system.getX()); y = new SimpleDoubleProperty(system.getY()); 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() { @@ -337,6 +362,22 @@ public class SystemsEditorController { return s6; } + public ObjectProperty factionProperty() { + return faction; + } + + public ObjectProperty governmentProperty() { + return government; + } + + public ObjectProperty powerProperty() { + return power; + } + + public ObjectProperty powerStateProperty() { + return powerState; + } + public boolean isEmpty(){ 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){ system.setName(name.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 { - 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()); } } } diff --git a/client/src/main/resources/view/sEditor.fxml b/client/src/main/resources/view/sEditor.fxml index b81ccd8..0316c31 100644 --- a/client/src/main/resources/view/sEditor.fxml +++ b/client/src/main/resources/view/sEditor.fxml @@ -1,16 +1,9 @@ - + - - - - - - - - + @@ -57,11 +50,23 @@ - + + + + + + + + + + + + +