diff --git a/client/src/main/java/ru/trader/controllers/ProfileController.java b/client/src/main/java/ru/trader/controllers/ProfileController.java index dcd5b59..6c92f25 100644 --- a/client/src/main/java/ru/trader/controllers/ProfileController.java +++ b/client/src/main/java/ru/trader/controllers/ProfileController.java @@ -12,6 +12,7 @@ import ru.trader.Main; import ru.trader.ServicesManager; import ru.trader.core.Engine; import ru.trader.model.*; +import ru.trader.model.support.ChangeMarketListener; import ru.trader.view.support.NumberField; import ru.trader.view.support.ViewUtils; import ru.trader.view.support.autocomplete.AutoCompletion; @@ -121,6 +122,7 @@ public class ProfileController { void init(){ MarketModel world = MainController.getWorld(); + world.getNotificator().add(marketChangeListener); SystemsProvider provider = world.getSystemsProvider(); if (system == null){ system = new AutoCompletion<>(systemText, new CachedSuggestionProvider<>(provider), ModelFabric.NONE_SYSTEM, provider.getConverter()); @@ -227,6 +229,27 @@ public class ProfileController { private final ChangeListener cargoListener = (ov, o, n) -> consumeChanges(() -> cargo.setValue(n)); private final ChangeListener engineListener = (ov, o, n) -> consumeChanges(() -> engine.setValue(n)); + private final ChangeMarketListener marketChangeListener = new ChangeMarketListener() { + + @Override + public void add(StationModel station) { + ViewUtils.doFX(() -> { + if (station.getSystem().equals(system.getValue())) { + ProfileController.this.station.getItems().add(station.getName()); + } + }); + } + + @Override + public void remove(StationModel station) { + ViewUtils.doFX(() -> { + if (station.getSystem().equals(system.getValue())) { + ProfileController.this.station.getItems().remove(station.getName()); + } + }); + } + }; + private class EngineStringConverter extends StringConverter { @Override public String toString(Engine engine) {