Skip to content

Commit

Permalink
Report entire tab loading as unstability for the purpose of tests
Browse files Browse the repository at this point in the history
  • Loading branch information
kamil-sita committed Jun 8, 2024
1 parent af09f1d commit 0c20c0e
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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
Expand Down Expand Up @@ -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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<T extends LazyLoadable> implements ApplicationTab, UnloadAware {
private static final Logger log = LoggerFactory.getLogger(UnloadingTab.class);
Expand All @@ -20,13 +23,20 @@ public class UnloadingTab<T extends LazyLoadable> 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
Expand All @@ -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);
Expand All @@ -60,6 +72,7 @@ public void load() {
internalTab.setContent(anchorPane);
log.debug("New interface done for {}", internalClassName);
loaded = true;
unstableSceneReporter.markStable(id);
});
}

Expand Down

0 comments on commit 0c20c0e

Please sign in to comment.