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 2018/02/24 22:34:06 UTC

[isis] 07/07: ISIS 1880 establish redirect behavior for LocalResourcePath

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 165067af6873dd38d83025397846d62de3047a67
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat Feb 24 23:33:34 2018 +0100

    ISIS 1880 establish redirect behavior for LocalResourcePath
    
    adapting the behavior as already available for the URL value type
---
 .../org/apache/isis/viewer/wicket/model/models/ActionModel.java    | 5 +++++
 .../wicket/ui/components/widgets/linkandlabel/ActionLink.java      | 7 ++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index 6f12439..d25dc0b 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -48,6 +48,7 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.routing.RoutingService;
 import org.apache.isis.applib.value.Blob;
 import org.apache.isis.applib.value.Clob;
+import org.apache.isis.applib.value.LocalResourcePath;
 import org.apache.isis.applib.value.NamedWithMimeType;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
@@ -578,6 +579,10 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> implements For
             final java.net.URL url = (java.net.URL) value;
             return new RedirectRequestHandler(url.toString());
         }
+        if(value instanceof LocalResourcePath) {
+            final LocalResourcePath localResourcePath = (LocalResourcePath) value;
+            return new RedirectRequestHandler(localResourcePath.getPath());
+        }
         return null;
     }
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java
index e31cb74..df3c2e0 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java
@@ -32,6 +32,7 @@ import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler;
 import org.apache.wicket.util.time.Duration;
 
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.value.LocalResourcePath;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -255,7 +256,11 @@ public abstract class ActionLink extends AjaxLink<ObjectAdapter> implements IAja
     private static boolean isNoArgReturnTypeRedirect(final ObjectAction action) {
         return action.getParameterCount() == 0 &&
                 action.getReturnType() != null &&
-                action.getReturnType().getCorrespondingClass() == java.net.URL.class;
+                (
+                		action.getReturnType().getCorrespondingClass() == java.net.URL.class ||
+                		action.getReturnType().getCorrespondingClass() == LocalResourcePath.class
+                )
+                ;
     }
 
     // TODO: should unify with ActionResultResponseType (as used in ActionParametersPanel)

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.