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/05/21 14:11:30 UTC
[isis] 02/04: Visualization for layout.xml
This is an automated email from the ASF dual-hosted git repository.
joergrade pushed a commit to branch ISIS-2505_Catch_Up_With_Demo_Examples
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 1015b376206418a4aeeef055b4daed577f912783
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Wed May 12 13:01:08 2021 +0200
Visualization for layout.xml
---
.../isis/client/kroviz/ui/diagram/LayoutDiagram.kt | 40 ++++++++++++----------
.../isis/client/kroviz/ui/dialog/EventLogDetail.kt | 7 ++--
.../client/kroviz/ui/kv/override/RoTabPanel.kt | 6 ++--
3 files changed, 28 insertions(+), 25 deletions(-)
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/diagram/LayoutDiagram.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/diagram/LayoutDiagram.kt
index 201d281..3ca9752 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/diagram/LayoutDiagram.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/diagram/LayoutDiagram.kt
@@ -18,9 +18,9 @@
*/
package org.apache.isis.client.kroviz.ui.diagram
-import org.apache.isis.client.kroviz.layout.ColsLt
-import org.apache.isis.client.kroviz.layout.Layout
-import org.apache.isis.client.kroviz.layout.RowLt
+import org.apache.isis.client.kroviz.to.bs3.Col
+import org.apache.isis.client.kroviz.to.bs3.Grid
+import org.apache.isis.client.kroviz.to.bs3.Row
object LayoutDiagram {
@@ -33,33 +33,35 @@ object LayoutDiagram {
"}\n" +
"@endsalt"
- fun build(layout: Layout): String {
+ fun build(grid: Grid): String {
var pumlCode = "@startsalt\n{#\n"
- layout.row.forEach {
+ grid.rows.forEach {
pumlCode += buildRow(it)
}
return pumlCode + "}\n@endsalt"
}
- private fun buildRow(row: RowLt): String {
+ val blue = "<color:Blue>"
+ val green = "<color:Green>"
+ private fun buildRow(row: Row): String {
var s = ""
- row.cols.forEach {
- s += buildCol(it)
+ row.colList.forEachIndexed() { index, it ->
+ if (index % 2 == 0)
+ s += buildCol(it, blue)
+ else
+ s += buildCol(it, green)
}
- return s
+ s = s.dropLast(1)
+ return s + "\n"
}
- private fun buildCol(cols: ColsLt): String {
- var s = ". "
- val span: Int? = cols.col.span
- if (span == null) {
- s += "| . "
- } else {
- for (i in 1..span) {
- s += "| * "
- }
+ private fun buildCol(col: Col, colorCode: String): String {
+ var s = ""
+ val span: Int = col.span
+ repeat(span) {
+ s += "$colorCode C |"
}
- return s + "\n"
+ return s
}
}
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 267553a..a9d445b 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
@@ -19,8 +19,8 @@
package org.apache.isis.client.kroviz.ui.dialog
import org.apache.isis.client.kroviz.core.event.LogEntry
-import org.apache.isis.client.kroviz.layout.Layout
import org.apache.isis.client.kroviz.to.ValueType
+import org.apache.isis.client.kroviz.to.bs3.Grid
import org.apache.isis.client.kroviz.ui.core.Constants
import org.apache.isis.client.kroviz.ui.core.FormItem
import org.apache.isis.client.kroviz.ui.core.RoDialog
@@ -62,12 +62,15 @@ class EventLogDetail(val logEntry: LogEntry) : Command() {
val str = logEntry.response
val pumlCode = when {
str.startsWith("<") -> {
- LayoutDiagram.build(logEntry.obj as Layout)
+ val grid = logEntry.obj as Grid
+ LayoutDiagram.build(grid)
}
str.startsWith("{") ->
JsonDiagram.build(str)
else -> "{}"
}
+ console.log("[ELD.execute]")
+ console.log(pumlCode)
DiagramDialog("Response Diagram", pumlCode).open()
}
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 7a44259..9ca5846 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
@@ -21,7 +21,6 @@ package org.apache.isis.client.kroviz.ui.kv.override
/**
* Copied from TabPanel in order to:
* * add IconMenu to (Ro)Tab
- * * recreate svg from LogEntry on focus
*/
import com.github.snabbdom.VNode
@@ -31,8 +30,8 @@ import io.kvision.panel.VPanel
import io.kvision.routing.RoutingManager
import io.kvision.state.ObservableState
import io.kvision.state.bind
+import io.kvision.utils.auto
import io.kvision.utils.obj
-import io.kvision.utils.perc
import io.kvision.utils.set
import org.apache.isis.client.kroviz.ui.core.RoView
@@ -117,7 +116,7 @@ open class RoTabPanel(
}
init {
- width = 100.perc
+ width = auto
marginTop = CssSize(40, UNIT.px)
when (tabPosition) {
TabPosition.TOP -> {
@@ -146,7 +145,6 @@ open class RoTabPanel(
return render("div", childrenVNodes())
}
-
private fun calculateSideClasses(): Pair<String, String> {
return when (sideTabSize) {
SideTabSize.SIZE_1 -> Pair("col-sm-1", "col-sm-11")