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. *