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

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


The following commit(s) were added to refs/heads/ISIS-3171 by this push:
     new e9e2907cae ISIS-3171 fieldset title set for collections
e9e2907cae is described below

commit e9e2907caed10bd289a6296a34e27df8c9d0dab5
Author: Jörg Rade <[email protected]>
AuthorDate: Tue Feb 28 00:00:07 2023 +0100

    ISIS-3171 fieldset title set for collections
---
 .../design/collection_layout_aggregation_diagram.adoc   | 12 ++++++------
 .../kroviz/core/aggregator/CollectionAggregator.kt      |  4 ++++
 .../causeway/client/kroviz/core/model/CollectionDM.kt   |  9 +++------
 .../client/kroviz/core/model/PropertyDetails.kt         |  4 ++--
 .../org/apache/causeway/client/kroviz/to/Collection.kt  | 17 ++++++++++++++++-
 5 files changed, 31 insertions(+), 15 deletions(-)

diff --git 
a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/collection_layout_aggregation_diagram.adoc
 
b/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/collection_layout_aggregation_diagram.adoc
index 39fd4b6174..29ffeaac2f 100644
--- 
a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/collection_layout_aggregation_diagram.adoc
+++ 
b/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/collection_layout_aggregation_diagram.adoc
@@ -52,7 +52,7 @@ OC --> O : contains\nreference\nto
 O --> OLJ
 O --> OP : contains\nreference\nto
 OP -> PD : contains\nreference\nto
-PD -r-> END
+PD --> END
 
 ' references between TO classes
 GridBs o-->"0.n" Collection
@@ -78,7 +78,7 @@ together {
     ObjectAggregator --> ObjectDM
     ObjectDM --> ObjectLayout
 }
-ObjectDM <.. GridBs : added to
+ObjectLayout <.r. GridBs : added to
 
 'collection
 together {
@@ -109,17 +109,17 @@ together {
     }
     CollectionAggregator --> CollectionDM
     CollectionDM --> CollectionLayout
-    CollectionLayout o-r-> PropertyDetails
+    CollectionLayout o--> PropertyDetails
 }
-ObjectDM o-r-> CollectionDM
+ObjectDM o-> CollectionDM
 
 ' references between Layout and TO classes
 CollectionLayout <.. TObject : added to
 CollectionLayout <.. ObjectProperty : added to
-CollectionLayout <.. PropertyDescription : added to
+PropertyDetails <.. PropertyDescription : added to
 
 
-legend left
+legend top right
     <back:#lightblue> Description           </back>
     <back:#lightgreen> Party, place, thing</back>
     <back:#pink> Moment, Interval   </back>
diff --git 
a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/aggregator/CollectionAggregator.kt
 
b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/aggregator/CollectionAggregator.kt
index 2d8ba7484c..7a8a89cfb6 100644
--- 
a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/aggregator/CollectionAggregator.kt
+++ 
b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/aggregator/CollectionAggregator.kt
@@ -178,6 +178,10 @@ class CollectionAggregator(actionTitle: String, private 
val parent: ObjectAggreg
                 invoke(it, this, referrer = referrer)
             }
         }
+        if (collection.isCollectionDescription()) {
+            val title = collection.extensions.getFriendlyName()
+            getDisplayModel().title = title
+        }
         collection.value.forEach {
             invoke(it, this, referrer = referrer)
         }
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 63edeafe3e..c6681327d1 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
@@ -24,9 +24,8 @@ import org.apache.causeway.client.kroviz.to.TObject
 import org.apache.causeway.client.kroviz.to.TransferObject
 import org.apache.causeway.client.kroviz.to.bs.GridBs
 import org.apache.causeway.client.kroviz.to.bs.PropertyBs
-import org.apache.causeway.client.kroviz.utils.StringUtils
 
-class CollectionDM(override val title: String) : DisplayModelWithLayout() {
+class CollectionDM(override var title: String) : DisplayModelWithLayout() {
     val collectionLayout = CollectionLayout()
 
     var id = ""
@@ -36,9 +35,7 @@ class CollectionDM(override val title: String) : 
DisplayModelWithLayout() {
     private var protoTypeLayout: GridBs? = null
 
     fun getTitle(): String {
-        if (title.isNotEmpty()) return StringUtils.extractTitle(title)
-        if (id.isNotEmpty()) return id.uppercase()
-        return "leer"
+        return title
     }
 
     fun setProtoTypeLayout(grid: GridBs) {
@@ -70,7 +67,7 @@ class CollectionDM(override val title: String) : 
DisplayModelWithLayout() {
     }
 
     override fun readyToRender(): Boolean {
-        return id.isNotEmpty() && collectionLayout.readyToRender()
+        return collectionLayout.readyToRender()
     }
 
     override fun addData(obj: TransferObject) {
diff --git 
a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/PropertyDetails.kt
 
b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/PropertyDetails.kt
index 0f18e8e927..d11e8edf6f 100644
--- 
a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/PropertyDetails.kt
+++ 
b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/core/model/PropertyDetails.kt
@@ -39,13 +39,13 @@ class PropertyDetails(member: Member) {
 
     fun amendWith(pbs: PropertyBs) {
         name = pbs.named
-        //static analysis says pbs.hidden can't be null, but runtime proves 
the opposite
+        //static analysis pretends pbs.hidden can't be null, but runtime 
proves the opposite
         hidden = !(pbs.hidden != null && pbs.hidden.isNotEmpty())
         //This is hacky
         if (id == "sources") {
             hidden = true
         }
-        //static analysis says pbs.typicalLength  can't be null, but runtime 
proves the opposite
+        //static analysis pretends pbs.typicalLength can't be null, but 
runtime proves the opposite
         if (pbs.typicalLength != null && pbs.typicalLength > 0) {
             typicalLength = pbs.typicalLength
         }
diff --git 
a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/to/Collection.kt
 
b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/to/Collection.kt
index 9038ba44f1..a4a6acfbc4 100644
--- 
a/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/to/Collection.kt
+++ 
b/incubator/clients/kroviz/src/main/kotlin/org/apache/causeway/client/kroviz/to/Collection.kt
@@ -27,4 +27,19 @@ data class Collection(val id: String,
                       val extensions: Extensions,
                       val value: List<Link> = emptyList(),
                       val disabledReason: String = ""
-) : TransferObject, WithLinks
+) : TransferObject, WithLinks {
+
+    fun isCollectionDescription(): Boolean {
+        return getType() == Represention.COLLECTION_DESCRIPTION
+    }
+
+    private fun getType(): Represention {
+        return getSelfLink().representation()
+    }
+
+    private fun getSelfLink(): Link {
+        return links.first {
+            it.relation() == Relation.SELF
+        }
+    }
+}

Reply via email to