The builder apps will now remember which directory was opened last and have enabled the Save button

This commit is contained in:
dalyjame 2019-06-25 15:33:51 -04:00
parent d78b873de0
commit ec80e51f95
2 changed files with 31 additions and 1 deletions

View File

@ -20,7 +20,7 @@
<Menu mnemonicParsing="false" text="Open Recent" />
<SeparatorMenuItem mnemonicParsing="false" />
<MenuItem mnemonicParsing="false" text="Close" />
<MenuItem mnemonicParsing="false" text="Save" />
<MenuItem mnemonicParsing="false" onAction="#save" text="Save" />
<MenuItem mnemonicParsing="false" onAction="#saveAs" text="Save As…" />
<MenuItem mnemonicParsing="false" text="Revert" />
<SeparatorMenuItem mnemonicParsing="false" />

View File

@ -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
}
}
}