Erlaube .db-Endung im FileChooser „Neue Datenbank anlegen"

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 <noreply@anthropic.com>
This commit is contained in:
2026-05-06 07:31:09 +02:00
parent 3876e647b2
commit 735b3af09f
@@ -1084,7 +1084,7 @@ public final class GuiConfigurationEditorWorkspace {
/** /**
* Behandelt die Aktion „Datenbank → Neue Datenbank anlegen…". * Behandelt die Aktion „Datenbank → Neue Datenbank anlegen…".
* <p> * <p>
* Ö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 * gegen die aktive Datenbank, holt ggf. eine Überschreib-Bestätigung ein und
* delegiert die eigentliche Anlage an * delegiert die eigentliche Anlage an
* {@link GuiCreateNewDatabasePort#createNewDatabase(Path)} auf einem * {@link GuiCreateNewDatabasePort#createNewDatabase(Path)} auf einem
@@ -1110,11 +1110,12 @@ public final class GuiConfigurationEditorWorkspace {
FileChooser fileChooser = saveFileChooserFactory.get(); FileChooser fileChooser = saveFileChooserFactory.get();
fileChooser.setTitle("Neue Datenbank anlegen"); fileChooser.setTitle("Neue Datenbank anlegen");
fileChooser.getExtensionFilters().add( fileChooser.getExtensionFilters().add(
new FileChooser.ExtensionFilter("SQLite-Datenbanken", "*.sqlite")); new FileChooser.ExtensionFilter("SQLite-Datenbank (*.db, *.sqlite)", "*.db", "*.sqlite"));
fileChooser.setInitialFileName("pdf-umbenenner.sqlite");
// Vorschlagsverzeichnis: SQLite-Pfad aus der aktuellen Konfiguration, sofern gesetzt // Vorschlagsverzeichnis: SQLite-Pfad aus der aktuellen Konfiguration, sofern gesetzt
String currentSqlite = editorState.values().sqliteFile(); String currentSqlite = editorState.values().sqliteFile();
String activeExtension = resolveDbExtension(currentSqlite);
fileChooser.setInitialFileName("neue-datenbank" + activeExtension);
if (currentSqlite != null && !currentSqlite.isBlank()) { if (currentSqlite != null && !currentSqlite.isBlank()) {
try { try {
Path proposedDir = Path.of(currentSqlite).toAbsolutePath().getParent(); Path proposedDir = Path.of(currentSqlite).toAbsolutePath().getParent();
@@ -3241,6 +3242,20 @@ public final class GuiConfigurationEditorWorkspace {
: exception.getMessage(); : 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. * Setzt einen Tooltip mit einheitlicher Anzeigeverzögerung auf das angegebene Control.
* <p> * <p>