TextureSync/client/src/main/kotlin/org/hso/texturesyncclient/view/mainView/MainViewController.kt

74 lines
1.9 KiB
Kotlin
Raw Normal View History

package org.hso.texturesyncclient.view.mainView
import javafx.collections.ObservableList
import javafx.scene.image.Image
import org.hso.texturesyncclient.model.GUIModel
import tornadofx.Controller
2019-06-04 18:20:09 +02:00
import org.hso.texturesyncclient.controller.RootController
2019-06-03 22:24:18 +02:00
class MainViewController : Controller() {
private val mv = find(MainView::class)
2019-06-04 18:20:09 +02:00
private val rootc = find(RootController::class)
// FolderView elements
private val folderView = mv.folderView.root
// DetailView elements
private val preview = mv.detailView.preview
private val metaLabel = mv.detailView.metaLabel
private val cvTags = mv.detailView.cvTags
// FolderView functions
fun addElement(element: GUIModel) {
2019-06-03 16:46:57 +02:00
folderView.children.add(element)
}
2019-06-04 18:20:09 +02:00
fun addAllElements(elementList: ArrayList<GUIModel>) {
2019-06-03 16:46:57 +02:00
folderView.children.addAll(elementList)
}
// DetailView functions
fun setPreview3DTexture(img: Image) {
preview.setTexture(img)
}
fun setMeta(name: String, res: String, etc: String) {
metaLabel.text = "Name: $name\nAuflösung: $res\nAnderes: $etc"
}
fun setTags(chips: ObservableList<String>) {
cvTags.chips.clear()
cvTags.chips.addAll(chips)
}
fun updateTags() {
println(cvTags.chips)
}
2019-06-05 16:23:45 +02:00
// DetailView actions
2019-06-04 18:20:09 +02:00
fun cvSearchAction(tags: ObservableList<String>) {
var previewList = arrayListOf<GUIModel>()
// show spinner, block ui
folderView.children.clear()
mv.spinnerSearch.isVisible = true
mv.cvSearch.isDisable = true
runAsync {
previewList = rootc.search(tags)
} ui {
// when search finished
addAllElements(previewList)
mv.spinnerSearch.isVisible = false
mv.cvSearch.isDisable = false
}
2019-06-03 22:24:18 +02:00
}
2019-06-05 16:23:45 +02:00
fun btnImportAction() {
rootc.switchMainToImport()
}
2019-06-04 18:20:09 +02:00
}