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 2020/05/04 13:45:13 UTC

[isis] 03/03: ISIS-2319: simplify ActionModel (make #getActionMemento() private)

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 841ab08956cd044939eb38d6d914f3cd01a0be30
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon May 4 15:44:56 2020 +0200

    ISIS-2319: simplify ActionModel (make #getActionMemento() private)
---
 ...pendentArgsActionDemo_useDefaultFixedPoint.java | 27 ++++++++++++++++++----
 .../viewer/wicket/model/models/ActionModel.java    |  4 ++--
 .../ui/components/actioninfo/ActionInfoPanel.java  |  3 +--
 .../ui/components/actionlink/ActionLinkPanel.java  |  2 +-
 .../actionlink/ActionLinkPanelFactory.java         |  2 +-
 .../actionprompt/ActionPromptHeaderPanel.java      |  4 ++--
 .../components/actions/ActionParametersForm.java   | 12 +++++-----
 .../actions/ActionParametersFormPanel.java         |  2 +-
 .../components/actions/ActionParametersPanel.java  |  2 +-
 .../components/scalars/ScalarPanelAbstract2.java   |  4 ++--
 .../StandaloneCollectionPanel.java                 |  2 +-
 .../widgets/linkandlabel/ActionLink.java           |  7 +++---
 .../linkandlabel/LinkAndLabelFactoryAbstract.java  |  4 ++--
 .../ui/pages/actionprompt/ActionPromptPage.java    |  6 ++---
 .../StandaloneCollectionPage.java                  |  2 +-
 .../viewer/wicket/ui/pages/value/ValuePage.java    |  2 +-
 .../wicket/ui/pages/voidreturn/VoidReturnPage.java |  2 +-
 .../wicket/ui/panels/FormExecutorDefault.java      |  2 +-
 18 files changed, 52 insertions(+), 37 deletions(-)

diff --git a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useDefaultFixedPoint.java b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useDefaultFixedPoint.java
index 405f07c..e535e9e 100644
--- a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useDefaultFixedPoint.java
+++ b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useDefaultFixedPoint.java
@@ -26,6 +26,7 @@ import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.services.message.MessageService;
+import org.apache.isis.core.commons.internal.debug._Probe;
 import org.apache.isis.incubator.model.applib.annotation.Model;
 
 import lombok.RequiredArgsConstructor;
@@ -77,23 +78,39 @@ public class DependentArgsActionDemo_useDefaultFixedPoint {
 
     @Model
     public int default0Act(Parameters params) {
+        _Probe.sysOut("p0: %d %d %d %d", params.a, params.b, params.c, params.d);
         return 1;
     }
-
+    
+    // -- PARAM 1
+    
     @Model
     public int default1Act(Parameters params) {
+        _Probe.sysOut("p1: %d %d %d %d", params.a, params.b, params.c, params.d);
         return params.a() + 1;
     }
     
-    @Model
-    public int default2Act(Parameters params) {
-        return params.b() + 1;
-    }
+    // -- PARAM 2
+    
+//    @Model
+//    public int default2Act(Parameters params) {
+//        _Probe.sysOut("p2: %d %d %d %d", params.a, params.b, params.c, params.d);
+//        return params.b() + 1;
+//    }
+    
+    // -- PARAM 3
     
     @Model
     public int default3Act(Parameters params) {
+        _Probe.sysOut("p3: %d %d %d %d", params.a, params.b, params.c, params.d);
         return params.c() + 1;
     }
 
+    
+    
+    
+    
+
+
 }
 
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index e9e5003..2d18f61 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -313,7 +313,7 @@ public class ActionModel extends BookmarkableModel<ManagedObject> implements For
         }
     }
 
-    private ObjectAction getAction() {
+    public ObjectAction getAction() {
         return getActionMemento().getAction(getSpecificationLoader());
     }
 
@@ -389,7 +389,7 @@ public class ActionModel extends BookmarkableModel<ManagedObject> implements For
         return entityModel.load();
     }
 
-    public ActionMemento getActionMemento() {
+    private ActionMemento getActionMemento() {
         return actionMemento;
     }
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actioninfo/ActionInfoPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actioninfo/ActionInfoPanel.java
index b1e440a..7f052fa 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actioninfo/ActionInfoPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actioninfo/ActionInfoPanel.java
@@ -21,7 +21,6 @@ package org.apache.isis.viewer.wicket.ui.components.actioninfo;
 
 import org.apache.wicket.markup.html.basic.Label;
 
-import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.viewer.wicket.model.models.ActionModel;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
 
@@ -41,7 +40,7 @@ public class ActionInfoPanel extends PanelAbstract<ActionModel> {
         super(id, actionModel);
 
         val targetAdapter = getModel().getTargetAdapter();
-        final ObjectAction objectAction = getModel().getActionMemento().getAction(getModel().getSpecificationLoader());
+        val objectAction = getModel().getAction();
 
         // TODO: render instead as links (providing isn't a service; provide a
         // component for this?)
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionlink/ActionLinkPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionlink/ActionLinkPanel.java
index 59a93c4..12a5ca6 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionlink/ActionLinkPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionlink/ActionLinkPanel.java
@@ -79,7 +79,7 @@ public class ActionLinkPanel extends PanelAbstract<ActionModel> {
     }
 
     private String determineTitle() {
-        return getModel().getActionMemento().getAction(getSpecificationLoader()).getId();
+        return getModel().getAction().getId();
     }
 
     private AbstractLink newLink(final String linkId, final Class<? extends Page> pageClass, final PageParameters pageParameters) {
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionlink/ActionLinkPanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionlink/ActionLinkPanelFactory.java
index c7a906f..6119e1c 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionlink/ActionLinkPanelFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionlink/ActionLinkPanelFactory.java
@@ -45,7 +45,7 @@ public class ActionLinkPanelFactory extends ComponentFactoryAbstract {
             return ApplicationAdvice.DOES_NOT_APPLY;
         }
         final ActionModel actionModel = (ActionModel) model;
-        final SemanticsOf semantics = actionModel.getActionMemento().getAction(actionModel.getSpecificationLoader()).getSemantics();
+        final SemanticsOf semantics = actionModel.getAction().getSemantics();
         return ApplicationAdvice.appliesIf(semantics.isSafeInNature());
     }
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptHeaderPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptHeaderPanel.java
index 501c460..0d918eb 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptHeaderPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptHeaderPanel.java
@@ -48,12 +48,12 @@ public class ActionPromptHeaderPanel extends PanelAbstract<ActionModel> {
             private static final long serialVersionUID = 1L;
             @Override
             public String getObject() {
-                final ObjectAction action = model.getActionMemento().getAction(getSpecificationLoader());
+                final ObjectAction action = model.getAction();
                 return action.getName();
             }
         });
 
-        final ObjectAction action = model.getActionMemento().getAction(getSpecificationLoader());
+        final ObjectAction action = model.getAction();
         NamedFacet namedFacet = action.getFacet(NamedFacet.class);
         if (namedFacet != null) {
             label.setEscapeModelStrings(namedFacet.escaped());
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java
index 693d9e4..8e375cd 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java
@@ -77,7 +77,7 @@ class ActionParametersForm extends PromptFormAbstract<ActionModel> {
             
             val actionArgumentModel = argsAndConsents.getActionArgumentModel(); 
             val visibilityConsent = argsAndConsents.getVisibilityConsent();
-            val usabilityConsent = argsAndConsents.getVisibilityConsent();
+            val usabilityConsent = argsAndConsents.getUsabilityConsent();
             
             val container = new WebMarkupContainer(repeatingView.newChildId());
             repeatingView.add(container);
@@ -98,14 +98,14 @@ class ActionParametersForm extends PromptFormAbstract<ActionModel> {
 
     private Optional<ScalarPanelAbstract2> newParamPanel(
             final WebMarkupContainer container, 
-            final ActionArgumentModel model) {
+            final ActionArgumentModel actionArgumentModel) {
         
         final Component component = getComponentFactoryRegistry()
-                .addOrReplaceComponent(container, ComponentType.SCALAR_NAME_AND_VALUE, model);
+                .addOrReplaceComponent(container, ComponentType.SCALAR_NAME_AND_VALUE, actionArgumentModel);
 
         if(component instanceof MarkupContainer) {
             val markupContainer = (MarkupContainer) component;
-            val css = model.getCssClass();
+            val css = actionArgumentModel.getCssClass();
             CssClassAppender.appendCssClassTo(markupContainer, CssClassAppender.asCssStyle(css));
         }
         
@@ -139,7 +139,7 @@ class ActionParametersForm extends PromptFormAbstract<ActionModel> {
      */
     private void applyAreYouSure(AjaxButton button) {
         val actionModel = getActionModel();
-        val action = actionModel.getActionMemento().getAction(getSpecificationLoader());
+        val action = actionModel.getAction();
         
         if (action.getSemantics().isAreYouSure()) {
             val confirmUiModel = ConfirmUiModel.ofAreYouSure(getTranslationService(), Placement.RIGHT);
@@ -156,7 +156,7 @@ class ActionParametersForm extends PromptFormAbstract<ActionModel> {
         
         final int paramNumberUpdated = paramModel.getParameterMemento().getNumber();
         
-        val action = actionModel.getActionMemento().getAction(getSpecificationLoader());
+        val action = actionModel.getAction();
 
         final int numParams = action.getParameterCount();
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
index b9b49b3..b06d4eb 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
@@ -51,7 +51,7 @@ public class ActionParametersFormPanel extends PromptFormPanelAbstract<ActionMod
         final ActionParametersForm inputForm =
                 new ActionParametersForm("inputForm", this, this.getWicketViewerSettings(), model);
 
-        final ObjectAction action = model.getActionMemento().getAction(getSpecificationLoader());
+        final ObjectAction action = model.getAction();
         CssClassAppender.appendCssClassTo(inputForm, "isis-" + CssClassAppender.asCssStyle(action.getOnType().getSpecId().asString().replace(".","-") + "-" + action.getId()));
         add(inputForm);
     }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersPanel.java
index 51fca20..c0bf71a 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersPanel.java
@@ -97,7 +97,7 @@ public class ActionParametersPanel extends PanelAbstract<ActionModel> {
             getComponentFactoryRegistry().addOrReplaceComponent(header, ComponentType.ENTITY_ICON_AND_TITLE, actionModel
                     .getParentEntityModel());
 
-            final String actionName = getActionModel().getActionMemento().getAction(actionModel.getSpecificationLoader()).getName();
+            final String actionName = getActionModel().getAction().getName();
             header.add(new Label(ID_ACTION_NAME, Model.of(actionName)));
 
         } 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index e1e9eba..3473d3c 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -133,10 +133,10 @@ implements ScalarModelSubscriber2 {
     public Repaint updateIfNecessary(
             final ActionModel actionModel,
             final int paramNumUpdated,
-            final int paramNumToPossiblyUpdate,//FIXME I guess we need to re-rerender all not just the next
+            final int paramNumToPossiblyUpdate,
             final AjaxRequestTarget target) {
 
-        final ObjectAction action = actionModel.getActionMemento().getAction(getSpecificationLoader());
+        final ObjectAction action = actionModel.getAction();
         final PendingParameterModel pendingArguments = actionModel.getArgumentsAsParamModel();
         final Can<ManagedObject> pendingArgumentsReadonly = pendingArguments.getParamValues();
         
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java
index 60d962e..ec25d2d 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java
@@ -63,7 +63,7 @@ implements CollectionCountProvider, CollectionSelectorProvider {
         addOrReplace(outerDiv);
 
         ActionModel actionModel = entityCollectionModel.getActionModelHint();
-        ObjectAction action = actionModel.getActionMemento().getAction(entityCollectionModel.getSpecificationLoader());
+        ObjectAction action = actionModel.getAction();
         outerDiv.addOrReplace(new Label(StandaloneCollectionPanel.ID_ACTION_NAME, Model.of(action.getName())));
 
         CssClassAppender.appendCssClassTo(outerDiv,
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java
index 5c9b8cc..777845b 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java
@@ -34,11 +34,11 @@ import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.value.LocalResourcePath;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettingsAccessor;
 import org.apache.isis.viewer.wicket.model.models.ActionModel;
 import org.apache.isis.viewer.wicket.ui.panels.PanelUtil;
-import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
 
 import lombok.Getter;
 import lombok.val;
@@ -111,7 +111,7 @@ public abstract class ActionLink extends AjaxLink<ManagedObject> implements IAja
     public ObjectAction getObjectAction() {
         return objectAction != null
                 ? objectAction
-                        : (objectAction = getActionModel().getActionMemento().getAction(commonContext.getSpecificationLoader()));
+                        : (objectAction = getActionModel().getAction());
     }
 
 
@@ -261,8 +261,7 @@ public abstract class ActionLink extends AjaxLink<ManagedObject> implements IAja
     }
 
     private static boolean isIdempotentOrCachable(ActionModel actionModel) {
-        final ObjectAction objectAction = actionModel.getActionMemento()
-                .getAction(actionModel.getSpecificationLoader());
+        val objectAction = actionModel.getAction();
         return ObjectAction.Util.isIdempotentOrCachable(objectAction);
     }
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/LinkAndLabelFactoryAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/LinkAndLabelFactoryAbstract.java
index 7df11070..543864f 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/LinkAndLabelFactoryAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/LinkAndLabelFactoryAbstract.java
@@ -182,7 +182,7 @@ implements Serializable {
                     private static final long serialVersionUID = 1L;
                     @Override
                     public String getObject() {
-                        final ObjectAction action = actionModel.getActionMemento().getAction(getSpecificationLoader());
+                        final ObjectAction action = actionModel.getAction();
                         return action.getName();
                     }
                 });
@@ -195,7 +195,7 @@ implements Serializable {
                     final ActionPromptWithExtraContent promptWithExtraContent =
                             (ActionPromptWithExtraContent) prompt;
 
-                    final ObjectAction action = actionModel.getActionMemento().getAction(getSpecificationLoader());
+                    final ObjectAction action = actionModel.getAction();
                     if(action instanceof ObjectActionMixedIn) {
                         final ObjectActionMixedIn actionMixedIn = (ObjectActionMixedIn) action;
                         final ObjectSpecification mixinSpec = actionMixedIn.getMixinType();
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/actionprompt/ActionPromptPage.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/actionprompt/ActionPromptPage.java
index f7ab184..029fcf6 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/actionprompt/ActionPromptPage.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/actionprompt/ActionPromptPage.java
@@ -22,10 +22,10 @@ package org.apache.isis.viewer.wicket.ui.pages.actionprompt;
 import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 
+import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
 import org.apache.isis.viewer.wicket.model.models.ActionModel;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
 import org.apache.isis.viewer.wicket.ui.pages.PageAbstract;
-import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
 
 import lombok.val;
 
@@ -40,7 +40,7 @@ public class ActionPromptPage extends PageAbstract {
     public ActionPromptPage(final ActionModel model) {
         super(
                 new PageParameters(), 
-                model.getActionMemento().getAction(model.getSpecificationLoader()).getName(), 
+                model.getAction().getName(), 
                 ComponentType.ACTION_PROMPT);
         
         addChildComponents(themeDiv, model);
@@ -63,7 +63,7 @@ public class ActionPromptPage extends PageAbstract {
     }
 
     public ActionPromptPage(final PageParameters pageParameters, final ActionModel model) {
-        super(pageParameters, model.getActionMemento().getAction(model.getSpecificationLoader()).getName(), ComponentType.ACTION_PROMPT);
+        super(pageParameters, model.getAction().getName(), ComponentType.ACTION_PROMPT);
         addChildComponents(themeDiv, model);
 
         // no need to bookmark because the ActionParametersPanel will have done so for us
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/standalonecollection/StandaloneCollectionPage.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/standalonecollection/StandaloneCollectionPage.java
index f57659d..7e49f86 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/standalonecollection/StandaloneCollectionPage.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/standalonecollection/StandaloneCollectionPage.java
@@ -49,7 +49,7 @@ public class StandaloneCollectionPage extends PageAbstract {
     private static String actionNameFrom(final EntityCollectionModel model) {
         ActionModel actionModel = model.getActionModelHint();
         if(actionModel != null) {
-            return actionModel.getActionMemento().getAction(actionModel.getSpecificationLoader()).getName();
+            return actionModel.getAction().getName();
         }
         return "Results"; // fallback, probably not required because hint should always exist on the model.
     }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/value/ValuePage.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/value/ValuePage.java
index 7c34d66..e2efc18 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/value/ValuePage.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/value/ValuePage.java
@@ -62,7 +62,7 @@ public class ValuePage extends PageAbstract {
     private static String actionNameFrom(final ValueModel valueModel) {
         ActionModel actionModel = valueModel.getActionModelHint();
         if(actionModel != null) {
-            return actionModel.getActionMemento().getAction(valueModel.getSpecificationLoader()).getName();
+            return actionModel.getAction().getName();
         }
         return "Results"; // fallback, probably not required because hint should always exist on the model.
     }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/voidreturn/VoidReturnPage.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/voidreturn/VoidReturnPage.java
index 3e57cf8..f086cc2 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/voidreturn/VoidReturnPage.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/voidreturn/VoidReturnPage.java
@@ -55,7 +55,7 @@ public class VoidReturnPage extends PageAbstract {
     private static String actionNameFrom(final VoidModel model) {
         ActionModel actionModel = model.getActionModelHint();
         if(actionModel != null) {
-            return actionModel.getActionMemento().getAction(model.getSpecificationLoader()).getName();
+            return actionModel.getAction().getName();
         }
         return "Results"; // fallback, probably not required because hint should always exist on the model.
     }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
index e5008a1..a419889 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
@@ -169,7 +169,7 @@ implements FormExecutor {
             RedirectFacet redirectFacet = null;
             if(model instanceof ActionModel) {
                 final ActionModel actionModel = (ActionModel) model;
-                redirectFacet = actionModel.getActionMemento().getAction(getSpecificationLoader()).getFacet(RedirectFacet.class);
+                redirectFacet = actionModel.getAction().getFacet(RedirectFacet.class);
             }
 
             if (shouldRedirect(targetAdapter, resultAdapter, redirectFacet)