added ipv4 validation in startupview

This commit is contained in:
Hendrik Schutter 2019-05-01 22:57:03 +02:00
parent 5976e16f0d
commit de34fc5531
2 changed files with 27 additions and 13 deletions

View File

@ -1,5 +1,6 @@
package org.hso.texturesyncclient.view.startupView package org.hso.texturesyncclient.view.startupView
import com.jfoenix.animation.alert.CenterTransition
import com.jfoenix.controls.JFXButton import com.jfoenix.controls.JFXButton
import com.jfoenix.controls.JFXSpinner import com.jfoenix.controls.JFXSpinner
import com.jfoenix.controls.JFXTextField import com.jfoenix.controls.JFXTextField
@ -40,6 +41,9 @@ class StartupView : View() {
add(labelServerIP) add(labelServerIP)
add(tfServerIP) add(tfServerIP)
add(btnConnect) add(btnConnect)
// tfServerIP.style { alignment=Center} TODO
} }
} }
@ -50,12 +54,17 @@ class StartupView : View() {
} }
btnConnect.setOnAction { btnConnect.setOnAction {
spinnerStatus.isVisible = true
svc.btnConnectAction(tfServerIP.text) svc.btnConnectAction(tfServerIP.text)
spinnerStatus.isVisible = false
} }
tfServerIP.setOnKeyPressed { tfServerIP.setOnKeyPressed {
if (it.code == KeyCode.ENTER) { if (it.code == KeyCode.ENTER) {
spinnerStatus.isVisible = true
svc.btnConnectAction(tfServerIP.text) svc.btnConnectAction(tfServerIP.text)
spinnerStatus.isVisible = false
} }
} }

View File

@ -1,25 +1,23 @@
package org.hso.texturesyncclient.view.startupView package org.hso.texturesyncclient.view.startupView
import tornadofx.Controller import tornadofx.Controller
import com.sun.org.apache.xalan.internal.xsltc.compiler.sym.PATTERN
class StartupViewController : Controller() { class StartupViewController : Controller() {
fun btnConnectAction(txt:String){ fun btnConnectAction(txt:String){
println("Connect BTN: $txt") println("Connect BTN: $txt")
//TODO check IP4
spinnterStart() if (validateIPv4(txt)){
println("valid ipv4")
//TODO connect to server ...
}else{
println("invalid ipv4")
//TODO show error
} }
fun spinnterStart(){
val startupView = find(StartupView::class)
startupView.spinnerStatus.isVisible = true
}
fun spinnerStop(){
val startupView = find(StartupView::class)
startupView.spinnerStatus.isVisible = false
} }
fun labelStatusSetText (txt:String){ fun labelStatusSetText (txt:String){
@ -27,4 +25,11 @@ class StartupViewController : Controller() {
startupView.labelStatus.text = txt startupView.labelStatus.text = txt
} }
fun validateIPv4(ip: String): Boolean {
val regex = Regex(pattern = "^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])\$")
return regex.containsMatchIn(input = ip) // matched: true
} }
}