Fix #47: Hinweisbereich im Verarbeitungslauf-Tab verbessert
- Padding unterhalb der Selektions-Button-Leiste ergaenzt - Hinweisbereich wird nur eingeblendet wenn eine Meldung vorliegt - Farbliche Unterscheidung: Erfolg gruen, Fehler rot, neutral Standard Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+37
-1
@@ -524,13 +524,16 @@ public final class GuiBatchRunTab {
|
|||||||
|
|
||||||
HBox selectionButtonBar = new HBox(SECONDARY_SPACING, reprocessButton, resetStatusButton);
|
HBox selectionButtonBar = new HBox(SECONDARY_SPACING, reprocessButton, resetStatusButton);
|
||||||
selectionButtonBar.setAlignment(Pos.CENTER_LEFT);
|
selectionButtonBar.setAlignment(Pos.CENTER_LEFT);
|
||||||
selectionButtonBar.setPadding(new Insets(SECONDARY_SPACING / 2, 0, 0, 0));
|
selectionButtonBar.setPadding(new Insets(SECONDARY_SPACING / 2, 0, SECONDARY_SPACING / 2, 0));
|
||||||
|
|
||||||
// Meldungsbereich unterhalb der Selektions-Buttons (linke Spalte)
|
// Meldungsbereich unterhalb der Selektions-Buttons (linke Spalte)
|
||||||
messageArea.setId("batch-run-message-area");
|
messageArea.setId("batch-run-message-area");
|
||||||
messageArea.setEditable(false);
|
messageArea.setEditable(false);
|
||||||
messageArea.setWrapText(true);
|
messageArea.setWrapText(true);
|
||||||
messageArea.setPrefRowCount(3);
|
messageArea.setPrefRowCount(3);
|
||||||
|
// Hinweisbereich erst einblenden wenn eine Meldung vorliegt
|
||||||
|
messageArea.setVisible(false);
|
||||||
|
messageArea.setManaged(false);
|
||||||
|
|
||||||
// Linke Spalte: Tabelle wächst, Buttons und Meldungsbereich darunter
|
// Linke Spalte: Tabelle wächst, Buttons und Meldungsbereich darunter
|
||||||
VBox leftColumn = new VBox(0, tableScroll, selectionButtonBar, messageArea);
|
VBox leftColumn = new VBox(0, tableScroll, selectionButtonBar, messageArea);
|
||||||
@@ -1174,6 +1177,9 @@ public final class GuiBatchRunTab {
|
|||||||
fileNameEditor.clearSelection();
|
fileNameEditor.clearSelection();
|
||||||
pdfPreview.clear();
|
pdfPreview.clear();
|
||||||
messageArea.clear();
|
messageArea.clear();
|
||||||
|
messageArea.setVisible(false);
|
||||||
|
messageArea.setManaged(false);
|
||||||
|
messageArea.setStyle(null);
|
||||||
resetMetrics();
|
resetMetrics();
|
||||||
updateCounterLabel();
|
updateCounterLabel();
|
||||||
progressBar.setProgress(0);
|
progressBar.setProgress(0);
|
||||||
@@ -1326,6 +1332,14 @@ public final class GuiBatchRunTab {
|
|||||||
|
|
||||||
private void showMessage(String message) {
|
private void showMessage(String message) {
|
||||||
messageArea.setText(message);
|
messageArea.setText(message);
|
||||||
|
boolean hatInhalt = message != null && !message.isBlank();
|
||||||
|
messageArea.setVisible(hatInhalt);
|
||||||
|
messageArea.setManaged(hatInhalt);
|
||||||
|
if (hatInhalt) {
|
||||||
|
applyMessageStyle(message);
|
||||||
|
} else {
|
||||||
|
messageArea.setStyle(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void appendMessage(String message) {
|
private void appendMessage(String message) {
|
||||||
@@ -1334,6 +1348,28 @@ public final class GuiBatchRunTab {
|
|||||||
} else {
|
} else {
|
||||||
messageArea.setText(messageArea.getText() + System.lineSeparator() + message);
|
messageArea.setText(messageArea.getText() + System.lineSeparator() + message);
|
||||||
}
|
}
|
||||||
|
messageArea.setVisible(true);
|
||||||
|
messageArea.setManaged(true);
|
||||||
|
applyMessageStyle(messageArea.getText());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Passt die Hintergrundfarbe des Hinweisbereichs dem Meldungsinhalt an.
|
||||||
|
* Fehlermeldungen erhalten einen roten, Erfolgsmeldungen einen grünen Hintergrund.
|
||||||
|
*
|
||||||
|
* @param text aktueller Inhalt des Hinweisbereichs
|
||||||
|
*/
|
||||||
|
private void applyMessageStyle(String text) {
|
||||||
|
String lower = text == null ? "" : text.toLowerCase(Locale.ROOT);
|
||||||
|
if (lower.contains("fehler") || lower.contains("fehlgeschlagen")
|
||||||
|
|| lower.contains("nicht gefunden") || lower.contains("nicht möglich")) {
|
||||||
|
messageArea.setStyle("-fx-control-inner-background: #ffebee;");
|
||||||
|
} else if (lower.contains("kopiert") || lower.contains("gespeichert")
|
||||||
|
|| lower.contains("erfolgreich")) {
|
||||||
|
messageArea.setStyle("-fx-control-inner-background: #e8f5e9;");
|
||||||
|
} else {
|
||||||
|
messageArea.setStyle(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateCounterLabel() {
|
private void updateCounterLabel() {
|
||||||
|
|||||||
Reference in New Issue
Block a user