Schritt 10: GuiSchedulerTab implementieren und in Workspace verdrahten
- SchedulerControlUseCase um getIntervalSeconds(), saveIntervalSeconds(), disableAutostart() erweitert - DefaultSchedulerControlUseCase implementiert diese drei neuen Methoden - GuiSchedulerTab neu eingeführt: Autostart-Fehler-Banner + Scheduler-Steuerung (Status, Start/Stopp, Countdown, letzter Lauf, Fehleranzeige, Intervall-Feld) - GuiConfigurationEditorWorkspace: schedulerTab als 3. Tab (nach Verarbeitungslauf) eingehängt; onSchedulerStatusRefresh delegiert jetzt auch an schedulerTab.updateStatus() - GuiAdapterSmokeTest: Tab-Anzahl und -Reihenfolge auf 5 Tabs aktualisiert Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+36
@@ -60,4 +60,40 @@ public interface SchedulerControlUseCase {
|
||||
* @return aktueller Scheduler-Status; nie {@code null}
|
||||
*/
|
||||
SchedulerStatus getStatus();
|
||||
|
||||
/**
|
||||
* Gibt das aktuell konfigurierte Ausführungsintervall in Sekunden zurück.
|
||||
* <p>
|
||||
* Wird vom Scheduler-Tab genutzt, um den Initialwert des Intervall-Feldes
|
||||
* anzuzeigen. Der Wert entspricht dem beim Start der Anwendung geladenen
|
||||
* Konfigurationswert (mindestens 30 Sekunden).
|
||||
*
|
||||
* @return Intervall in Sekunden; immer ≥ 30
|
||||
*/
|
||||
int getIntervalSeconds();
|
||||
|
||||
/**
|
||||
* Persistiert das Ausführungsintervall in die Konfigurationsdatei.
|
||||
* <p>
|
||||
* Sicher nur aufzurufen wenn der Scheduler gestoppt ist. Der in-Memory-Wert
|
||||
* wird nicht aktualisiert; der neue Wert wird beim nächsten Anwendungsstart
|
||||
* gelesen.
|
||||
* <p>
|
||||
* Muss auf einem Hintergrund-Thread aufgerufen werden, da der Schreibvorgang
|
||||
* den Konfigurations-Datei-Lock erwerben muss.
|
||||
*
|
||||
* @param seconds Intervall in Sekunden; sollte ≥ 30 sein
|
||||
*/
|
||||
void saveIntervalSeconds(int seconds);
|
||||
|
||||
/**
|
||||
* Deaktiviert den Autostart durch Persistieren von {@code scheduler.enabled=false}.
|
||||
* <p>
|
||||
* Wird vom Scheduler-Tab aufgerufen, wenn der Benutzer den fehlgeschlagenen
|
||||
* Autostart dauerhaft deaktivieren möchte. Sicher aufzurufen wenn der Scheduler
|
||||
* gestoppt ist.
|
||||
* <p>
|
||||
* Muss auf einem Hintergrund-Thread aufgerufen werden.
|
||||
*/
|
||||
void disableAutostart();
|
||||
}
|
||||
|
||||
+36
@@ -197,6 +197,42 @@ public class DefaultSchedulerControlUseCase implements SchedulerControlUseCase {
|
||||
return statusRef.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt das beim Start der Anwendung geladene Ausführungsintervall in Sekunden zurück.
|
||||
*
|
||||
* @return Intervall in Sekunden; immer ≥ 30
|
||||
*/
|
||||
@Override
|
||||
public int getIntervalSeconds() {
|
||||
return intervalSeconds;
|
||||
}
|
||||
|
||||
/**
|
||||
* Persistiert das Ausführungsintervall in die Konfigurationsdatei.
|
||||
* <p>
|
||||
* Der in-Memory-Wert wird nicht aktualisiert; der neue Wert wird beim
|
||||
* nächsten Anwendungsstart gelesen.
|
||||
*
|
||||
* @param seconds Intervall in Sekunden
|
||||
*/
|
||||
@Override
|
||||
public void saveIntervalSeconds(int seconds) {
|
||||
settingsPort.saveIntervalSeconds(seconds);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deaktiviert den Autostart durch Persistieren von {@code scheduler.enabled=false}.
|
||||
*/
|
||||
@Override
|
||||
public void disableAutostart() {
|
||||
try {
|
||||
settingsPort.saveEnabled(false);
|
||||
logger.info("Autostart deaktiviert.");
|
||||
} catch (Exception e) {
|
||||
logger.warn("Fehler beim Deaktivieren des Autostarts.", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Markiert den Autostart als fehlgeschlagen.
|
||||
* <p>
|
||||
|
||||
Reference in New Issue
Block a user