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 2021/07/20 09:04:57 UTC

[isis] branch master updated: ISIS-2810: some housekeeping around ObjectVisibilityContext

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


The following commit(s) were added to refs/heads/master by this push:
     new fcc6a3a  ISIS-2810: some housekeeping around ObjectVisibilityContext
fcc6a3a is described below

commit fcc6a3a882e54e3834f098f07b0196052c94d07a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Jul 20 11:04:42 2021 +0200

    ISIS-2810: some housekeeping around ObjectVisibilityContext
---
 .../metamodel/interactions/ObjectVisibilityContext.java   |  4 ++--
 .../navigation/NavigationFacetDerivedFromHiddenType.java  | 13 ++++++++++---
 .../apache/isis/core/metamodel/spec/ManagedObjects.java   |  7 ++++---
 .../ajaxtable/CollectionContentsSortableDataProvider.java | 15 +++++++++------
 4 files changed, 25 insertions(+), 14 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectVisibilityContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectVisibilityContext.java
index 44d7e66..5e7be40 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectVisibilityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectVisibilityContext.java
@@ -36,14 +36,14 @@ extends VisibilityContext
 implements ProposedHolder {
 
     public ObjectVisibilityContext(
-            final ManagedObject targetAdapter,
+            final InteractionHead head,
             final Identifier identifier,
             final InteractionInitiatedBy interactionInitiatedBy,
             final Where where) {
 
         super(
                 InteractionContextType.OBJECT_VISIBILITY,
-                InteractionHead.regular(targetAdapter), identifier, interactionInitiatedBy, where);
+                head, identifier, interactionInitiatedBy, where);
     }
 
     @Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/members/navigation/NavigationFacetDerivedFromHiddenType.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/members/navigation/NavigationFacetDerivedFromHiddenType.java
index 9f00db2..a8222c5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/members/navigation/NavigationFacetDerivedFromHiddenType.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/members/navigation/NavigationFacetDerivedFromHiddenType.java
@@ -31,7 +31,10 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 import lombok.val;
 
-public class NavigationFacetDerivedFromHiddenType extends FacetAbstract implements NavigationFacet {
+public class NavigationFacetDerivedFromHiddenType
+extends FacetAbstract
+implements
+    NavigationFacet {
 
     private final ObjectSpecification navigatedType;
 
@@ -52,8 +55,12 @@ public class NavigationFacetDerivedFromHiddenType extends FacetAbstract implemen
             // that navigate to a class that has the HiddenTypeFacet
             return null;
         }
-        val ovc = new ObjectVisibilityContext(ic.getHead().getOwner(), Identifier.classIdentifier(navigatedType.getLogicalType()), ic.getInitiatedBy(), ic.getWhere());
-        final String hides = facet.hides(ovc);
+        val objVisibilityContext = new ObjectVisibilityContext(
+                ic.getHead(),
+                Identifier.classIdentifier(navigatedType.getLogicalType()),
+                ic.getInitiatedBy(),
+                ic.getWhere());
+        final String hides = facet.hides(objVisibilityContext);
         return hides;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
index 020f69b..ff6998e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
@@ -57,6 +57,7 @@ import org.apache.isis.core.metamodel.facets.collections.CollectionFacet;
 import org.apache.isis.core.metamodel.facets.object.entity.EntityFacet;
 import org.apache.isis.core.metamodel.facets.object.entity.PersistenceStandard;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.interactions.InteractionUtils;
 import org.apache.isis.core.metamodel.interactions.ObjectVisibilityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
@@ -778,13 +779,13 @@ public final class ManagedObjects {
         }
 
         private static VisibilityContext createVisibleInteractionContext(
-                final ManagedObject adapter,
+                final ManagedObject objectAdapter,
                 final InteractionInitiatedBy interactionInitiatedBy,
                 final Where where) {
 
             return new ObjectVisibilityContext(
-                    adapter,
-                    adapter.getSpecification().getFeatureIdentifier(),
+                    InteractionHead.regular(objectAdapter),
+                    objectAdapter.getSpecification().getFeatureIdentifier(),
                     interactionInitiatedBy,
                     where);
         }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
index d0a1443..ce3cb13 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
@@ -33,6 +33,7 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResult;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.interactions.InteractionUtils;
 import org.apache.isis.core.metamodel.interactions.ObjectVisibilityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
@@ -58,7 +59,7 @@ public class CollectionContentsSortableDataProvider extends SortableDataProvider
     }
 
     @Override
-    public IModel<ManagedObject> model(ManagedObject adapter) {
+    public IModel<ManagedObject> model(final ManagedObject adapter) {
         return EntityModel.ofAdapter(model.getCommonContext(), adapter);
     }
 
@@ -133,19 +134,21 @@ public class CollectionContentsSortableDataProvider extends SortableDataProvider
     private Predicate<ManagedObject> ignoreHidden() {
         return new Predicate<ManagedObject>() {
             @Override
-            public boolean test(ManagedObject input) {
+            public boolean test(final ManagedObject objectAdapter) {
                 final InteractionResult visibleResult =
                         InteractionUtils.isVisibleResult(
-                                input.getSpecification(),
-                                createVisibleInteractionContext(input));
+                                objectAdapter.getSpecification(),
+                                createVisibleInteractionContext(objectAdapter));
                 return visibleResult.isNotVetoing();
             }
         };
     }
 
-    private VisibilityContext createVisibleInteractionContext(ManagedObject objectAdapter) {
+    private VisibilityContext createVisibleInteractionContext(final ManagedObject objectAdapter) {
         return new ObjectVisibilityContext(
-                objectAdapter, objectAdapter.getSpecification().getFeatureIdentifier(), InteractionInitiatedBy.USER,
+                InteractionHead.regular(objectAdapter),
+                objectAdapter.getSpecification().getFeatureIdentifier(),
+                InteractionInitiatedBy.USER,
                 Where.ALL_TABLES);
     }