From 735b3af09f00604cc811e962b074809bcf44531a Mon Sep 17 00:00:00 2001 From: Marcus van Elst Date: Wed, 6 May 2026 07:31:09 +0200 Subject: [PATCH] =?UTF-8?q?Erlaube=20.db-Endung=20im=20FileChooser=20?= =?UTF-8?q?=E2=80=9ENeue=20Datenbank=20anlegen"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Der Filter akzeptiert jetzt *.db und *.sqlite. Der vorgeschlagene Dateiname übernimmt die Endung der aktuell konfigurierten DB-Datei (neue-datenbank.db bzw. neue-datenbank.sqlite). Co-Authored-By: Claude Sonnet 4.6 --- .../gui/GuiConfigurationEditorWorkspace.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 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 1667ade..762dead 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 @@ -1084,7 +1084,7 @@ public final class GuiConfigurationEditorWorkspace { /** * Behandelt die Aktion „Datenbank → Neue Datenbank anlegen…". *

- * Öffnet einen FileChooser (Filter {@code *.sqlite}), prüft den Zielpfad + * Öffnet einen FileChooser (Filter {@code *.db}, {@code *.sqlite}), prüft den Zielpfad * gegen die aktive Datenbank, holt ggf. eine Überschreib-Bestätigung ein und * delegiert die eigentliche Anlage an * {@link GuiCreateNewDatabasePort#createNewDatabase(Path)} auf einem @@ -1110,11 +1110,12 @@ public final class GuiConfigurationEditorWorkspace { FileChooser fileChooser = saveFileChooserFactory.get(); fileChooser.setTitle("Neue Datenbank anlegen"); fileChooser.getExtensionFilters().add( - new FileChooser.ExtensionFilter("SQLite-Datenbanken", "*.sqlite")); - fileChooser.setInitialFileName("pdf-umbenenner.sqlite"); + new FileChooser.ExtensionFilter("SQLite-Datenbank (*.db, *.sqlite)", "*.db", "*.sqlite")); // Vorschlagsverzeichnis: SQLite-Pfad aus der aktuellen Konfiguration, sofern gesetzt String currentSqlite = editorState.values().sqliteFile(); + String activeExtension = resolveDbExtension(currentSqlite); + fileChooser.setInitialFileName("neue-datenbank" + activeExtension); if (currentSqlite != null && !currentSqlite.isBlank()) { try { Path proposedDir = Path.of(currentSqlite).toAbsolutePath().getParent(); @@ -3241,6 +3242,20 @@ public final class GuiConfigurationEditorWorkspace { : exception.getMessage(); } + /** + * Ermittelt die Dateiendung der aktiven SQLite-Konfigurationsdatei. + * Gibt {@code ".db"} zurück, wenn der Pfad auf {@code .db} endet, sonst {@code ".sqlite"}. + * + * @param sqliteFile konfigurierter SQLite-Pfad, darf {@code null} oder leer sein + * @return {@code ".db"} oder {@code ".sqlite"} + */ + private static String resolveDbExtension(String sqliteFile) { + if (sqliteFile != null && sqliteFile.toLowerCase().endsWith(".db")) { + return ".db"; + } + return ".sqlite"; + } + /** * Setzt einen Tooltip mit einheitlicher Anzeigeverzögerung auf das angegebene Control. *