From de34fc5531828c54582d2a6c05c5d07499bbfe76 Mon Sep 17 00:00:00 2001 From: localhorst Date: Wed, 1 May 2019 22:57:03 +0200 Subject: [PATCH] added ipv4 validation in startupview --- .../view/startupView/StartupView.kt | 9 ++++++ .../view/startupView/StartupViewController.kt | 31 +++++++++++-------- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/client/src/main/kotlin/org/hso/texturesyncclient/view/startupView/StartupView.kt b/client/src/main/kotlin/org/hso/texturesyncclient/view/startupView/StartupView.kt index a61ba7c..917710d 100644 --- a/client/src/main/kotlin/org/hso/texturesyncclient/view/startupView/StartupView.kt +++ b/client/src/main/kotlin/org/hso/texturesyncclient/view/startupView/StartupView.kt @@ -1,5 +1,6 @@ package org.hso.texturesyncclient.view.startupView +import com.jfoenix.animation.alert.CenterTransition import com.jfoenix.controls.JFXButton import com.jfoenix.controls.JFXSpinner import com.jfoenix.controls.JFXTextField @@ -40,6 +41,9 @@ class StartupView : View() { add(labelServerIP) add(tfServerIP) add(btnConnect) + + // tfServerIP.style { alignment=Center} TODO + } } @@ -50,12 +54,17 @@ class StartupView : View() { } btnConnect.setOnAction { + spinnerStatus.isVisible = true svc.btnConnectAction(tfServerIP.text) + spinnerStatus.isVisible = false + } tfServerIP.setOnKeyPressed { if (it.code == KeyCode.ENTER) { + spinnerStatus.isVisible = true svc.btnConnectAction(tfServerIP.text) + spinnerStatus.isVisible = false } } diff --git a/client/src/main/kotlin/org/hso/texturesyncclient/view/startupView/StartupViewController.kt b/client/src/main/kotlin/org/hso/texturesyncclient/view/startupView/StartupViewController.kt index 90c321d..6a8acb4 100644 --- a/client/src/main/kotlin/org/hso/texturesyncclient/view/startupView/StartupViewController.kt +++ b/client/src/main/kotlin/org/hso/texturesyncclient/view/startupView/StartupViewController.kt @@ -1,25 +1,23 @@ package org.hso.texturesyncclient.view.startupView import tornadofx.Controller +import com.sun.org.apache.xalan.internal.xsltc.compiler.sym.PATTERN + + class StartupViewController : Controller() { fun btnConnectAction(txt:String){ 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){ @@ -27,4 +25,11 @@ class StartupViewController : Controller() { startupView.labelStatus.text = txt } -} \ No newline at end of file + 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 + } + +} + +