@@ -172,7 +172,9 @@ public void handle(WindowEvent ev) {
172
172
173
173
Optional <ButtonType > result = alert .showAndWait ();
174
174
if (result .get () == buttonTypeOne ){
175
- // ... user chose "One"
175
+ if (!saveFile ()) {
176
+ ev .consume ();
177
+ }
176
178
} else if (result .get () == buttonTypeTwo ) {
177
179
// ... user chose "Two"
178
180
} else {
@@ -485,26 +487,32 @@ public VBox createButtonBox() {
485
487
}
486
488
487
489
488
- public void saveFile () {
489
- FileChooser fileChooser = new FileChooser ();
490
- fileChooser .setTitle ("Save Flowduino file" );
491
- File file = fileChooser .showSaveDialog (stage );
492
- if (file != null ) {
493
- String fileName = file .getAbsoluteFile ().toString ();
494
- if (!fileName .toLowerCase ().endsWith (".fdi" )) {
495
- fileName += ".fdi" ;
496
- }
497
- try {
498
- FileOutputStream fileOut = new FileOutputStream (fileName );
499
- ObjectOutputStream out = new ObjectOutputStream (fileOut );
500
- out .writeObject (d );
501
- out .close ();
502
- fileOut .close ();
503
- } catch (Exception e ) {
504
- System .out .println ("Save failed" );
505
- e .printStackTrace ();
490
+ public boolean saveFile () {
491
+ if (d .getName () == null ) {
492
+ FileChooser fileChooser = new FileChooser ();
493
+ fileChooser .setTitle ("Save Flowduino file" );
494
+ File file = fileChooser .showSaveDialog (stage );
495
+ if (file != null ) {
496
+ String fileName = file .getAbsoluteFile ().toString ();
497
+ if (!fileName .toLowerCase ().endsWith (".fdi" )) {
498
+ fileName += ".fdi" ;
499
+ }
500
+ d .setName (fileName );
501
+ } else {
502
+ return false ;
506
503
}
507
504
}
505
+ try {
506
+ FileOutputStream fileOut = new FileOutputStream (d .getName ());
507
+ ObjectOutputStream out = new ObjectOutputStream (fileOut );
508
+ out .writeObject (d );
509
+ out .close ();
510
+ fileOut .close ();
511
+ } catch (Exception e ) {
512
+ System .out .println ("Save failed" );
513
+ e .printStackTrace ();
514
+ }
515
+ return true ;
508
516
}
509
517
510
518
public void openFile () {
0 commit comments