diff --git a/pdf-umbenenner-adapter-in-gui/src/main/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/GuiConfigurationEditorWorkspace.java b/pdf-umbenenner-adapter-in-gui/src/main/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/GuiConfigurationEditorWorkspace.java index 47b4e90..db3c605 100644 --- a/pdf-umbenenner-adapter-in-gui/src/main/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/GuiConfigurationEditorWorkspace.java +++ b/pdf-umbenenner-adapter-in-gui/src/main/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/GuiConfigurationEditorWorkspace.java @@ -1174,6 +1174,25 @@ public final class GuiConfigurationEditorWorkspace { .ifPresent(uc -> onSchedulerStatusRefresh(uc.getStatus())); } + /** + * Prüft, ob der aktuell verdrahtete Scheduler-Use-Case in einem aktiven + * Zustand (Zustand != {@code STOPPED}) ist. + *
+ * Liest den Use Case dynamisch aus dem {@link GuiSchedulerTab}, damit auch + * der nach erfolgreichem Datei-Öffnen erst zur Laufzeit verdrahtete Use Case + * erfasst wird. Ist kein Use Case verdrahtet, wird {@code false} zurückgegeben. + *
+ * Muss auf dem JavaFX Application Thread aufgerufen werden. + * + * @return {@code true}, wenn ein Use Case verdrahtet ist und sein Zustand + * als aktiv gilt; sonst {@code false} + */ + public boolean isSchedulerActive() { + return schedulerTab.currentSchedulerUseCase() + .map(uc -> uc.getStatus().state().isActive()) + .orElse(false); + } + /** * Aktualisiert den Sperr-Zustand des Konfig-Tabs anhand des aktuellen Scheduler-Status. *
diff --git a/pdf-umbenenner-adapter-in-gui/src/main/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/PdfUmbenennerGuiApplication.java b/pdf-umbenenner-adapter-in-gui/src/main/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/PdfUmbenennerGuiApplication.java
index b8103d4..c405553 100644
--- a/pdf-umbenenner-adapter-in-gui/src/main/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/PdfUmbenennerGuiApplication.java
+++ b/pdf-umbenenner-adapter-in-gui/src/main/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/PdfUmbenennerGuiApplication.java
@@ -196,24 +196,25 @@ public class PdfUmbenennerGuiApplication extends Application {
* @param stage das primäre Fenster; darf nicht {@code null} sein
*/
private void installSchedulerCloseGuard(Stage stage) {
- guiStartupContext.schedulerControlUseCase().ifPresent(uc -> {
- EventHandler