From 0c20c0eba2d14ec05de8f3cc70d87913f62451e1 Mon Sep 17 00:00:00 2001 From: Sita Date: Sat, 8 Jun 2024 22:53:23 +0200 Subject: [PATCH] Report entire tab loading as unstability for the purpose of tests --- .../gui/local/fx/registrar/FxTabRegistrar.java | 10 ++++++++-- .../labelle/gui/local/menu/UnloadingTab.java | 17 +++++++++++++++-- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/gui-local/src/main/java/place/sita/labelle/gui/local/fx/registrar/FxTabRegistrar.java b/gui-local/src/main/java/place/sita/labelle/gui/local/fx/registrar/FxTabRegistrar.java index a4f2a19..d404cc9 100644 --- a/gui-local/src/main/java/place/sita/labelle/gui/local/fx/registrar/FxTabRegistrar.java +++ b/gui-local/src/main/java/place/sita/labelle/gui/local/fx/registrar/FxTabRegistrar.java @@ -7,6 +7,7 @@ import org.springframework.stereotype.Component; import place.sita.labelle.gui.local.fx.FxControllerLoader; import place.sita.labelle.gui.local.fx.LazyLoadable; +import place.sita.labelle.gui.local.fx.UnstableSceneReporter; import place.sita.labelle.gui.local.menu.UnloadingTab; import place.sita.labelle.gui.local.tab.ApplicationTab; import place.sita.labelle.gui.local.tab.TabRegistrar; @@ -20,10 +21,15 @@ public class FxTabRegistrar implements TabRegistrar { private final ApplicationContext applicationContext; private final FxControllerLoader fxControllerLoader; + private final UnstableSceneReporter unstableSceneReporter; - public FxTabRegistrar(ApplicationContext applicationContext, FxControllerLoader fxControllerLoader) { + public FxTabRegistrar( + ApplicationContext applicationContext, + FxControllerLoader fxControllerLoader, + UnstableSceneReporter unstableSceneReporter) { this.applicationContext = applicationContext; this.fxControllerLoader = fxControllerLoader; + this.unstableSceneReporter = unstableSceneReporter; } @Override @@ -57,7 +63,7 @@ private ApplicationTab makeIntoDefinition(BeanDefinition beanDef) { return fxControllerLoader.setupForController(controller, annotation.resourceFile()); }; - return new UnloadingTab<>(className, tabSupplier, annotation.tabName(), annotation.order()); + return new UnloadingTab<>(className, tabSupplier, annotation.tabName(), annotation.order(), unstableSceneReporter); } else { throw new RuntimeException("No FxTab annotation present in a situation where it should: " + clazz); } diff --git a/gui-local/src/main/java/place/sita/labelle/gui/local/menu/UnloadingTab.java b/gui-local/src/main/java/place/sita/labelle/gui/local/menu/UnloadingTab.java index efa40f9..9946375 100644 --- a/gui-local/src/main/java/place/sita/labelle/gui/local/menu/UnloadingTab.java +++ b/gui-local/src/main/java/place/sita/labelle/gui/local/menu/UnloadingTab.java @@ -8,9 +8,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import place.sita.labelle.gui.local.fx.LazyLoadable; +import place.sita.labelle.gui.local.fx.UnstableSceneReporter; import place.sita.labelle.gui.local.tab.ApplicationTab; import place.sita.labelle.gui.local.tab.UnloadAware; +import java.util.UUID; + public class UnloadingTab implements ApplicationTab, UnloadAware { private static final Logger log = LoggerFactory.getLogger(UnloadingTab.class); @@ -20,13 +23,20 @@ public class UnloadingTab implements ApplicationTab, Unl private final T lazyLoadable; private final int order; private boolean loaded = false; + private final UnstableSceneReporter unstableSceneReporter; - public UnloadingTab(String internalClassName, T lazyLoadable, String title, int order) { + public UnloadingTab( + String internalClassName, + T lazyLoadable, + String title, + int order, + UnstableSceneReporter unstableSceneReporter) { this.internalClassName = internalClassName; this.lazyLoadable = lazyLoadable; this.order = order; internalTab = new Tab(title); - internalTab.setClosable(false); + this.unstableSceneReporter = unstableSceneReporter; + internalTab.setClosable(false); } @Override @@ -35,6 +45,8 @@ public Tab tab() { } public void load() { + UUID id = UUID.randomUUID(); + unstableSceneReporter.markUnstable(id, "Loading tab: " + internalClassName); log.debug("Loading class {}", internalClassName); if (loaded) { log.debug("Unloading previous version of this ({}) interface", internalClassName); @@ -60,6 +72,7 @@ public void load() { internalTab.setContent(anchorPane); log.debug("New interface done for {}", internalClassName); loaded = true; + unstableSceneReporter.markStable(id); }); }