compare-image/src/main/kotlin/io/gitlab/jfronny/compareimage/PickerController.kt

39 lines
1.1 KiB
Kotlin

package io.gitlab.jfronny.compareimage
import javafx.fxml.FXML
import javafx.scene.image.Image
import javafx.scene.image.ImageView
import javafx.scene.input.MouseEvent
import javafx.scene.text.Text
import kotlin.io.path.inputStream
class PickerController {
@FXML lateinit var rightText: Text
@FXML lateinit var leftText: Text
@FXML lateinit var left: ImageView
@FXML lateinit var right: ImageView
private lateinit var close: () -> Unit
var state: PickedState = PickedState.NONE
get() = field
private set(v) { field = v }
fun hydrate(left: PickerOption, right: PickerOption, close: () -> Unit) {
this.left.image = left.file.inputStream().use { Image(it) }
this.right.image = right.file.inputStream().use { Image(it) }
this.leftText.text = "${left.file.fileName}: ${left.score}"
this.rightText.text = "${right.file.fileName}: ${right.score}"
this.close = close
}
@FXML fun onLeftClick(mouseEvent: MouseEvent) {
state = PickedState.LEFT
close()
}
@FXML fun onRightClick(mouseEvent: MouseEvent) {
state = PickedState.RIGHT
close()
}
}