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;