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

74 lines
1.9 KiB
Kotlin

package org.hso.texturesyncclient.view.mainView
import javafx.collections.ObservableList
import javafx.scene.image.Image
import org.hso.texturesyncclient.model.GUIModel
import tornadofx.Controller
import org.hso.texturesyncclient.controller.RootController
class MainViewController : Controller() {
private val mv = find(MainView::class)
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) {
folderView.children.add(element)
}
fun addAllElements(elementList: ArrayList<GUIModel>) {
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)
}
// DetailView actions
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
}
}
fun btnImportAction() {
rootc.switchMainToImport()
}
}