You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2012/09/12 01:26:19 UTC

svn commit: r1383658 - in /incubator/isis/trunk/framework: core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ viewer/wicket/wicket-mode...

Author: danhaywood
Date: Tue Sep 11 23:26:19 2012
New Revision: 1383658

URL: http://svn.apache.org/viewvc?rev=1383658&view=rev
Log:
ISIS-232: action param dialog for non-contributed actions

* was suppressing if 1-param matching type of entity, even if not contributed
* also, prevent defaulting of first param for non-contributed actions

Modified:
    incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java
    incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ActionParameterMemento.java
    incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
    incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/util/Actions.java
    incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java

Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java?rev=1383658&r1=1383657&r2=1383658&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java Tue Sep 11 23:26:19 2012
@@ -220,11 +220,24 @@ public class ObjectActionImpl extends Ob
 
     @Override
     public boolean promptForParameters(final ObjectAdapter target) {
-        final List<ObjectActionParameter> parameters = getParameters();
-        if (isContributed() && !target.getSpecification().isService()) {
-            return getParameterCount() > 1 || !target.getSpecification().isOfType(parameters.get(0).getSpecification());
-        } else {
-            return getParameterCount() > 0;
+        switch(getParameterCount()) {
+            case 0:
+                return false;
+            case 1:
+                if(!isContributed()) {
+                    return true;
+                }
+                if(target == null) {
+                    return true;
+                }
+                if (target.getSpecification().isService()) {
+                    return true;
+                }
+                final ObjectSpecification targetSpec = target.getSpecification();
+                final ObjectSpecification param0Spec = getParameters().get(0).getSpecification();
+                return !targetSpec.isOfType(param0Spec);
+            default:
+                return true;
         }
     }
 

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ActionParameterMemento.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ActionParameterMemento.java?rev=1383658&r1=1383657&r2=1383658&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ActionParameterMemento.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ActionParameterMemento.java Tue Sep 11 23:26:19 2012
@@ -26,7 +26,7 @@ import org.apache.isis.core.metamodel.sp
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
 
 /**
- * {@link Serializable} representation of a {@link ObjectActioneter parameter}
+ * {@link Serializable} representation of a {@link ObjectActionParameter parameter}
  * of a {@link ObjecObjectAction}.
  * 
  * @see ActionMemento

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java?rev=1383658&r1=1383657&r2=1383658&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java Tue Sep 11 23:26:19 2012
@@ -125,27 +125,20 @@ public class ActionModel extends ModelAb
         return pageParameters;
     }
 
-    private static Mode determineActionMode(final ObjectAction noAction, final ObjectAdapter contextAdapter) {
-        final int parameterCount = noAction.getParameterCount();
-        if (parameterCount == 0) {
-            return Mode.RESULTS;
-        }
-        if (parameterCount > 1) {
-            return Mode.PARAMETERS;
-        }
-        // no need to prompt for contributed actions (ie if have a context
-        // adapter)
-        final ObjectActionParameter actionParam = noAction.getParameters().get(0);
-        return ActionParams.compatibleWith(contextAdapter, actionParam) ? Mode.RESULTS : Mode.PARAMETERS;
+    private static Mode determineActionMode(final ObjectAction objectAction, final ObjectAdapter contextAdapter) {
+        return objectAction.promptForParameters(contextAdapter)?Mode.PARAMETERS:Mode.RESULTS;
     }
+    
 
-
-	private static void addActionParamContextIfPossible(final ObjectAction noAction, final ObjectAdapter contextAdapter, final PageParameters pageParameters) {
+	private static void addActionParamContextIfPossible(final ObjectAction objectAction, final ObjectAdapter contextAdapter, final PageParameters pageParameters) {
         if (contextAdapter == null) {
             return;
         }
+        if(!objectAction.isContributed()) {
+            return;
+        }
         int i = 0;
-        for (final ObjectActionParameter actionParam : noAction.getParameters()) {
+        for (final ObjectActionParameter actionParam : objectAction.getParameters()) {
             if (ActionParams.compatibleWith(contextAdapter, actionParam)) {
                 final String oidKeyValue = "" + i + "=" + contextAdapter.getOid().enString(getOidMarshaller());
                 PageParameterNames.ACTION_PARAM_CONTEXT.addTo(pageParameters, oidKeyValue);

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/util/Actions.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/util/Actions.java?rev=1383658&r1=1383657&r2=1383658&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/util/Actions.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/util/Actions.java Tue Sep 11 23:26:19 2012
@@ -41,23 +41,17 @@ public final class Actions {
         };
     }
 
-    public static String labelFor(final ObjectAction noAction) {
-        final String actionName = Actions.nameFor(noAction);
+    public static String labelFor(final ObjectAction objectAction) {
+        final String actionName = Actions.nameFor(objectAction);
         String actionLabel = actionName;
-        if (noAction.getParameterCount() > 0) {
+        if (objectAction.getParameterCount() > 0) {
             actionLabel += "...";
         }
         return actionLabel;
     }
 
     public static String labelFor(final ObjectAction action, final ObjectAdapter contextAdapter) {
-        if (action.getParameterCount() == 1) {
-            final ObjectActionParameter actionParam = action.getParameters().get(0);
-            if (ActionParams.compatibleWith(contextAdapter, actionParam)) {
-                return nameFor(action);
-            }
-        }
-        return labelFor(action);
+        return action.promptForParameters(contextAdapter) ? labelFor(action) : nameFor(action);
     }
 
     private static String nameFor(final ObjectAction noAction) {

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java?rev=1383658&r1=1383657&r2=1383658&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java Tue Sep 11 23:26:19 2012
@@ -35,7 +35,6 @@ import org.apache.wicket.Page;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.SubmitLink;
 import org.apache.wicket.markup.html.link.AbstractLink;
-import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.model.Model;
 
 import org.apache.isis.applib.annotation.Where;