TextureSync/client/src/main/kotlin/org/hso/texturesyncclient/model/GUIModel.kt

50 lines
1.5 KiB
Kotlin

package org.hso.texturesyncclient.model
import javafx.geometry.Insets
import javafx.geometry.Pos
import javafx.scene.control.ContextMenu
import javafx.scene.control.Label
import javafx.scene.control.MenuItem
import javafx.scene.image.Image
import javafx.scene.image.ImageView
import javafx.scene.layout.Background
import javafx.scene.layout.BackgroundFill
import javafx.scene.layout.CornerRadii
import javafx.scene.layout.VBox
import javafx.scene.paint.Paint
import org.hso.texturesyncclient.controller.RootController
import org.hso.texturesyncclient.view.mainView.MainViewController
import tornadofx.*
class GUIModel constructor(data: Texture, img: Image) : VBox(){
private var image = ImageView()
private var label = Label()
private var contextMenu = ContextMenu()
var exportItem = MenuItem("exportiern")
private val gmc = find(GUIModelController::class)
init {
super.getChildren().addAll(image, label)
super.setOnContextMenuRequested { p0 -> contextMenu.show(this@GUIModel, p0.screenX, p0.screenY) }
super.setOnMouseClicked{ gmc.previewSelectedAction(data) }
label.paddingTop = 5.0
label.prefWidth = 128.0
label.alignment = Pos.CENTER
label.text = data.name
label.background = Background(BackgroundFill(Paint.valueOf("#FFFF2b"), CornerRadii.EMPTY, Insets.EMPTY))
image.fitHeight = 128.0
image.fitWidth = 128.0
image.image = img
exportItem.setOnAction {
gmc.export(data)
}
contextMenu.items.add(exportItem)
}
}