2019-04-30 16:49:02 +02:00
package org.hso.texturesyncclient.view.mainView
2019-05-09 15:24:45 +02:00
import javafx.collections.ObservableList
import javafx.scene.image.Image
2019-06-03 15:29:01 +02:00
import org.hso.texturesyncclient.model.GUIModel
2019-06-03 22:24:18 +02:00
import org.hso.texturesyncclient.model.TextureFormat
2019-04-30 16:49:02 +02:00
import tornadofx.Controller
2019-06-03 22:24:18 +02:00
import javafx.stage.DirectoryChooser
2019-06-04 18:20:09 +02:00
import org.hso.texturesyncclient.controller.RootController
import tornadofx.clear
2019-06-03 22:24:18 +02:00
import javax.swing.JColorChooser.showDialog
import java.io.File
2019-04-30 16:49:02 +02:00
class MainViewController : Controller ( ) {
2019-05-09 15:24:45 +02:00
private val mv = find ( MainView :: class )
2019-06-04 18:20:09 +02:00
private val rootc = find ( RootController :: class )
2019-05-09 15:24:45 +02:00
// FolderView elements
2019-06-03 15:29:01 +02:00
private val folderView = mv . folderView . root
2019-05-09 15:24:45 +02:00
// DetailView elements
private val preview = mv . detailView . preview
private val metaLabel = mv . detailView . metaLabel
private val cvTags = mv . detailView . cvTags
2019-06-03 15:29:01 +02:00
// 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 )
2019-06-03 15:29:01 +02:00
}
// DetailView functions
2019-05-09 15:24:45 +02:00
fun setPreview3DTexture ( img : Image ) {
preview . setTexture ( img )
}
fun setMeta ( name : String , res : String , etc : String ) {
metaLabel . text = " Name: $name \n Auflösung: $res \n Anderes: $etc "
}
fun setTags ( chips : ObservableList < String > ) {
cvTags . chips . clear ( )
cvTags . chips . addAll ( chips )
}
// update the tags for the selected element
fun updateTags ( ) {
println ( cvTags . chips )
}
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-04 18:20:09 +02:00
2019-04-30 16:49:02 +02:00
}