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 <noreply@anthropic.com>
This commit is contained in:
2026-04-28 07:20:43 +02:00
parent 4fa4c152a5
commit 6317a27378
@@ -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);