You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by jo...@apache.org on 2021/11/12 17:09:07 UTC

[isis] 06/07: ISIS-2348 amend LoginPrompt with dropdown for localhost & incode

This is an automated email from the ASF dual-hosted git repository.

joergrade pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 7c3d99da7535a1d9a9eeb3ea7cf37671b6bb69a7
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Fri Nov 12 18:07:57 2021 +0100

    ISIS-2348 amend LoginPrompt with dropdown for localhost & incode
---
 .../apache/isis/client/kroviz/ui/core/RoView.kt    | 26 +++++++++++++++-------
 .../isis/client/kroviz/ui/dialog/LoginPrompt.kt    | 12 +++++++---
 .../client/kroviz/ui/kv/override/RoTabPanel.kt     |  2 +-
 3 files changed, 28 insertions(+), 12 deletions(-)

diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoView.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoView.kt
index ac32af2..834c160 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoView.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoView.kt
@@ -22,8 +22,10 @@ import io.kvision.core.BsBorder
 import io.kvision.core.Component
 import io.kvision.core.addBsBorder
 import io.kvision.panel.SimplePanel
+import org.apache.isis.client.kroviz.ui.kv.override.RoTab
 import org.apache.isis.client.kroviz.ui.kv.override.RoTabPanel
 import org.apache.isis.client.kroviz.utils.IconManager
+import org.w3c.dom.Element
 
 /**
  * Area between menu bar at the top and the status bar at the bottom.
@@ -35,8 +37,9 @@ class RoView() {
     private var tabCount = 0
 
     fun addTab(
-            title: String,
-            panel: Component) {
+        title: String,
+        panel: Component
+    ) {
         panel.addBsBorder(BsBorder.BORDER)
         val index = tabPanel.findTab(title)
         if (index != null) {
@@ -47,13 +50,20 @@ class RoView() {
         }
 
         val icon = IconManager.find(title)
+        val tab = RoTab(
+            title,
+            panel,
+            icon,
+            image = null,
+            closable = true
+        )
+        tab.addAfterInsertHook {
+            tab.getElement()?.unsafeCast<Element>()?.querySelector("i")?.addEventListener("click", {
+                console.log("icon clicked")
+            })
+        }
 
-        tabPanel.addTab(
-                title,
-                panel,
-                icon,
-                image = null,
-                closable = true)
+        tabPanel.add(tab)
         tabPanel.activeIndex = tabCount
         tabCount += 1
     }
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/LoginPrompt.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/LoginPrompt.kt
index 628057b..8a3b12f 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/LoginPrompt.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/LoginPrompt.kt
@@ -18,6 +18,8 @@
  */
 package org.apache.isis.client.kroviz.ui.dialog
 
+import io.kvision.core.StringPair
+import io.kvision.form.select.SimpleSelect
 import io.kvision.form.text.Password
 import io.kvision.form.text.Text
 import org.apache.isis.client.kroviz.to.Link
@@ -38,7 +40,10 @@ class LoginPrompt : Command() {
 
     fun open() {
         val formItems = mutableListOf<FormItem>()
-        formItems.add(FormItem("Url", ValueType.TEXT, url))
+        val urlList = mutableListOf<StringPair>()
+        urlList.add(StringPair(Constants.demoUrl, Constants.demoUrl))
+        urlList.add(StringPair(Constants.demoUrlRemote, Constants.demoUrlRemote))
+        formItems.add(FormItem("Url", ValueType.SIMPLE_SELECT, urlList))
         formItems.add(FormItem("User", ValueType.TEXT, username))
         formItems.add(FormItem("Password", ValueType.PASSWORD, password))
         form = RoDialog(caption = "Connect", items = formItems, command = this, heightPerc = 27)
@@ -62,10 +67,11 @@ class LoginPrompt : Command() {
         //iterate over FormItems (0,1,2) but not Buttons(3,4)
         for (i in kids) {
             when (i) {
+                is SimpleSelect -> {
+                    url = i.getValue()!!
+                }
                 is Text -> {
                     key = i.label!!
-                    if (key == "Url")
-                        url = i.getValue()!!
                     if (key == "User")
                         username = i.getValue()!!
                 }
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/override/RoTabPanel.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/override/RoTabPanel.kt
index 3f4da88..be62852 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/override/RoTabPanel.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/override/RoTabPanel.kt
@@ -71,7 +71,7 @@ enum class SideTabSize {
 open class RoTabPanel(
     protected val tabPosition: TabPosition = TabPosition.TOP,
     protected val sideTabSize: SideTabSize = SideTabSize.SIZE_3,
-    val scrollableTabs: Boolean = false,
+    val scrollableTabs: Boolean = true,
     val draggableTabs: Boolean = false,
     className: String? = null,
     init: (RoTabPanel.() -> Unit)? = null