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."; + } } }