You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by rm...@apache.org on 2012/10/17 15:35:17 UTC

svn commit: r1399242 - /incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/Methods.java

Author: rmatthews
Date: Wed Oct 17 13:35:16 2012
New Revision: 1399242

URL: http://svn.apache.org/viewvc?rev=1399242&view=rev
Log:
ISIS-162 - methods elements can have the next view specified

Modified:
    incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/Methods.java

Modified: incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/Methods.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/Methods.java?rev=1399242&r1=1399241&r2=1399242&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/Methods.java (original)
+++ incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/Methods.java Wed Oct 17 13:35:16 2012
@@ -47,6 +47,8 @@ public class Methods extends AbstractEle
     @Override
     public void process(final Request request) {
         String objectId = request.getOptionalProperty(OBJECT);
+        final String view = request.getOptionalProperty(VIEW, "_generic_action." + Dispatcher.EXTENSION);
+        final String cancelTo = request.getOptionalProperty(CANCEL_TO);
         final boolean showForms = request.isRequested(FORMS, false);
         final ObjectAdapter object = MethodsUtils.findObject(request.getContext(), objectId);
         if (objectId == null) {
@@ -63,33 +65,48 @@ public class Methods extends AbstractEle
             request.appendHtml("<a class=\"button\" href=\"_generic_edit." + Dispatcher.EXTENSION + "?_result=" + objectId + "\">Edit...</a>");
             request.appendHtml("</div>");
         }
-        writeMethods(request, objectId, object, showForms, inclusionList, "_generic.shtml?_result=" + objectId);
+        writeMethods(request, objectId, object, showForms, inclusionList, view, "_generic.shtml?_result=" + objectId);
         request.popBlockContent();
         request.appendHtml("</div>");
     }
 
-    public static void writeMethods(final Request request, final String objectId, final ObjectAdapter adapter, final boolean showForms, final InclusionList inclusionList, final String cancelTo) {
+    public static void writeMethods(
+            final Request request,
+            final String objectId,
+            final ObjectAdapter adapter,
+            final boolean showForms,
+            final InclusionList inclusionList,
+            final String view,
+            final String cancelTo) {
         List<ObjectAction> actions = adapter.getSpecification().getObjectActions(ActionType.USER, Contributed.INCLUDED);
-        writeMethods(request, adapter, actions, objectId, showForms, inclusionList, cancelTo);
+        writeMethods(request, adapter, actions, objectId, showForms, inclusionList, view, cancelTo);
         // TODO determine if system is set up to display exploration methods
         if (true) {
             actions = adapter.getSpecification().getObjectActions(ActionType.EXPLORATION, Contributed.INCLUDED);
-            writeMethods(request, adapter, actions, objectId, showForms, inclusionList, cancelTo);
+            writeMethods(request, adapter, actions, objectId, showForms, inclusionList, view, cancelTo);
         }
         // TODO determine if system is set up to display debug methods
         if (true) {
             actions = adapter.getSpecification().getObjectActions(ActionType.DEBUG, Contributed.INCLUDED);
-            writeMethods(request, adapter, actions, objectId, showForms, inclusionList, cancelTo);
+            writeMethods(request, adapter, actions, objectId, showForms, inclusionList, view, cancelTo);
         }
     }
 
-    private static void writeMethods(final Request request, final ObjectAdapter adapter, List<ObjectAction> actions, final String objectId, final boolean showForms, final InclusionList inclusionList, final String cancelTo) {
+    private static void writeMethods(
+            final Request request,
+            final ObjectAdapter adapter,
+            List<ObjectAction> actions,
+            final String objectId,
+            final boolean showForms,
+            final InclusionList inclusionList,
+            final String view,
+            final String cancelTo) {
         actions = inclusionList.includedActions(actions);
         for (int j = 0; j < actions.size(); j++) {
             final ObjectAction action = actions.get(j);
             if (action instanceof ObjectActionSet) {
                 request.appendHtml("<div class=\"actions\">");
-                writeMethods(request, adapter, action.getActions(), objectId, showForms, inclusionList, cancelTo);
+                writeMethods(request, adapter, action.getActions(), objectId, showForms, inclusionList, view, cancelTo);
                 request.appendHtml("</div>");
             } else if (action.isContributed()) {
                 if (action.getParameterCount() == 1 && adapter.getSpecification().isOfType(action.getParameters().get(0).getSpecification())) {
@@ -97,22 +114,30 @@ public class Methods extends AbstractEle
                         final ObjectAdapter target = request.getContext().getMappedObject(objectId);
                         final ObjectAdapter realTarget = action.realTarget(target);
                         final String realTargetId = request.getContext().mapObject(realTarget, Scope.INTERACTION);
-                        writeMethod(request, adapter, new String[] { objectId }, action, realTargetId, showForms, cancelTo);
+                        writeMethod(request, adapter, new String[] { objectId }, action, realTargetId, showForms, view, cancelTo);
                     } else {
                         request.appendHtml("<div class=\"action\">");
                         request.appendAsHtmlEncoded(action.getName());
                         request.appendHtml("???</div>");
                     }
                 } else if (!adapter.getSpecification().isService()) {
-                    writeMethod(request, adapter, new String[0], action, objectId, showForms, cancelTo);
+                    writeMethod(request, adapter, new String[0], action, objectId, showForms, view, cancelTo);
                 }
             } else {
-                writeMethod(request, adapter, new String[0], action, objectId, showForms, cancelTo);
+                writeMethod(request, adapter, new String[0], action, objectId, showForms, view, cancelTo);
             }
         }
     }
 
-    private static void writeMethod(final Request request, final ObjectAdapter adapter, final String[] parameters, final ObjectAction action, final String objectId, final boolean showForms, final String cancelTo) {
+    private static void writeMethod(
+            final Request request,
+            final ObjectAdapter adapter,
+            final String[] parameters,
+            final ObjectAction action,
+            final String objectId,
+            final boolean showForms,
+            final String view,
+            final String cancelTo) {
         // if (action.isVisible(IsisContext.getSession(), null) &&
         // action.isVisible(IsisContext.getSession(), adapter))
         // {
@@ -144,22 +169,14 @@ public class Methods extends AbstractEle
                     params.forwardResultTo = "_generic." + Dispatcher.EXTENSION;
                     params.buttonTitle = "OK";
                     params.formTitle = action.getName();
-                    // parameters.resultName =
-                    // request.getOptionalProperty(RESULT_NAME);
-                    // parameters.resultOverride =
-                    // request.getOptionalProperty(RESULT_OVERRIDE);
-                    // parameters.scope = request.getOptionalProperty(SCOPE);
-                    // parameters.className = request.getOptionalProperty(CLASS,
-                    // "action");
-                    // parameters.id = request.getOptionalProperty(ID);
                     ActionForm.createForm(request, params, true);
                 } else {
-                    request.appendHtml("<a class=\"button\" href=\"_generic_action." + Dispatcher.EXTENSION + "?_result=" + objectId + "&amp;_" + VERSION + "=" + version + "&_" + METHOD + "=" + action.getId());
+                    request.appendHtml("<a class=\"button\" href=\"" + view + "?_result=" + objectId + "&amp;_" + VERSION + "=" + version + "&amp;_" + METHOD + "=" + action.getId());
                     if (cancelTo != null) {
-                        request.appendHtml("&_cancel-to=");
+                        request.appendHtml("&amp;_cancel-to=");
                         request.appendAsHtmlEncoded("cancel-to=\"" + cancelTo + "\"");
                     }
-                    request.appendHtml("\" title=" + action.getDescription() + ">");
+                    request.appendHtml("\" title=\"" + action.getDescription() + "\">");
                     request.appendAsHtmlEncoded(action.getName() + "...");
                     request.appendHtml("</a>");
                 }