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