You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/05/15 05:47:22 UTC
[isis] 01/02: ISIS-2340: more cleanup
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit e6fd864a9d4ace2739df64f9d3c639d94d8bef31
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri May 15 07:41:48 2020 +0200
ISIS-2340: more cleanup
---
.../wicket/model/models/ManagedObjectModel.java | 26 ++++++++++++++++------
.../viewer/wicket/model/models/ScalarModel.java | 25 ---------------------
2 files changed, 19 insertions(+), 32 deletions(-)
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ManagedObjectModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ManagedObjectModel.java
index 6926687..3fed95f 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ManagedObjectModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ManagedObjectModel.java
@@ -26,6 +26,7 @@ import javax.annotation.Nullable;
import org.apache.isis.applib.annotation.BookmarkPolicy;
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.core.commons.internal.base._Casts;
+import org.apache.isis.core.commons.internal.collections._Collections;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -81,17 +82,28 @@ extends ModelAbstract<ManagedObject> {
super.setObject(adapter);
- if(adapter.getSpecification().isParentedOrFreeCollection()) {
- val pojo = adapter.getPojo();
- memento = super.getMementoService()
- .mementoForPojos(_Casts.uncheckedCast(pojo), getTypeOfSpecificationId()
- .orElseGet(()->adapter.getElementSpecification().get().getSpecId()));
+ if(_Collections.isCollectionOrArrayOrCanType(adapter.getPojo().getClass())) {
+ setObjectCollection(adapter);
} else {
-
memento = super.getMementoService().mementoForObject(adapter);
}
}
+ public void setObjectCollection(final ManagedObject adapter) {
+
+ if(ManagedObject.isNullOrUnspecifiedOrEmpty(adapter)) {
+ super.setObject(null);
+ return;
+ }
+
+ super.setObject(adapter);
+
+ val pojos = adapter.getPojo();
+ memento = super.getMementoService()
+ .mementoForPojos(_Casts.uncheckedCast(pojos), getTypeOfSpecificationId()
+ .orElseGet(()->adapter.getElementSpecification().get().getSpecId()));
+ }
+
public final Bookmark asHintingBookmarkIfSupported() {
return memento!=null
? memento.asHintingBookmarkIfSupported()
@@ -112,7 +124,7 @@ extends ModelAbstract<ManagedObject> {
/**
* free of side-effects, used for serialization
- * @implNote overriding this must be consistent with {@link #getTypeOfSpecificationId()}
+ * @implNote overriding this must be consistent with {@link #getTypeOfSpecification()}
*/
public Optional<ObjectSpecId> getTypeOfSpecificationId() {
return Optional.ofNullable(memento)
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index 6d0274e..3781359 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -176,29 +176,6 @@ implements ScalarUiModel, LinksProvider, FormExecutorContext {
return adapter.titleString(null);
}
- @Override
- public void setObject(ManagedObject adapter) {
- if(adapter == null) {
- super.setObject(null);
- return;
- }
-
- final Object pojo = adapter.getPojo();
- if(pojo == null) {
- super.setObject(null);
- return;
- }
-
- if(isCollection()) {
- val memento = super.getMementoService()
- .mementoForPojos(_Casts.uncheckedCast(pojo), getTypeOfSpecification().getSpecId());
-
- super.memento(memento); // associated value
- } else {
- super.setObject(adapter); // associated value
- }
- }
-
public void setObjectAsString(final String enteredText) {
// parse text to get adapter
ParseableFacet parseableFacet = getTypeOfSpecification().getFacet(ParseableFacet.class);
@@ -223,8 +200,6 @@ implements ScalarUiModel, LinksProvider, FormExecutorContext {
setPending(memento);
}
}
-
-
public boolean whetherHidden() {
final Where where = getRenderingHint().asWhere();