From 5901c3615301484b1d3340640580f24bb8384e36 Mon Sep 17 00:00:00 2001 From: Drew Short Date: Mon, 17 Nov 2014 19:16:44 -0600 Subject: [PATCH] Added a fix for when the folder we previously referenced no longer exists. --- .../ui/controller/AppController.scala | 35 +++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/gui/src/main/scala/com/sothr/imagetools/ui/controller/AppController.scala b/gui/src/main/scala/com/sothr/imagetools/ui/controller/AppController.scala index b973e22..883df5a 100644 --- a/gui/src/main/scala/com/sothr/imagetools/ui/controller/AppController.scala +++ b/gui/src/main/scala/com/sothr/imagetools/ui/controller/AppController.scala @@ -174,16 +174,31 @@ class AppController extends Logging { val chooser = new DirectoryChooser() chooser.setTitle("ImageTools Browser") - val defaultDirectory = new File(currentDirectory) - chooser.setInitialDirectory(defaultDirectory) - val window = this.rootPane.getScene.getWindow - val selectedDirectory = chooser.showDialog(window) - info(s"Selected Directory: ${selectedDirectory.getAbsolutePath}") - selectedDirectoryLabel.setText(selectedDirectory.getAbsolutePath) - - currentDirectory = selectedDirectory.getAbsolutePath - PropertiesService.set("app.ui.lastPath", selectedDirectory.getAbsolutePath) - this.currentDirectoryLabel.setText(selectedDirectory.getAbsolutePath) + try { + val defaultDirectory = new File(currentDirectory) + chooser.setInitialDirectory(defaultDirectory) + val window = this.rootPane.getScene.getWindow + val selectedDirectory = chooser.showDialog(window) + info(s"Selected Directory: ${selectedDirectory.getAbsolutePath}") + selectedDirectoryLabel.setText(selectedDirectory.getAbsolutePath) + + currentDirectory = selectedDirectory.getAbsolutePath + PropertiesService.set("app.ui.lastPath", selectedDirectory.getAbsolutePath) + this.currentDirectoryLabel.setText(selectedDirectory.getAbsolutePath) + } catch { + // fall back on the default because the directory we tried probably didn't exist + case iae: IllegalArgumentException => + logger.error("The old directory no longer exists", iae) + chooser.setInitialDirectory(null) + val window = this.rootPane.getScene.getWindow + val selectedDirectory = chooser.showDialog(window) + info(s"Selected Directory: ${selectedDirectory.getAbsolutePath}") + selectedDirectoryLabel.setText(selectedDirectory.getAbsolutePath) + + currentDirectory = selectedDirectory.getAbsolutePath + PropertiesService.set("app.ui.lastPath", selectedDirectory.getAbsolutePath) + this.currentDirectoryLabel.setText(selectedDirectory.getAbsolutePath) + } } @FXML