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
+ }
+ }
+}