Implemented generating QR code automatically if Enter or Tab is pressed and required data is entered
This commit is contained in:
parent
bec5ca8f14
commit
c2f7dbc3ac
|
@ -7,6 +7,8 @@ import javafx.geometry.Pos
|
||||||
import javafx.scene.control.Alert
|
import javafx.scene.control.Alert
|
||||||
import javafx.scene.control.TextFormatter
|
import javafx.scene.control.TextFormatter
|
||||||
import javafx.scene.image.Image
|
import javafx.scene.image.Image
|
||||||
|
import javafx.scene.input.KeyCode
|
||||||
|
import javafx.scene.input.KeyEvent
|
||||||
import javafx.scene.layout.Priority
|
import javafx.scene.layout.Priority
|
||||||
import javafx.stage.FileChooser
|
import javafx.stage.FileChooser
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
|
@ -75,18 +77,24 @@ class MainWindow : View(FX.messages["application.title"]) {
|
||||||
field(messages["Receiver"]) {
|
field(messages["Receiver"]) {
|
||||||
textfield(receiver) {
|
textfield(receiver) {
|
||||||
prefHeight = FieldHeight
|
prefHeight = FieldHeight
|
||||||
|
|
||||||
|
setOnKeyPressed { handleTextFieldKeyPressed(it) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
field(messages["IBAN"]) {
|
field(messages["IBAN"]) {
|
||||||
textfield(iban) {
|
textfield(iban) {
|
||||||
prefHeight = FieldHeight
|
prefHeight = FieldHeight
|
||||||
|
|
||||||
|
setOnKeyPressed { handleTextFieldKeyPressed(it) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
field(messages["BIC"]) {
|
field(messages["BIC"]) {
|
||||||
textfield(bic) {
|
textfield(bic) {
|
||||||
prefHeight = FieldHeight
|
prefHeight = FieldHeight
|
||||||
|
|
||||||
|
setOnKeyPressed { handleTextFieldKeyPressed(it) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,12 +105,16 @@ class MainWindow : View(FX.messages["application.title"]) {
|
||||||
setTextFormatter(TextFormatter<String> { change ->
|
setTextFormatter(TextFormatter<String> { change ->
|
||||||
isDecimalNumberEntered(change)
|
isDecimalNumberEntered(change)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
setOnKeyPressed { handleTextFieldKeyPressed(it) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
field(messages["Reference"]) {
|
field(messages["Reference"]) {
|
||||||
textfield(reference) {
|
textfield(reference) {
|
||||||
prefHeight = FieldHeight
|
prefHeight = FieldHeight
|
||||||
|
|
||||||
|
setOnKeyPressed { handleTextFieldKeyPressed(it) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -196,6 +208,22 @@ class MainWindow : View(FX.messages["application.title"]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun handleTextFieldKeyPressed(event: KeyEvent) {
|
||||||
|
if (event.code == KeyCode.ENTER || event.code == KeyCode.TAB) {
|
||||||
|
if (haveRequiredDataBeenEntered()) {
|
||||||
|
generateQrCode()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun haveRequiredDataBeenEntered(): Boolean {
|
||||||
|
return receiver.value.isNotBlank()
|
||||||
|
&& iban.value.isNotBlank() // TODO: also check if it's a valid IBAN
|
||||||
|
// TODO: check if either no BIC or a valid BIC is entered
|
||||||
|
&& amount.value.isNotBlank()
|
||||||
|
&& reference.value.isNotBlank()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun selectDestinationFileAndSaveTo() {
|
private fun selectDestinationFileAndSaveTo() {
|
||||||
val fileChooser = FileChooser()
|
val fileChooser = FileChooser()
|
||||||
|
|
Loading…
Reference in New Issue