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 2022/10/11 13:24:44 UTC
[isis] 12/12: ISIS-3171 'Strings' show up again
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/isis.git
commit ddeec7ef628c9b326d6900c45ae3ab495cb2aa3e
Author: Joerg Rade <jo...@kuehne-nagel.com>
AuthorDate: Tue Oct 11 15:23:53 2022 +0200
ISIS-3171 'Strings' show up again
---
.../kroviz/core/aggregator/AggregatorWithLayout.kt | 18 +++++++++--
.../kroviz/core/aggregator/CollectionAggregator.kt | 15 +--------
.../kroviz/core/aggregator/ObjectAggregator.kt | 29 +++++++++++------
.../kroviz/core/model/DisplayModelWithLayout.kt | 5 ++-
.../isis/client/kroviz/core/model/ObjectDM.kt | 37 ++--------------------
5 files changed, 43 insertions(+), 61 deletions(-)
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/AggregatorWithLayout.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/AggregatorWithLayout.kt
index 4725f23003..19e687608b 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/AggregatorWithLayout.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/AggregatorWithLayout.kt
@@ -23,8 +23,7 @@ import org.apache.isis.client.kroviz.core.event.ResourceProxy
import org.apache.isis.client.kroviz.core.model.DisplayModelWithLayout
import org.apache.isis.client.kroviz.core.model.ObjectDM
import org.apache.isis.client.kroviz.layout.Layout
-import org.apache.isis.client.kroviz.to.Represention
-import org.apache.isis.client.kroviz.to.TObject
+import org.apache.isis.client.kroviz.to.*
import org.apache.isis.client.kroviz.to.bs.Grid
import org.apache.isis.client.kroviz.ui.core.Constants
import org.apache.isis.client.kroviz.ui.diagram.Tree
@@ -66,7 +65,7 @@ abstract class AggregatorWithLayout : BaseAggregator() {
val link = it.link!!
ResourceProxy().fetch(link, this, subType = Constants.subTypeJson, referrer = referrer)
}
- //FIXME
+ //FIXME
if (dm.grid == null) {
dm.addGrid(grid)
dm.properties.propertyLayoutList.forEach { p ->
@@ -99,4 +98,17 @@ abstract class AggregatorWithLayout : BaseAggregator() {
invoke(l, aggregator, referrer = referrer)
}
+ protected fun Property.descriptionLink(): Link? {
+ return links.find {
+ it.relation() == Relation.ELEMENT_TYPE
+ }
+ }
+
+ protected fun Property.isPropertyDescription(): Boolean {
+ val selfLink = this.links.find {
+ it.relation() == Relation.SELF
+ }
+ return selfLink!!.representation() == Represention.PROPERTY_DESCRIPTION
+ }
+
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/CollectionAggregator.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/CollectionAggregator.kt
index b7b2a037e9..b1fd3c04a7 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/CollectionAggregator.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/CollectionAggregator.kt
@@ -124,7 +124,7 @@ class CollectionAggregator(actionTitle: String, val parent: ObjectAggregator? =
ResourceProxy().fetch(it, this, referrer = referrer)
}
}
- collection.value!!.forEach {
+ collection.value.forEach {
ResourceProxy().fetch(it, this, referrer = referrer)
}
}
@@ -134,17 +134,4 @@ class CollectionAggregator(actionTitle: String, val parent: ObjectAggregator? =
return this
}
- private fun Property.descriptionLink(): Link? {
- return links.find {
- it.relation() == Relation.ELEMENT_TYPE
- }
- }
-
- private fun Property.isPropertyDescription(): Boolean {
- val selfLink = this.links.find {
- it.relation() == Relation.SELF
- }
- return selfLink!!.representation() == Represention.PROPERTY_DESCRIPTION
- }
-
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/ObjectAggregator.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/ObjectAggregator.kt
index 0a6f82e0a2..3f175cc339 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/ObjectAggregator.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/ObjectAggregator.kt
@@ -50,7 +50,7 @@ class ObjectAggregator(val actionTitle: String) : AggregatorWithLayout() {
is TObject -> handleObject(obj, referrer)
is ResultObject -> handleResultObject(obj)
is ResultValue -> handleResultValue(obj)
- is Property -> handleProperty(obj)
+ is Property -> handleProperty(obj, referrer)
is Layout -> handleLayout(obj, dpm as ObjectDM, referrer)
is Grid -> handleGrid(obj, dpm as ObjectDM, referrer)
is HttpError -> ErrorDialog(logEntry).open()
@@ -74,7 +74,7 @@ class ObjectAggregator(val actionTitle: String) : AggregatorWithLayout() {
}
}
- fun handleObject(obj: TObject, referrer: String) {
+ private fun handleObject(obj: TObject, referrer: String) {
// After ~/action/invoke is called, the actual object instance (containing properties) needs to be invoked as well.
// Note that rel.self/href is identical and both are of type TObject. logEntry.url is different, though.
if (obj.getProperties().size == 0) {
@@ -95,11 +95,11 @@ class ObjectAggregator(val actionTitle: String) : AggregatorWithLayout() {
invoke(selfLink!!, this, referrer = referrer)
}
- fun handleResultObject(resultObject: ResultObject) {
+ private fun handleResultObject(resultObject: ResultObject) {
(dpm as ObjectDM).addResult(resultObject)
}
- fun handleResultValue(resultValue: ResultValue) {
+ private fun handleResultValue(resultValue: ResultValue) {
// TODO (dpm as ObjectDM).addResult(resultObject)
console.log("[OA.handleResultValue]")
console.log(resultValue)
@@ -113,16 +113,27 @@ class ObjectAggregator(val actionTitle: String) : AggregatorWithLayout() {
obj.getCollections().forEach {
val key = it.id
val aggregator = CollectionAggregator(key, this)
- collectionMap.put(key, aggregator)
+ collectionMap[key] = aggregator
val link = it.links.first()
ResourceProxy().fetch(link, aggregator, referrer = referrer)
}
}
- private fun handleProperty(property: Property) {
- console.log("[OA.handleProperty]")
- console.log(property)
-// throw Throwable("[ObjectAggregator.handleProperty] not implemented yet")
+ private fun handleProperty(p: Property, referrer: String) {
+ val dm = dpm as ObjectDM
+ if (p.isPropertyDescription()) {
+ console.log("[OA.handleProperty].isPropertyDescription")
+ dm.addPropertyDescription(p)
+ } else {
+ console.log("[OA.handleProperty].isNotPropertyDescription")
+ console.log(p)
+ console.log(dm)
+ dm.addProperty(p)
+ val pdl = p.descriptionLink()
+ if (pdl != null) {
+ invoke(pdl, this, referrer = referrer)
+ }
+ }
}
override fun reset(): ObjectAggregator {
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/DisplayModelWithLayout.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/DisplayModelWithLayout.kt
index 1be742e138..0696ff4d71 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/DisplayModelWithLayout.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/DisplayModelWithLayout.kt
@@ -36,7 +36,8 @@ abstract class DisplayModelWithLayout : BaseDisplayModel() {
override fun canBeDisplayed(): Boolean {
return when {
isRendered -> false
- layout == null && grid == null -> false
+ layout != null -> true
+ grid != null -> true
else -> properties.readyForDisplay()
}
}
@@ -47,6 +48,8 @@ abstract class DisplayModelWithLayout : BaseDisplayModel() {
}
fun addGrid(grid: Grid) {
+ console.log("[DMWL.initGrid]")
+ console.log(grid)
this.grid = grid
initPropertyGridList(grid)
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/ObjectDM.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/ObjectDM.kt
index 5874406673..7290d2ea62 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/ObjectDM.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/ObjectDM.kt
@@ -28,48 +28,17 @@ class ObjectDM(override val title: String) : DisplayModelWithLayout() {
val collections = mutableMapOf<String, CollectionDM>()
private var dirty: Boolean = false
- override fun canBeDisplayed(): Boolean {
- // debug()
- return when {
- isRendered -> false
- (layout == null) && (grid == null) -> false
- else -> true
- }
- }
-
- private fun debug() {
- console.log("[]")
- console.log("[ODM.debug] data / collections / layout / grid / properties / icon / aggregator / logEntries")
- console.log(data)
- console.log(collections)
- console.log(layout)
- console.log(grid)
- console.log(properties)
- console.log(icon)
- if (data != null) {
- val delegate = (data as Exposer).delegate
- val selfLink = delegate.getSelfLink()
- val rs = ResourceSpecification(selfLink.href)
- val es = SessionManager.getEventStore()
- val le = es.findBy(rs)!!
- val aggt = le.getAggregator()
- console.log(aggt)
- val logEntries = es.findAllBy(aggt!!)
- logEntries.forEach {
- console.log(it)
- }
- }
- }
-
fun setDirty(value: Boolean) {
dirty = value
}
fun addCollection(key: String, value: CollectionDM) {
- collections.put(key, value)
+ collections[key] = value
}
override fun addData(obj: TransferObject) {
+ console.log("[ODM.addData]")
+ console.log(obj)
(obj as TObject)
val exo = Exposer(obj)
data = exo.dynamise() as? Exposer