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:
+18
-3
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user