2019-05-16 15:26:14 +02:00
package org.hso.texturesyncclient.model
2019-06-03 15:29:01 +02:00
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
2019-05-16 15:26:14 +02:00
import tornadofx.*
2019-06-06 14:41:30 +02:00
class GUIModel constructor ( var data : Texture , img : Image ) : VBox ( ) {
2019-05-16 15:26:14 +02:00
2019-06-03 15:29:01 +02:00
private var image = ImageView ( )
private var label = Label ( )
private var contextMenu = ContextMenu ( )
2019-06-07 13:48:42 +02:00
private var exportItem = MenuItem ( " exportiern " )
private var deleteItem = MenuItem ( " löschen " )
2019-05-16 15:26:14 +02:00
2019-06-04 18:20:09 +02:00
private val gmc = find ( GUIModelController :: class )
2019-06-03 15:29:01 +02:00
init {
2019-06-07 16:57:15 +02:00
//super.setPadding(Insets(10.0, 10.0, 10.0, 10.0))
2019-06-03 15:29:01 +02:00
super . getChildren ( ) . addAll ( image , label )
super . setOnContextMenuRequested { p0 -> contextMenu . show ( this @GUIModel , p0 . screenX , p0 . screenY ) }
2019-06-07 16:57:15 +02:00
super . setOnMouseClicked {
//this.background = Background(BackgroundFill(Paint.valueOf("#42adaf"), CornerRadii.EMPTY, Insets.EMPTY))
gmc . previewSelectedAction ( data )
}
2019-05-16 15:26:14 +02:00
2019-06-03 15:29:01 +02:00
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 ) )
2019-05-16 15:26:14 +02:00
2019-06-03 15:29:01 +02:00
image . fitHeight = 128.0
image . fitWidth = 128.0
image . image = img
2019-06-04 18:20:09 +02:00
exportItem . setOnAction {
gmc . export ( data )
}
2019-06-05 22:33:37 +02:00
deleteItem . setOnAction {
gmc . delete ( data )
}
2019-06-03 15:29:01 +02:00
contextMenu . items . add ( exportItem )
2019-06-05 22:33:37 +02:00
contextMenu . items . add ( deleteItem )
2019-05-16 15:26:14 +02:00
}
}