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 2020/05/31 16:58:46 UTC

[isis] branch master updated: ISIS-2342 notifications in StatusBar, adjust height in dialogs to fix resizing

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


The following commit(s) were added to refs/heads/master by this push:
     new 909b475  ISIS-2342 notifications in StatusBar, adjust height in dialogs to fix resizing
909b475 is described below

commit 909b4752a0378d0c82bd5e0f2eaeecb0f49d1cbd
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Sun May 31 18:58:23 2020 +0200

    ISIS-2342 notifications in StatusBar, adjust height in dialogs to fix resizing
---
 .../apache/isis/client/kroviz/ui/ErrorDialog.kt    |  2 +-
 .../apache/isis/client/kroviz/ui/IconManager.kt    |  1 +
 .../isis/client/kroviz/ui/NotificationDialog.kt    | 24 ++++++++++++++++++++++
 .../isis/client/kroviz/ui/UndefinedDialog.kt       |  2 +-
 .../isis/client/kroviz/ui/kv/EventLogTable.kt      |  3 ++-
 .../apache/isis/client/kroviz/ui/kv/RoStatusBar.kt | 12 +++++++++++
 6 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/ErrorDialog.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/ErrorDialog.kt
index fe25d16..da8f466 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/ErrorDialog.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/ErrorDialog.kt
@@ -22,7 +22,7 @@ class ErrorDialog(val logEntry: LogEntry) : Command {
                 items = formItems,
                 command = this,
                 widthPerc = 80,
-                heightPerc = 80).open()
+                heightPerc = 100).open()
     }
 
     override fun execute() {
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/IconManager.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/IconManager.kt
index ab9a0b4..e1083a7 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/IconManager.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/IconManager.kt
@@ -43,6 +43,7 @@ object IconManager {
             "Log" to "history",
             "Manager" to "manager",
             "Me" to "user",
+            "Notification" to "bell",
             "Objects" to "cubes",
             "OK" to "check",
             "Open" to "book",
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/NotificationDialog.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/NotificationDialog.kt
new file mode 100644
index 0000000..cf5e9fa
--- /dev/null
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/NotificationDialog.kt
@@ -0,0 +1,24 @@
+package org.ro.view
+
+import org.apache.isis.client.kroviz.ui.Command
+import org.apache.isis.client.kroviz.ui.FormItem
+import org.apache.isis.client.kroviz.ui.kv.RoDialog
+
+class NotificationDialog(val message: String) : Command {
+
+    fun open() {
+        val formItems = mutableListOf<FormItem>()
+        formItems.add(FormItem("Message", "TextArea", message, size = 7))
+        val label = "Notifications"
+        RoDialog(
+                caption = label,
+                items = formItems,
+                command = this,
+                widthPerc = 80,
+                heightPerc = 100).open()
+    }
+
+    override fun execute() {
+        //do nothing
+    }
+}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/UndefinedDialog.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/UndefinedDialog.kt
index 898d807..3d56040 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/UndefinedDialog.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/UndefinedDialog.kt
@@ -26,7 +26,7 @@ class UndefinedDialog(val logEntry: LogEntry) : Command {
                 items = formItems,
                 command = this,
                 widthPerc = 80,
-                heightPerc = 80).open()
+                heightPerc = 100).open()
     }
 
     override fun execute() {
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/EventLogTable.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/EventLogTable.kt
index af3e607..f2ce75d 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/EventLogTable.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/EventLogTable.kt
@@ -1,6 +1,7 @@
 package org.apache.isis.client.kroviz.ui.kv
 
 import org.apache.isis.client.kroviz.core.event.LogEntry
+import org.apache.isis.client.kroviz.ui.EventLogDetail
 import pl.treksoft.kvision.core.CssSize
 import pl.treksoft.kvision.core.UNIT
 import pl.treksoft.kvision.html.Button
@@ -22,7 +23,7 @@ class EventLogTable(val model: List<LogEntry>) : VPanel() {
                     align = Align.CENTER,
                     formatterComponentFunction = { _, _, data ->
                         Button("", icon = "fa fa-ellipsis-v", style = data.state.style).onClick {
-                            org.apache.isis.client.kroviz.ui.EventLogDetail(data).open()
+                            EventLogDetail(data).open()
                         }.apply { margin = CssSize(-10, UNIT.px) }
                     }),
             ColumnDefinition<LogEntry>("Title", "title",
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoStatusBar.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoStatusBar.kt
index 4b36395..32b04f8 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoStatusBar.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoStatusBar.kt
@@ -6,6 +6,7 @@ import org.apache.isis.client.kroviz.core.model.DiagramDM
 import org.apache.isis.client.kroviz.ui.ClassDiagram
 import org.apache.isis.client.kroviz.ui.IconManager
 import org.apache.isis.client.kroviz.ui.ImageDialog
+import org.ro.view.NotificationDialog
 import pl.treksoft.kvision.core.*
 import pl.treksoft.kvision.html.Button
 import pl.treksoft.kvision.html.ButtonStyle
@@ -24,6 +25,7 @@ object RoStatusBar {
     private val userBtn: Button = buildButton("", "Me", ButtonStyle.OUTLINEWARNING)
     private val umlDiagram = buildButton("", "Diagram", ButtonStyle.OUTLINEWARNING)
     private val lastError = buildButton("OK", "OK", ButtonStyle.OUTLINESUCCESS)
+    private val alert = buildButton("", "Notification", ButtonStyle.OUTLINESUCCESS)
 
     private fun buildButton(text: String, iconName: String, style: ButtonStyle): Button {
         return Button(
@@ -40,6 +42,7 @@ object RoStatusBar {
         nav.add(lastError)
         nav.add(umlDiagram)
         nav.add(userBtn)
+        nav.add(alert)
     }
 
     fun updateDiagram(dd: DiagramDM) {
@@ -54,6 +57,15 @@ object RoStatusBar {
     fun updateUser(user: String) {
         userBtn.setAttribute(name = "title", value = user)
         userBtn.style = ButtonStyle.OUTLINESUCCESS
+        notify(user)
+    }
+
+    fun notify(text: String) {
+        alert.setAttribute(name = "title", value = text)
+        alert.style = ButtonStyle.OUTLINEDANGER
+        alert.onClick {
+            NotificationDialog(text).open()
+        }
     }
 
     fun update(le: LogEntry?) {