Add direct CLI for file watcher

This commit is contained in:
Alexander Nozik 2021-11-29 10:48:03 +03:00
parent 5e33bdbce7
commit c2d2813622
3 changed files with 108 additions and 82 deletions

View File

@ -74,9 +74,7 @@ runtime {
installerType = "deb" installerType = "deb"
installerOptions = installerOptions + listOf( installerOptions = installerOptions + listOf(
"--linux-package-name", "numass-viewer", "--linux-package-name", "numass-viewer",
"--linux-shortcut" "--linux-shortcut",
)
imageOptions = listOf(
"--linux-deb-maintainer", "nozik.aa@mipt.ru", "--linux-deb-maintainer", "nozik.aa@mipt.ru",
"--linux-menu-group", "Science", "--linux-menu-group", "Science",
"--linux-shortcut" "--linux-shortcut"

View File

@ -173,8 +173,10 @@ class DataController : Controller(), ContextAware {
sc.remove(id) sc.remove(id)
} }
//
// fun addAllPoints(points: Map<String, NumassPoint>) {
// TODO()
// }
fun addAllPoints(points: Map<String, NumassPoint>) {
TODO()
}
} }

View File

@ -52,36 +52,8 @@ class MainView : View(title = "Numass viewer", icon = dfIconView) {
} }
} }
private fun loadDirectory(path: Path){
override val root = borderpane {
prefHeight = 600.0
prefWidth = 800.0
top {
toolbar {
prefHeight = 40.0
button("Load directory") {
action {
val chooser = DirectoryChooser()
chooser.title = "Select directory to view"
val homeDir = NumassProperties.getNumassProperty("numass.viewer.lastPath")
try {
if (homeDir == null) {
chooser.initialDirectory = File(".").absoluteFile
} else {
val file = File(homeDir)
if (file.isDirectory) {
chooser.initialDirectory = file
} else {
chooser.initialDirectory = file.parentFile
}
}
val rootDir = chooser.showDialog(primaryStage.scene.window)
if (rootDir != null) {
NumassProperties.setNumassProperty("numass.viewer.lastPath", rootDir.absolutePath)
app.context.launch { app.context.launch {
val path = rootDir.toPath()
dataController.clear() dataController.clear()
runLater { runLater {
pathProperty.set(path) pathProperty.set(path)
@ -117,34 +89,12 @@ class MainView : View(title = "Numass viewer", icon = dfIconView) {
} }
} }
} }
} catch (ex: Exception) {
NumassProperties.setNumassProperty("numass.viewer.lastPath", null)
error("Error", content = "Failed to laod file with message: ${ex.message}")
}
}
}
button("Load file") {
action {
val chooser = FileChooser()
chooser.title = "Select file to view"
val homeDir = NumassProperties.getNumassProperty("numass.viewer.lastPath")
try {
if (homeDir == null) {
chooser.initialDirectory = File(".").absoluteFile
} else {
chooser.initialDirectory = File(homeDir)
}
private fun loadFile(path: Path){
val file = chooser.showOpenDialog(primaryStage.scene.window)
if (file != null) {
NumassProperties.setNumassProperty("numass.viewer.lastPath",
file.parentFile.absolutePath)
app.context.launch { app.context.launch {
val path = file.toPath()
dataController.clear() dataController.clear()
runLater { runLater {
pathProperty.set(file.toPath()) pathProperty.set(path)
contentView = null contentView = null
} }
//Reading individual file //Reading individual file
@ -171,6 +121,90 @@ class MainView : View(title = "Numass viewer", icon = dfIconView) {
} }
} }
} }
private fun watchDirectory(path: Path){
app.context.launch {
dataController.clear()
runLater {
pathProperty.set(path)
contentView = directoryWatchView
dataController.watchPathProperty.set(path)
}
}
}
override val root = borderpane {
prefHeight = 600.0
prefWidth = 800.0
top {
//bypass top configuration bar and only watch directory
app.parameters.named["directory"]?.let{ pathString ->
val path = Path.of(pathString).toAbsolutePath()
watchDirectory(path)
toolbar{
prefHeight = 40.0
label("Watching $path") {
padding = Insets(0.0, 0.0, 0.0, 10.0)
font = Font.font("System Bold", 13.0)
}
pane {
hgrow = Priority.ALWAYS
}
}
return@top
}
toolbar {
prefHeight = 40.0
button("Load directory") {
action {
val chooser = DirectoryChooser()
chooser.title = "Select directory to view"
val homeDir = NumassProperties.getNumassProperty("numass.viewer.lastPath")
try {
if (homeDir == null) {
chooser.initialDirectory = File(".").absoluteFile
} else {
val file = File(homeDir)
if (file.isDirectory) {
chooser.initialDirectory = file
} else {
chooser.initialDirectory = file.parentFile
}
}
val rootDir = chooser.showDialog(primaryStage.scene.window)
if (rootDir != null) {
NumassProperties.setNumassProperty("numass.viewer.lastPath", rootDir.absolutePath)
loadDirectory(rootDir.toPath())
}
} catch (ex: Exception) {
NumassProperties.setNumassProperty("numass.viewer.lastPath", null)
error("Error", content = "Failed to laod file with message: ${ex.message}")
}
}
}
button("Load file") {
action {
val chooser = FileChooser()
chooser.title = "Select file to view"
val homeDir = NumassProperties.getNumassProperty("numass.viewer.lastPath")
try {
if (homeDir == null) {
chooser.initialDirectory = File(".").absoluteFile
} else {
chooser.initialDirectory = File(homeDir)
}
val file = chooser.showOpenDialog(primaryStage.scene.window)
if (file != null) {
NumassProperties.setNumassProperty("numass.viewer.lastPath",
file.parentFile.absolutePath)
loadFile(file.toPath())
}
} catch (ex: Exception) { } catch (ex: Exception) {
NumassProperties.setNumassProperty("numass.viewer.lastPath", null) NumassProperties.setNumassProperty("numass.viewer.lastPath", null)
error("Error", content = "Failed to laod file with message: ${ex.message}") error("Error", content = "Failed to laod file with message: ${ex.message}")
@ -181,7 +215,7 @@ class MainView : View(title = "Numass viewer", icon = dfIconView) {
button("Watch directory") { button("Watch directory") {
action { action {
val chooser = DirectoryChooser() val chooser = DirectoryChooser()
chooser.title = "Select directory to view" chooser.title = "Select directory to watch"
val homeDir = NumassProperties.getNumassProperty("numass.viewer.lastPath") val homeDir = NumassProperties.getNumassProperty("numass.viewer.lastPath")
try { try {
if (homeDir == null) { if (homeDir == null) {
@ -199,15 +233,7 @@ class MainView : View(title = "Numass viewer", icon = dfIconView) {
if (dir != null) { if (dir != null) {
NumassProperties.setNumassProperty("numass.viewer.lastPath", dir.absolutePath) NumassProperties.setNumassProperty("numass.viewer.lastPath", dir.absolutePath)
app.context.launch { watchDirectory(dir.toPath())
val path = dir.toPath()
dataController.clear()
runLater {
pathProperty.set(path)
contentView = directoryWatchView
dataController.watchPathProperty.set(path)
}
}
} }
} catch (ex: Exception) { } catch (ex: Exception) {
NumassProperties.setNumassProperty("numass.viewer.lastPath", null) NumassProperties.setNumassProperty("numass.viewer.lastPath", null)