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) { 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) { cvTags.chips.clear() cvTags.chips.addAll(chips) } fun updateTags() { println(cvTags.chips) } // DetailView actions fun cvSearchAction(tags: ObservableList) { var previewList = arrayListOf() // 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() } }