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" />
|
<Menu mnemonicParsing="false" text="Open Recent" />
|
||||||
<SeparatorMenuItem mnemonicParsing="false" />
|
<SeparatorMenuItem mnemonicParsing="false" />
|
||||||
<MenuItem mnemonicParsing="false" text="Close" />
|
<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" onAction="#saveAs" text="Save As…" />
|
||||||
<MenuItem mnemonicParsing="false" text="Revert" />
|
<MenuItem mnemonicParsing="false" text="Revert" />
|
||||||
<SeparatorMenuItem mnemonicParsing="false" />
|
<SeparatorMenuItem mnemonicParsing="false" />
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
package fmon.builder
|
package fmon.builder
|
||||||
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.util.prefs.Preferences
|
||||||
|
|
||||||
|
import scala.util.Properties
|
||||||
|
|
||||||
import javafx.fxml.FXML
|
import javafx.fxml.FXML
|
||||||
import javafx.fxml.FXMLLoader
|
import javafx.fxml.FXMLLoader
|
||||||
@ -20,11 +23,25 @@ class App {
|
|||||||
@FXML var pane: jfxsl.Pane = _
|
@FXML var pane: jfxsl.Pane = _
|
||||||
|
|
||||||
var builder: Savable = _
|
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 = {
|
def open(): Unit = {
|
||||||
val fileChooser = new FileChooser {
|
val fileChooser = new FileChooser {
|
||||||
title = "Open Resource File"
|
title = "Open Resource File"
|
||||||
|
initialDirectory = new File(lastDir())
|
||||||
extensionFilters ++= Seq(
|
extensionFilters ++= Seq(
|
||||||
new ExtensionFilter("YAML Files", "*.yaml"),
|
new ExtensionFilter("YAML Files", "*.yaml"),
|
||||||
new ExtensionFilter("All Files", "*.*")
|
new ExtensionFilter("All Files", "*.*")
|
||||||
@ -33,13 +50,24 @@ class App {
|
|||||||
|
|
||||||
val selectedFile = fileChooser.showOpenDialog(null)
|
val selectedFile = fileChooser.showOpenDialog(null)
|
||||||
if (selectedFile != null) {
|
if (selectedFile != null) {
|
||||||
|
rememberDir(selectedFile)
|
||||||
builder openFrom selectedFile
|
builder openFrom selectedFile
|
||||||
|
lastFile = selectedFile
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def save(): Unit = {
|
||||||
|
if (lastFile != null) {
|
||||||
|
builder saveTo lastFile
|
||||||
|
} else {
|
||||||
|
saveAs()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def saveAs(): Unit = {
|
def saveAs(): Unit = {
|
||||||
val fileChooser = new FileChooser {
|
val fileChooser = new FileChooser {
|
||||||
title = "Open Resource File"
|
title = "Open Resource File"
|
||||||
|
initialDirectory = new File(lastDir())
|
||||||
extensionFilters ++= Seq(
|
extensionFilters ++= Seq(
|
||||||
new ExtensionFilter("YAML Files", "*.yaml"),
|
new ExtensionFilter("YAML Files", "*.yaml"),
|
||||||
new ExtensionFilter("All Files", "*.*")
|
new ExtensionFilter("All Files", "*.*")
|
||||||
@ -48,7 +76,9 @@ class App {
|
|||||||
|
|
||||||
val selectedFile = fileChooser.showSaveDialog(null)
|
val selectedFile = fileChooser.showSaveDialog(null)
|
||||||
if (selectedFile != null) {
|
if (selectedFile != null) {
|
||||||
|
rememberDir(selectedFile)
|
||||||
builder saveTo selectedFile
|
builder saveTo selectedFile
|
||||||
|
lastFile = selectedFile
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user