From 657dc0a3cd66eae38e3ff7b1ab2c838899df76c0 Mon Sep 17 00:00:00 2001 From: iMoHax Date: Wed, 5 Oct 2016 15:11:21 +0300 Subject: [PATCH] update world in EMDNUpdater on reinit app --- .../src/main/java/ru/trader/EMDNUpdater.java | 19 ++++++++++++++++--- .../java/ru/trader/controllers/Screeners.java | 2 ++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/client/src/main/java/ru/trader/EMDNUpdater.java b/client/src/main/java/ru/trader/EMDNUpdater.java index d624eef..26d3902 100644 --- a/client/src/main/java/ru/trader/EMDNUpdater.java +++ b/client/src/main/java/ru/trader/EMDNUpdater.java @@ -15,9 +15,11 @@ import java.util.function.Consumer; public class EMDNUpdater { private final static Logger LOG = LoggerFactory.getLogger(EMDNUpdater.class); private static EMDN emdn; + private static MarketUpdater updater; static void init(){ - emdn = new EMDN(Main.SETTINGS.getEMDNSub(), new MarketUpdater(MainController.getWorld())); + updater = new MarketUpdater(MainController.getWorld()); + emdn = new EMDN(Main.SETTINGS.getEMDNSub(), updater); setActivate(Main.SETTINGS.getEMDNActive()); } @@ -37,16 +39,27 @@ public class EMDNUpdater { } } + public static void setWorld(MarketModel world){ + if (updater != null){ + updater.setWorld(world); + } + } + private static class MarketUpdater implements Consumer { - private final StationUpdater updater; - private final MarketModel world; + private StationUpdater updater; + private MarketModel world; public MarketUpdater(MarketModel world) { this.world = world; this.updater = new StationUpdater(world); } + public void setWorld(MarketModel world){ + this.updater = new StationUpdater(world); + this.world = world; + } + @Override public void accept(Message message) { if (world == null || message == null) return; diff --git a/client/src/main/java/ru/trader/controllers/Screeners.java b/client/src/main/java/ru/trader/controllers/Screeners.java index 220fd7e..7bf1fa9 100644 --- a/client/src/main/java/ru/trader/controllers/Screeners.java +++ b/client/src/main/java/ru/trader/controllers/Screeners.java @@ -11,6 +11,7 @@ import javafx.scene.layout.GridPane; import javafx.scene.layout.Priority; import javafx.stage.Stage; import javafx.util.Pair; +import ru.trader.EMDNUpdater; import ru.trader.core.Engine; import ru.trader.core.MarketFilter; import ru.trader.core.VendorFilter; @@ -368,6 +369,7 @@ public class Screeners { filterController.init(); vFilterController.init(); dbEditorController.init(); + EMDNUpdater.setWorld(MainController.getWorld()); } }