39 lines
1.1 KiB
Kotlin
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()
|
|
}
|
|
}
|