You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by jo...@apache.org on 2023/06/15 20:00:42 UTC
[causeway] branch kvision-6-upgrade updated: CAUSEWAY-3264 icon on Exhibit set
This is an automated email from the ASF dual-hosted git repository.
joergrade pushed a commit to branch kvision-6-upgrade
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/kvision-6-upgrade by this push:
new 2057f3944d CAUSEWAY-3264 icon on Exhibit set
2057f3944d is described below
commit 2057f3944dc8b8af3447d4d2ffdd63d2ced7a313
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Thu Jun 15 22:00:24 2023 +0200
CAUSEWAY-3264 icon on Exhibit set
---
incubator/clients/kroviz/build.gradle.kts | 4 +++-
.../kroviz/core/event/ResourceSpecification.kt | 2 ++
.../client/kroviz/core/model/CollectionDM.kt | 9 +++++++--
.../kroviz/core/model/DisplayModelException.kt | 4 ++++
.../causeway/client/kroviz/core/model/ObjectDM.kt | 14 +++++++++++---
.../client/kroviz/core/model/ObjectLayout.kt | 1 +
.../causeway/client/kroviz/ui/builder/ColBuilder.kt | 21 ++++++++++++++-------
.../causeway/client/kroviz/ui/core/ColumnFactory.kt | 5 ++---
.../client/kroviz/ui/core/FormPanelFactory.kt | 2 --
.../causeway/client/kroviz/ui/core/RoTable.kt | 7 ++++---
10 files changed, 48 insertions(+), 21 deletions(-)
diff --git a/incubator/clients/kroviz/build.gradle.kts b/incubator/clients/kroviz/build.gradle.kts
index f7e7613a7f..48271d6909 100644
--- a/incubator/clients/kroviz/build.gradle.kts
+++ b/incubator/clients/kroviz/build.gradle.kts
@@ -142,4 +142,6 @@ afterEvaluate {
}
dependencies {
implementation(kotlin("stdlib-js"))
-}
\ No newline at end of file
+// classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}")
+// implementation(kotlin("org.jetbrains.kotlin:kotlin-dce-js:$kotlinVersion"))
+}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/event/ResourceSpecification.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/event/ResourceSpecification.kt
index 63130ef8e4..b0102b16d3 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/event/ResourceSpecification.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/event/ResourceSpecification.kt
@@ -18,10 +18,12 @@
*/
package org.apache.causeway.client.kroviz.core.event
+import kotlinx.serialization.Serializable
import org.apache.causeway.client.kroviz.ui.core.Constants
import org.apache.causeway.client.kroviz.utils.StringUtils
import org.apache.causeway.client.kroviz.utils.UrlUtils
+@Serializable
class ResourceSpecification(
val url: String,
val subType: String? = Constants.subTypeJson,
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/CollectionDM.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/CollectionDM.kt
index ebf19cd706..1ed8ea6461 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/CollectionDM.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/CollectionDM.kt
@@ -67,14 +67,19 @@ class CollectionDM(override var title: String) : DisplayModelWithLayout() {
}
override fun readyToRender(): Boolean {
- return collectionLayout.readyToRender()
+ val result = collectionLayout.readyToRender() && data.size > 0
+ if (result) {
+ console.log("[CDM_readyToRender]")
+ console.log(this)
+ }
+ return result
}
override fun addData(obj: TransferObject) {
rawData.add(obj)
val tObj = obj as TObject
val exo = Exposer(tObj)
- data.add(exo)
+ data.add(exo.exhibit.asDynamic())
}
override fun reset() {
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/DisplayModelException.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/DisplayModelException.kt
new file mode 100644
index 0000000000..5039406c75
--- /dev/null
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/DisplayModelException.kt
@@ -0,0 +1,4 @@
+package org.apache.causeway.client.kroviz.core.model
+
+class DisplayModelException(message: String, cause: Throwable) : RuntimeException() {
+}
\ No newline at end of file
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/ObjectDM.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/ObjectDM.kt
index aeb990a22e..f9384a477f 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/ObjectDM.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/ObjectDM.kt
@@ -45,8 +45,12 @@ class ObjectDM(override val title: String) : DisplayModelWithLayout() {
}
fun hasCollectionModels(): Boolean {
- console.log("[ODM_hasCollectionModels]")
- console.log(collectionModelList)
+ console.log("[ODM_hasCollectionModels] ${collectionModelList.isNotEmpty()}")
+ if (collectionModelList.isNotEmpty()) {
+ val firstCM = collectionModelList.get(0)
+ console.log("[ODM_hasCollectionModels] data:")
+ console.log(firstCM.data)
+ }
return collectionModelList.isNotEmpty()
}
@@ -59,19 +63,23 @@ class ObjectDM(override val title: String) : DisplayModelWithLayout() {
}
override fun readyToRender(): Boolean {
- return when {
+ val result = when {
data == null -> false
isRendered -> false
layout == null -> false
else -> areCollectionsReadyToRender()
}
+ return result
}
private fun areCollectionsReadyToRender(): Boolean {
+ if (collectionModelList.size < 1) return false
collectionModelList.forEach {
if (!it.readyToRender())
return false
}
+ console.log("[ODM_areCollectionsReadyToRender] (true)")
+ console.log(collectionModelList)
return true
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/ObjectLayout.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/ObjectLayout.kt
index 5c0ca4d4d4..e9a825ab21 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/ObjectLayout.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/ObjectLayout.kt
@@ -34,6 +34,7 @@ class ObjectLayout(val grid: GridBs, val aggregator: ObjectAggregator, val refer
}
override fun readyToRender(): Boolean {
+ console.log("[OL_readyToRender] constant:true")
return true //TODO remove from protocol ?
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/ui/builder/ColBuilder.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/ui/builder/ColBuilder.kt
index 71f0548590..c750ceeb1b 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/ui/builder/ColBuilder.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/ui/builder/ColBuilder.kt
@@ -23,6 +23,7 @@ import io.kvision.panel.FieldsetPanel
import io.kvision.panel.FlexPanel
import io.kvision.panel.HPanel
import io.kvision.panel.SimplePanel
+import org.apache.causeway.client.kroviz.core.model.DisplayModelException
import org.apache.causeway.client.kroviz.to.TObject
import org.apache.causeway.client.kroviz.to.bs.ColBs
import org.apache.causeway.client.kroviz.to.bs.CollectionBs
@@ -83,19 +84,23 @@ class ColBuilder(
}
private fun addCollections() {
- console.log("[CB_addCollections]")
- if (dsp.displayModel.hasCollectionModels()) {
- col.collectionList.forEach {
- console.log(it)
- buildTableAndWrapInFsPanel(it)
- }
+ col.collectionList.forEach {
+ console.log(it)
+ buildTableAndWrapInFsPanel(it)
}
}
private fun buildTableAndWrapInFsPanel(it: CollectionBs) {
val objectDM = dsp.displayModel
+ console.log("[CB_buildTableAndWrapInFsPanel] ODM")
+ console.log(objectDM)
try {
+ console.log("[CB_buildTableAndWrapInFsPanel] CollectionBs/id")
+ console.log(it)
+ console.log(it.id)
val cdm = objectDM.getCollectionDisplayModelFor(it.id)!!
+ console.log("[CB_buildTableAndWrapInFsPanel] CDM")
+ console.log(cdm)
val fsPanel = FieldsetPanel(legend = cdm.getTitle())
val table = RoTable(cdm)
console.log(table)
@@ -103,7 +108,9 @@ class ColBuilder(
panel.add(fsPanel)
cdm.isRendered = true
} catch (npe: NullPointerException) {
- return
+ console.log("[CB_buildTableAndWrapInFsPanel] NPE caught")
+ val dme = DisplayModelException(message = "collectionDisplayModel not found", cause = npe)
+ throw dme
}
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/ui/core/ColumnFactory.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/ui/core/ColumnFactory.kt
index 0d8596962d..388405d033 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/ui/core/ColumnFactory.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/ui/core/ColumnFactory.kt
@@ -81,11 +81,10 @@ class ColumnFactory {
}
private fun exposeIcons(displayCollection: CollectionDM) {
- val model = displayCollection.data
val icon = displayCollection.icon
- model.forEach { dynamic ->
+ displayCollection.data.forEach { exhibit ->
if (icon != null) {
- dynamic.setIcon(icon)
+ exhibit.asDynamic()["icon"] = icon
}
}
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/ui/core/FormPanelFactory.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/ui/core/FormPanelFactory.kt
index 3a64dfee54..4024243000 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/ui/core/FormPanelFactory.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/ui/core/FormPanelFactory.kt
@@ -60,8 +60,6 @@ class FormPanelFactory(items: List<FormItem>) : VPanel() {
height = auto
margin = 10.px
for (fi: FormItem in items) {
- console.log("[FPF_init]")
- console.log(fi.type)
when (fi.type) {
ValueType.TEXT -> add(createText(fi))
ValueType.PASSWORD -> add(createPassword(fi))
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/ui/core/RoTable.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/ui/core/RoTable.kt
index b07e6df5e0..ab93e22668 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/ui/core/RoTable.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/ui/core/RoTable.kt
@@ -44,9 +44,9 @@ class RoTable(displayCollection: CollectionDM) : SimplePanel() {
init {
title = StringUtils.extractTitle(displayCollection.title)
width = CssSize(100, UNIT.perc)
- val model = mutableListOf<Exhibit>()
+ val model = mutableListOf<dynamic>()
displayCollection.data.forEach {
- model.add(it.getWithDelegateProperties())
+ model.add(it.asDynamic())
}
val columns = ColumnFactory().buildColumns(
displayCollection
@@ -62,7 +62,8 @@ class RoTable(displayCollection: CollectionDM) : SimplePanel() {
val tableTypes = setOf(TableType.STRIPED, TableType.HOVER)
- console.log("[RT_before] tabulator()")
+ console.log("[RT_before] tabulator(), model ->")
+ console.log(model)
val tabulator = createTabulator(model, options, tableTypes)
tabulator.setEventListener<Tabulator<dynamic>> {
cellClickTabulator = {