diff --git a/Builder/src/fmon/builder/App.fxml b/Builder/src/fmon/builder/App.fxml index 1d8b168..5a282ec 100644 --- a/Builder/src/fmon/builder/App.fxml +++ b/Builder/src/fmon/builder/App.fxml @@ -20,7 +20,7 @@ - + diff --git a/Builder/src/fmon/builder/App.scala b/Builder/src/fmon/builder/App.scala index f33da58..5b14832 100644 --- a/Builder/src/fmon/builder/App.scala +++ b/Builder/src/fmon/builder/App.scala @@ -1,6 +1,9 @@ package fmon.builder import java.io.File +import java.util.prefs.Preferences + +import scala.util.Properties import javafx.fxml.FXML import javafx.fxml.FXMLLoader @@ -20,11 +23,25 @@ class App { @FXML var pane: jfxsl.Pane = _ var builder: Savable = _ + var lastFile: File = _ + def lastDir(): String = { + val prefs = Preferences.userNodeForPackage(classOf[App]) + prefs.get("dir", Properties.userDir) + } + + def rememberDir(file: File): Unit = { + val dir = if (file.isDirectory()) file.getPath else file.getParent + if (dir != lastDir) { + val prefs = Preferences.userNodeForPackage(classOf[App]) + prefs.put("dir", dir) + } + } def open(): Unit = { val fileChooser = new FileChooser { title = "Open Resource File" + initialDirectory = new File(lastDir()) extensionFilters ++= Seq( new ExtensionFilter("YAML Files", "*.yaml"), new ExtensionFilter("All Files", "*.*") @@ -33,13 +50,24 @@ class App { val selectedFile = fileChooser.showOpenDialog(null) if (selectedFile != null) { + rememberDir(selectedFile) builder openFrom selectedFile + lastFile = selectedFile + } + } + + def save(): Unit = { + if (lastFile != null) { + builder saveTo lastFile + } else { + saveAs() } } def saveAs(): Unit = { val fileChooser = new FileChooser { title = "Open Resource File" + initialDirectory = new File(lastDir()) extensionFilters ++= Seq( new ExtensionFilter("YAML Files", "*.yaml"), new ExtensionFilter("All Files", "*.*") @@ -48,7 +76,9 @@ class App { val selectedFile = fileChooser.showSaveDialog(null) if (selectedFile != null) { + rememberDir(selectedFile) builder saveTo selectedFile + lastFile = selectedFile } } } \ No newline at end of file