From ff86a07f0e89950fd9a915b198272397cdf8a6b1 Mon Sep 17 00:00:00 2001 From: Marcus van Elst Date: Mon, 27 Apr 2026 14:15:18 +0200 Subject: [PATCH] =?UTF-8?q?Fix=20#48:=20Korrekte=20Abschlussmeldung=20bei?= =?UTF-8?q?=20SKIPPED-only-L=C3=A4ufen=20und=20neutrale=20Farbe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem 1: Falsche Meldung bei reinen SKIPPED-Läufen (0 failed, >0 skipped) - Die Nachricht enthielt immer "fehlgeschlagen" auch wenn failedCount=0 - Neue Logik formuliert Meldung basierend auf tatsächlichen Zählern Problem 2: Falsche rote Farbe für SKIPPED-only-Läufe - Farblogik basierte auf Keywords im Text statt auf failedCount - Neue Logik färbt rot nur wenn failedCount > 0 - Farbe neutral (kein Hintergrund) für SKIPPED-only-Läufe Neue buildSummaryMessage()-Methode mit drei Fällen: - Alle erfolgreich (0 failed, 0 skipped) - Nur übersprungen (0 failed, >0 skipped) - Mit Fehlern (failed > 0) Neue Farblogik in appendSummary() direkt auf failedCount basieren. Co-Authored-By: Claude Haiku 4.5 --- .../in/gui/batchrun/GuiBatchRunTab.java | 43 +++++++++++++++++-- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/pdf-umbenenner-adapter-in-gui/src/main/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/batchrun/GuiBatchRunTab.java b/pdf-umbenenner-adapter-in-gui/src/main/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/batchrun/GuiBatchRunTab.java index b83f139..9e56f12 100644 --- a/pdf-umbenenner-adapter-in-gui/src/main/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/batchrun/GuiBatchRunTab.java +++ b/pdf-umbenenner-adapter-in-gui/src/main/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/batchrun/GuiBatchRunTab.java @@ -1662,10 +1662,45 @@ public final class GuiBatchRunTab { if (!outcome.batchCompletedNormally()) { outcome.failureMessage().ifPresent(GuiBatchRunTab.this::appendMessage); } - String summaryText = successCount + " erfolgreich, " - + failedCount + " fehlgeschlagen, " - + skippedCount + " übersprungen"; - appendMessage(summaryText); + // Zusammenfassungsmeldung basierend auf tatsächlichen Zählern + String summaryText = buildSummaryMessage(); + if (messageArea.getText() == null || messageArea.getText().isBlank()) { + messageArea.setText(summaryText); + } else { + messageArea.setText(messageArea.getText() + System.lineSeparator() + summaryText); + } + messageArea.setVisible(true); + messageArea.setManaged(true); + + // Farbe basierend auf tatsächlichem FAILED-Zähler, nicht auf Keywords im Text + if (failedCount > 0) { + messageArea.setStyle("-fx-control-inner-background: #ffebee;"); + } else if (successCount > 0) { + messageArea.setStyle("-fx-control-inner-background: #e8f5e9;"); + } else { + messageArea.setStyle(null); + } + } + + /** + * Erzeugt die Abschlussmeldung des Verarbeitungslaufs basierend auf den + * tatsächlichen Zählern (erfolgreich, fehlgeschlagen, übersprungen). + * + * @return die formatierte Zusammenfassungsmeldung + */ + private String buildSummaryMessage() { + if (failedCount == 0 && skippedCount == 0) { + // Alle erfolgreich verarbeitet + return "Lauf erfolgreich abgeschlossen. " + successCount + " erfolgreich."; + } else if (failedCount == 0) { + // Nur übersprungene Dateien, keine Fehler + return "Lauf abgeschlossen. " + successCount + " erfolgreich, " + + skippedCount + " übersprungen."; + } else { + // Mit fehlgeschlagenen Dateien + return "Lauf abgeschlossen. " + successCount + " erfolgreich, " + + failedCount + " fehlgeschlagen, " + skippedCount + " übersprungen."; + } } }