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 2022/03/29 16:24:32 UTC

[isis] branch ISIS-2957 updated: ISIS-2957 duration added to chart data tooltip, title shortended for EventLogDetail, response handling amended, mainMenu structured, About amended

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

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


The following commit(s) were added to refs/heads/ISIS-2957 by this push:
     new 534e8d0  ISIS-2957 duration added to chart data tooltip, title shortended for EventLogDetail, response handling amended, mainMenu structured, About amended
534e8d0 is described below

commit 534e8d06cdda8eb27acb31fcadf7d4894398de2f
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Tue Mar 29 18:24:11 2022 +0200

    ISIS-2957 duration added to chart data tooltip, title shortended for EventLogDetail, response handling amended, mainMenu structured, About amended
---
 .../isis/client/kroviz/core/event/EventStore.kt    |   8 ++-
 .../isis/client/kroviz/ui/core/FormPanelFactory.kt |   5 +-
 .../apache/isis/client/kroviz/ui/core/RoMenuBar.kt |  56 +++++++++------------
 .../apache/isis/client/kroviz/ui/dialog/About.kt   |  28 ++++++-----
 .../isis/client/kroviz/ui/dialog/EventLogDetail.kt |   3 +-
 .../client/kroviz/ui/panel/EventBubbleChart.kt     |   4 +-
 .../isis/client/kroviz/ui/panel/EventLogTable.kt   |   1 -
 .../apache/isis/client/kroviz/utils/IconManager.kt |   2 +
 .../src/main/resources/img/WheatFieldWithCrows.png | Bin 0 -> 282527 bytes
 9 files changed, 58 insertions(+), 49 deletions(-)

diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/EventStore.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/EventStore.kt
index 37bc120..c1ae86a 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/EventStore.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/EventStore.kt
@@ -113,7 +113,13 @@ class EventStore {
         val entry: LogEntry? = findBy(reSpec, pumlCode)
         if (entry != null) {
             when (response) {
-                is String -> entry.response = response
+                is String -> {
+                    if (response.isEmpty()) {
+                        throw IllegalStateException("CORS issue while accessing layout xml")
+                    } else {
+                        entry.response = response
+                    }
+                }
                 is Blob -> entry.blob = response
                 else -> {
                 }
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/FormPanelFactory.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/FormPanelFactory.kt
index 6070a1f..1110b9e 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/FormPanelFactory.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/FormPanelFactory.kt
@@ -35,6 +35,7 @@ import io.kvision.form.time.dateTime
 import io.kvision.html.Button
 import io.kvision.html.Div
 import io.kvision.html.Iframe
+import io.kvision.html.Image
 import io.kvision.panel.VPanel
 import io.kvision.panel.vPanel
 import io.kvision.utils.auto
@@ -167,7 +168,7 @@ class FormPanelFactory(items: List<FormItem>) : VPanel() {
     private fun createImage(fi: FormItem): VPanel {
         val panel = VPanel {
             when (val fc = fi.content) {
-//                fc is Image -> fc
+                fc is Image -> fc
                 fc is String -> {
                     // interpret as (file) URL and load locally
                     console.log("[FPF.createImage]")
@@ -181,6 +182,8 @@ class FormPanelFactory(items: List<FormItem>) : VPanel() {
                 }
             }
         }
+        //TODO
+        panel.add(fi.content as Image)
         panel.addCssClass("form-panel")
         return panel
     }
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoMenuBar.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoMenuBar.kt
index 7e91a47..c3922be 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoMenuBar.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoMenuBar.kt
@@ -23,6 +23,7 @@ import io.kvision.core.ResString
 import io.kvision.core.UNIT
 import io.kvision.core.style
 import io.kvision.dropdown.DropDown
+import io.kvision.dropdown.dropDown
 import io.kvision.dropdown.separator
 import io.kvision.html.ButtonStyle
 import io.kvision.html.Link
@@ -161,31 +162,13 @@ class RoMenuBar : SimplePanel() {
             buildMenuEntry("Events", "Event", { EventDialog().open() })
         )
 
-        val geoMapTitle = "Sample Geo Map"
-        mainMenu.add(
-            buildMenuEntry(geoMapTitle, "Map", { ViewManager.add(geoMapTitle, GeoMap()) })
-        )
-
-        val svgMapTitle = "Sample SVG Map"
-        mainMenu.add(
-            buildMenuEntry(svgMapTitle, "Diagram", { ViewManager.add(svgMapTitle, SvgMap()) })
-        )
-
-        val svgInlineTitle = "Sample SVG Inline (interactive)"
-        mainMenu.add(
-            buildMenuEntry(svgInlineTitle, "Diagram", { SvgInline().open() })
-        )
-
-        val imageTitle = "Sample Image"
-        mainMenu.add(
-            buildMenuEntry(imageTitle, "Image", { ViewManager.add(imageTitle, ImageSample) })
-        )
-
         val aboutTitle = "About"
         mainMenu.add(
             buildMenuEntry(aboutTitle, "About", { ViewManager.add(aboutTitle, About().dialog) })
         )
 
+        mainMenu.separator()
+
         val testTitle = "Execute All MenuBar Actions"
         mainMenu.add(
             buildMenuEntry(testTitle, "Test", { this.executeAllMenuBarActions() })
@@ -196,19 +179,30 @@ class RoMenuBar : SimplePanel() {
             buildMenuEntry(stats, "Console", { this.logStats() })
         )
 
-        /*
-               val testTitle = "Test"
-                 mainMenu.add(
-                     buildMenuEntry(testTitle, "Test", { this.testFirstSession() })
-                 )
+        mainMenu.separator()
+
+        val subMenu = dropDown("Samples", icon = "fas fa-expand", forDropDown = true)
+        val geoMapTitle = "Sample Geo Map"
+        subMenu.add(
+            buildMenuEntry(geoMapTitle, "Map", { ViewManager.add(geoMapTitle, GeoMap()) })
+        )
 
-          mainMenu.add(
-              buildMenuEntry("Browser in IFrame", "Wikipedia", { BrowserWindow("https://isis.apache.org/").open() })
-          )
+        val svgMapTitle = "Sample SVG Map"
+        subMenu.add(
+            buildMenuEntry(svgMapTitle, "Diagram", { ViewManager.add(svgMapTitle, SvgMap()) })
+        )
+
+        val svgInlineTitle = "Sample SVG Inline (interactive)"
+        subMenu.add(
+            buildMenuEntry(svgInlineTitle, "Diagram", { SvgInline().open() })
+        )
+
+        val imageTitle = "Sample Image"
+        subMenu.add(
+            buildMenuEntry(imageTitle, "Image", { ViewManager.add(imageTitle, ImageSample) })
+        )
 
-          mainMenu.add(
-              buildMenuEntry("SSH", "Terminal", { ShellWindow("localhost:8080").open() })
-          )*/
+        mainMenu.add(subMenu)
 
         return mainMenu
     }
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/About.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/About.kt
index 489e8e8..3ef0965 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/About.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/About.kt
@@ -18,33 +18,35 @@
  */
 package org.apache.isis.client.kroviz.ui.dialog
 
+import io.kvision.html.Image
 import org.apache.isis.client.kroviz.to.ValueType
 import org.apache.isis.client.kroviz.ui.core.FormItem
 import org.apache.isis.client.kroviz.ui.core.RoDialog
-import org.apache.isis.client.kroviz.utils.UUID
 
 class About : Controller() {
     private val formItems = mutableListOf<FormItem>()
-    private val _LI = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+    private val _LI =
+        "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
 
     init {
         // see: https://upload.wikimedia.org/wikipedia/commons/6/6c/Trajans-Column-lower-animated.svg
         val fiImg = FormItem(
-                label = "svg",
-                type = ValueType.SVG_INLINE,
-                callBack = UUID())
+            label = "",
+            type = ValueType.IMAGE,
+            content = Image(src = "img/WheatFieldWithCrows.png"))
         formItems.add(fiImg)
         val fiText = FormItem(
-                label = "",
-                content = _LI,
-                type = ValueType.TEXT_AREA,
-                size = 10)
+            label = "",
+            content = _LI,
+            type = ValueType.TEXT_AREA,
+            size = 5)
         formItems.add(fiText)
         dialog = RoDialog(
-                widthPerc = 50,
-                caption = "About",
-                items = formItems,
-                controller = this)
+            widthPerc = 50,
+            heightPerc = 50,
+            caption = "About",
+            items = formItems,
+            controller = this)
     }
 
 }
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/EventLogDetail.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/EventLogDetail.kt
index 79f1384..112b137 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/EventLogDetail.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/EventLogDetail.kt
@@ -74,8 +74,9 @@ class EventLogDetail(logEntryFromTabulator: LogEntry) : Controller() {
         )
         customButtons.add(FormItem("Console", ValueType.BUTTON, null, callBack = this, callBackAction = LOG))
 
+        val title = StringUtils.shortTitle(logEntry.title)
         dialog = RoDialog(
-            caption = "Details :" + logEntry.title,
+            caption = "Details :" + title,
             items = formItems,
             controller = this,
             defaultAction = "Response Diagram",
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/panel/EventBubbleChart.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/panel/EventBubbleChart.kt
index 2bd64b2..4d1ef31 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/panel/EventBubbleChart.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/panel/EventBubbleChart.kt
@@ -150,7 +150,7 @@ class EventBubbleChart : SimplePanel() {
             model.log.forEach {
                 when {
                     it.isError() -> borderColorList.add(ERROR_COLOR)
-                    else -> borderColorList.add(Color.name(Col.LIGHTGRAY))
+                    else -> borderColorList.add(TRANSPARENT)
                 }
             }
             return borderColorList
@@ -179,11 +179,13 @@ class EventBubbleChart : SimplePanel() {
 
     private fun LogEntry.buildToolTip(index: Int): String {
         val size = StringUtils.format(this.responseLength)
+        val ms = StringUtils.format(this.duration)
         val title = StringUtils.shortTitle(this.title)
         return title +
                 "\nseq.no.: $index" +
                 "\nparallel runs: ${this.runningAtStart}" +
                 "\nrsp.len.: $size" +
+                "\nduration: $ms" +
                 "\ntype: ${this.type}"
     }
 
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/panel/EventLogTable.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/panel/EventLogTable.kt
index c8d328b..0bad0d7 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/panel/EventLogTable.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/panel/EventLogTable.kt
@@ -154,7 +154,6 @@ class EventLogTable(val model: List<LogEntry>, filterState: EventState? = null)
 
         tabulator.onEvent {
             mouseover = {
-                console.log("[ED.init] dialog on init")
                 val jst = tabulator.jsTabulator
                 val value = filterState?.name
                 if (jst != null && value != null) {
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/IconManager.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/IconManager.kt
index b48b67e..9b772b6 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/IconManager.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/IconManager.kt
@@ -60,6 +60,7 @@ object IconManager {
         "Error Handling" to "bug",
         "Error" to "bug",
         "Event" to "bolt",
+        "Example" to "book",
         "Experimental" to "flask",
         "Export" to "file-export",
         "Facet" to "gem",
@@ -103,6 +104,7 @@ object IconManager {
         "Target" to "bullseye",
         "Tab" to "folder",
         "Terminal" to "terminal",
+        "Test" to "check",
         "Text" to "font",
         "Times" to "clock",
         "Toast" to "bread-slice", //comment-alt-plus/minus/exclamation
diff --git a/incubator/clients/kroviz/src/main/resources/img/WheatFieldWithCrows.png b/incubator/clients/kroviz/src/main/resources/img/WheatFieldWithCrows.png
new file mode 100644
index 0000000..5b86352
Binary files /dev/null and b/incubator/clients/kroviz/src/main/resources/img/WheatFieldWithCrows.png differ