Skip to content

Commit

Permalink
Merge pull request #30 from frosch95/file_has_changed_dialog
Browse files Browse the repository at this point in the history
When a new file is opened check first if there are unsafed changes and show a warning dialog.
  • Loading branch information
frosch95 authored Oct 19, 2022
2 parents 7dac3ce + bec55b6 commit 0db16c0
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 4 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ even in a "normal" CSV editor. So I decided to write this simple JavaFX applicat

[Wiki & Documentation](https://github.com/frosch95/SmartCSV.fx/wiki)

binary distribution of the [latest release (1.2.0)](https://github.com/frosch95/SmartCSV.fx/releases/download/1.2.0/SmartCSV.fx-1.2.0.zip)
binary distribution of the [latest release (1.3.0)](https://github.com/frosch95/SmartCSV.fx/releases/download/1.3.0/SmartCSV.fx-1.3.0.zip)

## Talks
[Introduction](http://javafx.ninja/talks/introduction/)
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,5 @@ test {
}

group 'ninja.javafx'
version '1.2.0'
version '1.3.0'
mainClassName = 'ninja.javafx.smartcsv.Main'
18 changes: 17 additions & 1 deletion src/main/java/ninja/javafx/smartcsv/fx/SmartCSVController.java
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ private void initDragAndDrop() {
tableWrapper.setOnDragDropped(event -> {
Dragboard db = event.getDragboard();
boolean success = false;
if (db.hasFiles() && db.getFiles().size() == 1) {
if (db.hasFiles() && db.getFiles().size() == 1 && canOpen()) {
File file = db.getFiles().get(0);
openFile(currentCsvFile, file);
success = true;
Expand Down Expand Up @@ -503,6 +503,22 @@ public boolean canExit() {
return canExit;
}

private boolean canOpen() {
boolean canOpen = true;
if (currentCsvFile.getContent() != null && currentCsvFile.isFileChanged()) {
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
alert.setTitle(resourceBundle.getString("dialog.changes.title"));
alert.setHeaderText(resourceBundle.getString("dialog.changes.header.text"));
alert.setContentText(resourceBundle.getString("dialog.changes.text"));

Optional<ButtonType> result = alert.showAndWait();
if (result.get() != ButtonType.OK){
canOpen = false;
}
}
return canOpen;
}

public void showValidationEditor(String column) {
validationEditorController.setSelectedColumn(column);
validationEditorController.updateForm();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
application.name = SmartCSV.fx
application.version = 1.2.0
application.version = 1.3.0

# fxml views
fxml.smartcvs.view = /ninja/javafx/smartcsv/fx/smartcsv.fxml
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ dialog.exit.title = Close Application
dialog.exit.header.text = Do you want to close application?
dialog.exit.text = There are changes made to the csv file. If you close now, the changes are lost!

dialog.changes.title = Discard changes
dialog.changes.header.text = Do you want to discard changes?
dialog.changes.text = There are changes made to the csv file. If you open a new file, the changes are lost!

dialog.preferences.title = Preferences
dialog.preferences.header.text = Preferences

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@ dialog.exit.title = Anwendung beenden
dialog.exit.header.text = M\u00f6chten Sie wirklich die Anwendung beenden?
dialog.exit.text = Es gibt noch ungespeicherte \u00c4nderungen, die verloren gehen, wenn Sie die Anwendung jetzt beenden.

dialog.changes.title = Änderungen verwerfen
dialog.changes.header.text = Wollen Sie Ihre Änderungen verwerfen?
dialog.changes.text = Es gibt noch ungespeicherte \u00c4nderungen, die verloren gehen, wenn Sie die Datei laden.

preferences.quoteChar = Einfassungszeichen:
preferences.delimiterChar = Trennzeichen:
preferences.ignoreEmptyLines = Leere Zeilen ignorieren:
Expand Down

0 comments on commit 0db16c0

Please sign in to comment.