From 6317a2737876b5d292be292c49e0df3a823cbe02 Mon Sep 17 00:00:00 2001 From: Marcus van Elst Date: Tue, 28 Apr 2026 07:20:43 +0200 Subject: [PATCH] Fix #24: GridPane-Platzhalter in Provider-Block auf managed=false gesetzt Die leeren Label-Spacer in Spalte 0 der Fehler- und Info-Zeilen des fieldGrid waren managed=true (JavaFX-Default). JavaFX reservierte dadurch pro Zeile ~20px Hoehe, selbst wenn das eigentliche Fehler-Label in Spalte 1 unmanaged/unsichtbar war. Fuenf betroffene Zeilen (baseUrl-Fehler, Timeout-Fehler, Modell-Fehler, API-Key-Fehler, API-Key-Herkunft) erzeugten zusammen ~96-120px ungenutzten Leerraum unterhalb der Felder. Co-Authored-By: Claude Sonnet 4.6 --- .../gui/GuiConfigurationEditorWorkspace.java | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) 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 04cbab5..5038e75 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 @@ -1709,14 +1709,22 @@ public final class GuiConfigurationEditorWorkspace { fieldGrid.add(timeoutField, 3, gridRow); gridRow++; - // Fehlerzeile für Basis-URL und/oder Timeout (gemeinsame Zeile) + // Fehlerzeile für Basis-URL und/oder Timeout (gemeinsame Zeile). + // Platzhalter in Spalte 0/2 werden auf managed=false gesetzt, damit die Zeile + // kollabiert wenn das eigentliche Fehler-Label in Spalte 1/3 ebenfalls unmanaged ist. if (baseUrlError != null || timeoutError != null) { if (baseUrlError != null) { - fieldGrid.add(new Label(), 0, gridRow); + Label spacerBaseUrl = new Label(); + spacerBaseUrl.setManaged(false); + spacerBaseUrl.setVisible(false); + fieldGrid.add(spacerBaseUrl, 0, gridRow); fieldGrid.add(baseUrlError, 1, gridRow); } if (timeoutError != null) { - fieldGrid.add(new Label(), 2, gridRow); + Label spacerTimeout = new Label(); + spacerTimeout.setManaged(false); + spacerTimeout.setVisible(false); + fieldGrid.add(spacerTimeout, 2, gridRow); fieldGrid.add(timeoutError, 3, gridRow); } gridRow++; @@ -1737,7 +1745,11 @@ public final class GuiConfigurationEditorWorkspace { GridPane.setColumnSpan(modelNode, 3); gridRow++; if (modelError != null) { - fieldGrid.add(new Label(), 0, gridRow); + // Platzhalter auf managed=false – Zeile kollabiert wenn modelError nicht sichtbar ist. + Label spacerModel = new Label(); + spacerModel.setManaged(false); + spacerModel.setVisible(false); + fieldGrid.add(spacerModel, 0, gridRow); fieldGrid.add(modelError, 1, gridRow); GridPane.setColumnSpan(modelError, 3); gridRow++; @@ -1759,12 +1771,20 @@ public final class GuiConfigurationEditorWorkspace { GridPane.setColumnSpan(apiKeyBox, 3); gridRow++; if (apiKeyError != null) { - fieldGrid.add(new Label(), 0, gridRow); + // Platzhalter auf managed=false – Zeile kollabiert wenn apiKeyError nicht sichtbar ist. + Label spacerApiKey = new Label(); + spacerApiKey.setManaged(false); + spacerApiKey.setVisible(false); + fieldGrid.add(spacerApiKey, 0, gridRow); fieldGrid.add(apiKeyError, 1, gridRow); GridPane.setColumnSpan(apiKeyError, 3); gridRow++; } - fieldGrid.add(new Label(), 0, gridRow); + // Platzhalter auf managed=false – Zeile kollabiert wenn apiKeyOriginLabel nicht sichtbar ist. + Label spacerOrigin = new Label(); + spacerOrigin.setManaged(false); + spacerOrigin.setVisible(false); + fieldGrid.add(spacerOrigin, 0, gridRow); fieldGrid.add(apiKeyOriginLabel, 1, gridRow); GridPane.setColumnSpan(apiKeyOriginLabel, 3);