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() } }