You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by mg...@apache.org on 2015/12/25 14:08:59 UTC

[44/50] isis git commit: ISIS-1243: minor refactoring in EntityPage to reuse utility method in ObjectAdapter.Util.

ISIS-1243: minor refactoring in EntityPage to reuse utility method in ObjectAdapter.Util.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/ffb1e543
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/ffb1e543
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/ffb1e543

Branch: refs/heads/ISIS-1223-upgrade-to-wicket-7
Commit: ffb1e543e45581c9bf0eb04bc12bc30cadf12c3c
Parents: 2161161
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Dec 23 15:00:28 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Dec 23 15:00:28 2015 +0000

----------------------------------------------------------------------
 .../core/metamodel/adapter/ObjectAdapter.java   | 18 ++++++++-----
 .../wicket/ui/pages/entity/EntityPage.java      | 27 +++-----------------
 2 files changed, 14 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/ffb1e543/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
index 68e59b5..d3c6cbf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
@@ -336,18 +336,22 @@ public interface ObjectAdapter extends Instance, org.apache.isis.applib.annotati
                 return false;
             }
             if(interactionInitiatedBy == InteractionInitiatedBy.FRAMEWORK) { return true; }
+            return isVisibleForUser(adapter);
+        }
+
+        private static boolean isVisibleForUser(final ObjectAdapter adapter) {
+            final VisibilityContext<?> context = createVisibleInteractionContextForUser(adapter);
             final ObjectSpecification objectSpecification = adapter.getSpecification();
-            final VisibilityContext<?> context = createVisibleInteractionContext(adapter,
-                    interactionInitiatedBy);
-            InteractionResult visibleResult = InteractionUtils.isVisibleResult(objectSpecification, context);
+            final InteractionResult visibleResult = InteractionUtils.isVisibleResult(objectSpecification, context);
             return visibleResult.isNotVetoing();
         }
 
-        private static VisibilityContext<?> createVisibleInteractionContext(
-                final ObjectAdapter objectAdapter,
-                final InteractionInitiatedBy interactionInitiatedBy) {
+        private static VisibilityContext<?> createVisibleInteractionContextForUser(
+                final ObjectAdapter objectAdapter) {
             return new ObjectVisibilityContext(
-                    objectAdapter, objectAdapter.getSpecification().getIdentifier(), interactionInitiatedBy,
+                    objectAdapter,
+                    objectAdapter.getSpecification().getIdentifier(),
+                    InteractionInitiatedBy.USER,
                     Where.OBJECT_FORMS);
         }
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/ffb1e543/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
index dbc1f7d..acc3a36 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
@@ -29,17 +29,11 @@ import org.apache.wicket.model.AbstractReadOnlyModel;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.Strings;
 
-import org.apache.isis.applib.Identifier;
-import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.consent.InteractionResult;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
-import org.apache.isis.core.metamodel.interactions.InteractionUtils;
-import org.apache.isis.core.metamodel.interactions.ObjectVisibilityContext;
-import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 import org.apache.isis.core.runtime.system.DeploymentType;
 import org.apache.isis.core.runtime.system.context.IsisContext;
@@ -130,11 +124,13 @@ public class EntityPage extends PageAbstract {
         }
 
         // check that the entity overall can be viewed.
-        if(!isVisible(objectAdapter)) {
+        if(!ObjectAdapter.Util.isVisible(objectAdapter, InteractionInitiatedBy.USER)) {
             throw new ObjectMember.AuthorizationException();
         }
 
 
+
+
         // the next bit is a work-around for JRebel integration...
         // ... even though the IsisJRebelPlugin calls invalidateCache, it seems that there is 
         // some caching elsewhere in the Wicket viewer meaning that stale metadata is referenced.
@@ -174,23 +170,6 @@ public class EntityPage extends PageAbstract {
         send(this, Broadcast.BREADTH, new IsisUiHintEvent(entityModel, null));
     }
 
-    private boolean isVisible(final ObjectAdapter input) {
-        final InteractionResult visibleResult =
-                InteractionUtils.isVisibleResult(input.getSpecification(), createVisibleInteractionContext(input
-        ));
-        return visibleResult.isNotVetoing();
-    }
-
-    private VisibilityContext<?> createVisibleInteractionContext(
-            final ObjectAdapter objectAdapter) {
-        final Identifier identifier = objectAdapter.getSpecification().getIdentifier();
-        return new ObjectVisibilityContext(
-                objectAdapter, identifier, InteractionInitiatedBy.USER,
-                Where.OBJECT_FORMS);
-    }
-
-
-
     private void addBreadcrumb(final EntityModel entityModel) {
         final BreadcrumbModelProvider session = (BreadcrumbModelProvider) getSession();
         final BreadcrumbModel breadcrumbModel = session.getBreadcrumbModel();