The builder apps will now remember which directory was opened last and have enabled the Save button
This commit is contained in:
parent
d78b873de0
commit
ec80e51f95
@ -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" />
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user