This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch v3
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/v3 by this push:
     new 18f5a5702b4 CAUSEWAY-3815: implements column action specific routing
18f5a5702b4 is described below

commit 18f5a5702b4698c12d38a088b824caa184b46e28
Author: Andi Huber <[email protected]>
AuthorDate: Tue Nov 26 19:43:29 2024 +0100

    CAUSEWAY-3815: implements column action specific routing
---
 .../core/config/CausewayConfiguration.java         |   4 +-
 .../viewer/wicket/model/models/ActionModel.java    |   9 ++
 .../wicket/model/models/ActionResultModel.java     |  10 +-
 .../ui/actionresponse/ActionResultResponse.java    | 134 ++++-----------------
 .../ActionResultResponseHandlingStrategy.java      |  36 +++---
 .../ui/actionresponse/PageRedirectRequest.java     |  35 +++---
 .../wicket/ui/actionresponse/_ResponseUtil.java    |  26 ++--
 .../components/widgets/actionlink/ActionLink.java  |   6 +-
 .../wicket/ui/pages/obj/DomainObjectPage.java      |   2 +-
 .../wicket/ui/panels/FormExecutorDefault.java      |   2 +-
 10 files changed, 91 insertions(+), 173 deletions(-)

diff --git 
a/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
 
b/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
index 32514d54a9d..5ddd1695251 100644
--- 
a/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
+++ 
b/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
@@ -2923,10 +2923,8 @@ public class CausewayConfiguration {
              * That is, collections of domain objects are presented in the UI 
as tables,
              * where corresponding domain object actions are gathered into an 
additional
              * (typically trailing) column (labeled 'action-column').
-             * <p>
-             * Defaults to disabled, while we are still working on this 
feature [CAUSEWAY-3815].
              */
-            private boolean actionColumnEnabled = false;
+            private boolean actionColumnEnabled = true;
 
             /**
              * Whether actions, that on click will show a dialog,
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ActionModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ActionModel.java
index 0d30b76e485..bf2d9d9981e 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ActionModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ActionModel.java
@@ -65,8 +65,17 @@ implements UiActionForm, FormExecutorContext, 
BookmarkableModel, IModel<ManagedO
      * @since CAUSEWAY-3815
      */
     public enum ColumnActionModifier {
+        /**
+         * don't interfere with the default action result route
+         */
         NONE,
+        /**
+         * reload current page, irrespective of the action result
+         */
         FORCE_STAY_ON_PAGE,
+        /**
+         * open the action result in a new (blank) browser tab or window
+         */
         FORCE_NEW_BROWSER_WINDOW;
         public boolean isNone() { return this == NONE; }
         public boolean isForceStayOnPage() { return this == 
FORCE_STAY_ON_PAGE; }
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ActionResultModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ActionResultModel.java
index a87fed774f0..e25eb956a48 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ActionResultModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ActionResultModel.java
@@ -30,15 +30,11 @@ import 
org.apache.causeway.core.metamodel.object.PackedManagedObject;
 import 
org.apache.causeway.core.security.authentication.logout.LogoutMenu.LoginRedirect;
 import 
org.apache.causeway.viewer.wicket.model.models.FormExecutor.ActionResultResponseType;
 
-import lombok.AllArgsConstructor;
-import lombok.Getter;
 import lombok.NonNull;
-import lombok.experimental.Accessors;
 
-@AllArgsConstructor @Getter @Accessors(fluent=true) //java record candidate
-public class ActionResultModel {
-    private final ActionResultResponseType responseType;
-    private final ManagedObject resultAdapter;
+public record ActionResultModel(
+    ActionResultResponseType responseType,
+    ManagedObject resultAdapter) {
 
     public static ActionResultModel determineFor(
             @NonNull final ActionModel actionModel,
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/ActionResultResponse.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/ActionResultResponse.java
index 6f106bbbb33..48d15dd054c 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/ActionResultResponse.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/ActionResultResponse.java
@@ -20,7 +20,6 @@ package org.apache.causeway.viewer.wicket.ui.actionresponse;
 
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.request.IRequestHandler;
-import org.apache.wicket.request.cycle.RequestCycle;
 
 import org.springframework.lang.Nullable;
 
@@ -29,7 +28,6 @@ import 
org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.viewer.wicket.model.models.ActionModel;
 import org.apache.causeway.viewer.wicket.ui.pages.obj.DomainObjectPage;
 
-import lombok.Getter;
 import lombok.NonNull;
 
 /**
@@ -38,14 +36,30 @@ import lombok.NonNull;
  * {@link #withHandler(IRequestHandler) redirect} to a
  * handler (eg a download).
  */
-public class ActionResultResponse {
-
-    @Getter
-    private final ActionResultResponseHandlingStrategy handlingStrategy;
-    private final IRequestHandler handler;
-    private final PageRedirectRequest<?> pageRedirect;
-    private final AjaxRequestTarget target;
-    private final String url;
+public record ActionResultResponse(
+    ActionResultResponseHandlingStrategy handlingStrategy,
+    /**
+     * Populated only if {@link #handlingStrategy()}
+     * is {@link ActionResultResponseHandlingStrategy#SCHEDULE_HANDLER}
+     */
+    IRequestHandler handler,
+    /**
+     * Populated only if {@link #handlingStrategy()}
+     * is {@link ActionResultResponseHandlingStrategy#REDIRECT_TO_PAGE}
+     */
+    PageRedirectRequest<?> pageRedirect,
+    /**
+     * Populated only if {@link #handlingStrategy()} is
+     * either {@link 
ActionResultResponseHandlingStrategy#OPEN_URL_IN_NEW_BROWSER_WINDOW}
+     * or {@link 
ActionResultResponseHandlingStrategy#OPEN_URL_IN_SAME_BROWSER_WINDOW}
+     */
+    AjaxRequestTarget ajaxTarget,
+    /**
+     * Populated only if {@link #handlingStrategy()} is
+     * either {@link 
ActionResultResponseHandlingStrategy#OPEN_URL_IN_NEW_BROWSER_WINDOW}
+     * or {@link 
ActionResultResponseHandlingStrategy#OPEN_URL_IN_SAME_BROWSER_WINDOW}
+     */
+    String url) {
 
     public static ActionResultResponse toDomainObjectPage(final @NonNull 
ManagedObject entityOrViewmodel) {
         var pageRedirectRequest = PageRedirectRequest.forPageClassAndBookmark(
@@ -71,109 +85,13 @@ public class ActionResultResponse {
     }
 
     static ActionResultResponse openUrlInBrowser(
-            final AjaxRequestTarget target,
+            final AjaxRequestTarget ajaxTarget,
             final String url,
             final @NonNull OpenUrlStrategy openUrlStrategy) {
         return new ActionResultResponse(
                 openUrlStrategy.isNewWindow()
                     ? 
ActionResultResponseHandlingStrategy.OPEN_URL_IN_NEW_BROWSER_WINDOW
                     : 
ActionResultResponseHandlingStrategy.OPEN_URL_IN_SAME_BROWSER_WINDOW,
-                null, null, target, url);
-    }
-
-    ActionResultResponse(
-            final ActionResultResponseHandlingStrategy strategy,
-            final IRequestHandler handler,
-            final PageRedirectRequest<?> pageRedirect,
-            final AjaxRequestTarget target,
-            final String url) {
-        this.handlingStrategy = strategy;
-        this.handler = handler;
-        this.pageRedirect = pageRedirect;
-        this.target = target;
-        this.url = url;
-    }
-
-    //TODO[CAUSEWAY-3815] WIP should create URL from current page then open in 
new browser
-    ActionResultResponse withForceNewBrowserWindow() {
-        var url = this.url!=null
-                ? this.url
-                : RequestCycle.get().getRequest().getOriginalUrl().toString();
-
-        return new ActionResultResponse(
-                
ActionResultResponseHandlingStrategy.OPEN_URL_IN_NEW_BROWSER_WINDOW,
-                handler, pageRedirect, target, url);
-    }
-
-    //TODO[CAUSEWAY-3815] WIP should force reload the entire page (or do a 
proper partial page update (AJAX) of the originating table)
-    ActionResultResponse withForceReload() {
-        return this;
-    }
-
-    /**
-     * Populated only if {@link #getHandlingStrategy() handling strategy}
-     * is {@link ActionResultResponseHandlingStrategy#SCHEDULE_HANDLER}
-     */
-    public IRequestHandler getHandler() {
-        return handler;
+                null, null, ajaxTarget, url);
     }
-
-    /**
-     * Populated only if {@link #getHandlingStrategy() handling strategy}
-     * is {@link ActionResultResponseHandlingStrategy#REDIRECT_TO_PAGE}
-     */
-    public PageRedirectRequest<?> getPageRedirect() {
-        return pageRedirect;
-    }
-
-    /**
-     * Populated only if {@link #getHandlingStrategy() handling strategy} is
-     * either {@link 
ActionResultResponseHandlingStrategy#OPEN_URL_IN_NEW_BROWSER_WINDOW}
-     * or {@link 
ActionResultResponseHandlingStrategy#OPEN_URL_IN_SAME_BROWSER_WINDOW}
-     */
-    public AjaxRequestTarget getAjaxTarget() {
-        return target;
-    }
-
-    /**
-     * Populated only if {@link #getHandlingStrategy() handling strategy} is
-     * either {@link 
ActionResultResponseHandlingStrategy#OPEN_URL_IN_NEW_BROWSER_WINDOW}
-     * or {@link 
ActionResultResponseHandlingStrategy#OPEN_URL_IN_SAME_BROWSER_WINDOW}
-     */
-    public String getUrl() {
-        return url;
-    }
-
-    @Override
-    public String toString() {
-        return String.format("ActionResultResponse["
-                + "handlingStrategy=%s,"
-                + "requestHandler=%s,"
-                + "pageRedirect=%s,"
-                + "ajaxTarget=%s,"
-                + "url=%s"
-                + "]",
-                handlingStrategy.name(),
-                handler,
-                pageRedirect,
-                target,
-                url);
-    }
-
-    /** introduced for debugging */
-    public String toStringMultiline() {
-        return String.format("ActionResultResponse {\n"
-                + "\thandlingStrategy=%s,\n"
-                + "\trequestHandler=%s,\n"
-                + "\tpageRedirect=%s,\n"
-                + "\tajaxTarget=%s,\n"
-                + "\turl=%s\n"
-                + "}",
-                handlingStrategy.name(),
-                handler,
-                pageRedirect,
-                target,
-                url);
-    }
-
 }
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/ActionResultResponseHandlingStrategy.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/ActionResultResponseHandlingStrategy.java
index 79360117321..97f4a606b5d 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/ActionResultResponseHandlingStrategy.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/ActionResultResponseHandlingStrategy.java
@@ -21,7 +21,6 @@ package org.apache.causeway.viewer.wicket.ui.actionresponse;
 import java.time.Duration;
 
 import org.apache.wicket.Component;
-import org.apache.wicket.Page;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.behavior.AbstractAjaxBehavior;
 import org.apache.wicket.request.IRequestHandler;
@@ -58,7 +57,7 @@ public enum ActionResultResponseHandlingStrategy {
             
MetaModelContext.instance().ifPresent(mmc->mmc.getTransactionService().flushTransaction());
 
             // "redirect-after-post"
-            resultResponse.getPageRedirect().applyTo(RequestCycle.get());
+            resultResponse.pageRedirect().apply();
         }
     },
     SCHEDULE_HANDLER {
@@ -67,34 +66,31 @@ public enum ActionResultResponseHandlingStrategy {
                 final ActionResultResponse resultResponse) {
 
             final RequestCycle requestCycle = RequestCycle.get();
-            AjaxRequestTarget target = 
requestCycle.find(AjaxRequestTarget.class).orElse(null);
+            var ajaxTarget = 
requestCycle.find(AjaxRequestTarget.class).orElse(null);
 
-            if (target == null) {
+            if (ajaxTarget == null) {
                 // non-Ajax request => just stream the Lob to the browser
                 // or if this is a no-arg action, there also will be no parent 
for the component
-                
requestCycle.scheduleRequestHandlerAfterCurrent(resultResponse.getHandler());
+                
requestCycle.scheduleRequestHandlerAfterCurrent(resultResponse.handler());
             } else {
                 // otherwise,
                 // Ajax request => respond with a redirect to be able to 
stream the Lob to the client
-                final IRequestHandler requestHandler = 
resultResponse.getHandler();
-                if(requestHandler instanceof ResourceStreamRequestHandler) {
-                    ResourceStreamRequestHandler scheduledHandler = 
(ResourceStreamRequestHandler) requestHandler;
-                    StreamAfterAjaxResponseBehavior streamingBehavior = new 
StreamAfterAjaxResponseBehavior(scheduledHandler);
-                    final Page page = target.getPage();
+                final IRequestHandler requestHandler = 
resultResponse.handler();
+                if(requestHandler instanceof ResourceStreamRequestHandler 
scheduledHandler) {
+                    var streamingBehavior = new 
StreamAfterAjaxResponseBehavior(scheduledHandler);
+                    var page = ajaxTarget.getPage();
                     page.add(streamingBehavior);
                     CharSequence callbackUrl = 
streamingBehavior.getCallbackUrl();
-                    scheduleJs(target, javascriptFor_sameWindow(callbackUrl), 
10);
-                } else if(requestHandler instanceof 
RedirectRequestHandlerWithOpenUrlStrategy) {
-                    final RedirectRequestHandlerWithOpenUrlStrategy 
redirectHandler =
-                            (RedirectRequestHandlerWithOpenUrlStrategy) 
requestHandler;
+                    scheduleJs(ajaxTarget, 
javascriptFor_sameWindow(callbackUrl), 10);
+                } else if(requestHandler instanceof 
RedirectRequestHandlerWithOpenUrlStrategy redirectHandler) {
 
                     final String url = redirectHandler.getRedirectUrl();
                     final String fullUrl = expanded(requestCycle, url);
 
                     if(redirectHandler.getOpenUrlStrategy().isNewWindow()) {
-                        scheduleJs(target, javascriptFor_newWindow(fullUrl), 
100);
+                        scheduleJs(ajaxTarget, 
javascriptFor_newWindow(fullUrl), 100);
                     } else {
-                        scheduleJs(target, javascriptFor_sameWindow(fullUrl), 
100);
+                        scheduleJs(ajaxTarget, 
javascriptFor_sameWindow(fullUrl), 100);
                     }
                 } else {
                     throw _Exceptions.unrecoverable(
@@ -110,11 +106,11 @@ public enum ActionResultResponseHandlingStrategy {
         public void handleResults(
                 final ActionResultResponse resultResponse) {
 
-            final String url = resultResponse.getUrl();
+            final String url = resultResponse.url();
             final RequestCycle requestCycle = RequestCycle.get();
             final String fullUrl = expanded(requestCycle, url);
 
-            scheduleJs(resultResponse.getAjaxTarget(), 
javascriptFor_newWindow(fullUrl), 100);
+            scheduleJs(resultResponse.ajaxTarget(), 
javascriptFor_newWindow(fullUrl), 100);
         }
     },
     OPEN_URL_IN_SAME_BROWSER_WINDOW {
@@ -122,11 +118,11 @@ public enum ActionResultResponseHandlingStrategy {
         public void handleResults(
                 final ActionResultResponse resultResponse) {
 
-            final String url = resultResponse.getUrl();
+            final String url = resultResponse.url();
             final RequestCycle requestCycle = RequestCycle.get();
             final String fullUrl = expanded(requestCycle, url);
 
-            scheduleJs(resultResponse.getAjaxTarget(), 
javascriptFor_sameWindow(fullUrl), 100);
+            scheduleJs(resultResponse.ajaxTarget(), 
javascriptFor_sameWindow(fullUrl), 100);
         }
     };
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/PageRedirectRequest.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/PageRedirectRequest.java
index 50a68bdb888..ca919cb6367 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/PageRedirectRequest.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/PageRedirectRequest.java
@@ -18,6 +18,8 @@
  */
 package org.apache.causeway.viewer.wicket.ui.actionresponse;
 
+import org.apache.wicket.core.request.handler.BookmarkablePageRequestHandler;
+import org.apache.wicket.core.request.handler.PageProvider;
 import org.apache.wicket.request.component.IRequestablePage;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
@@ -27,16 +29,12 @@ import org.springframework.lang.Nullable;
 import org.apache.causeway.applib.services.bookmark.Bookmark;
 import org.apache.causeway.viewer.wicket.model.util.PageParameterUtils;
 
-import lombok.AccessLevel;
-import lombok.AllArgsConstructor;
 import lombok.NonNull;
 
-@AllArgsConstructor(access = AccessLevel.PRIVATE)
-public class PageRedirectRequest<T extends IRequestablePage> {
-
-    private final @NonNull Class<T> pageClass;
-    private final @Nullable PageParameters pageParameters;
-    private final @Nullable IRequestablePage pageInstance;
+public record PageRedirectRequest<T extends IRequestablePage>(
+    @NonNull Class<T> pageClass,
+    @Nullable PageParameters pageParameters,
+    @Nullable IRequestablePage pageInstance) {
 
     public static <T extends IRequestablePage> PageRedirectRequest<T> 
forPageClass(
             final @NonNull Class<T> pageClass,
@@ -63,11 +61,16 @@ public class PageRedirectRequest<T extends 
IRequestablePage> {
         return new PageRedirectRequest<>(pageClass, null, pageInstance);
     }
 
-    public void applyTo(
-            final @Nullable RequestCycle requestCycle) {
-        if(requestCycle==null) {
-            return;
-        }
+    public String toUrl() {
+        var handler = new BookmarkablePageRequestHandler(
+                new PageProvider(pageClass, pageParameters));
+        return RequestCycle.get().urlFor(handler)
+            .toString();
+    }
+
+    public void apply() {
+        var requestCycle = RequestCycle.get();
+        if(requestCycle==null) return;
         if(pageParameters!=null) {
             requestCycle.setResponsePage(pageClass, pageParameters);
             return;
@@ -79,10 +82,4 @@ public class PageRedirectRequest<T extends IRequestablePage> 
{
         requestCycle.setResponsePage(pageClass);
     }
 
-    @Override
-    public String toString() {
-        return 
String.format("PageRedirectRequest[pageClass=%s,pageParameters=%s]",
-                pageClass.getName(), pageParameters);
-    }
-
 }
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/_ResponseUtil.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/_ResponseUtil.java
index d877eb2e91c..e1c4b89e874 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/_ResponseUtil.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/_ResponseUtil.java
@@ -62,17 +62,21 @@ class _ResponseUtil {
         var actionResultModel = ActionResultModel.determineFor(actionModel, 
resultAdapterIfAny, ajaxTarget);
         var response = actionResultResponse(actionModel, ajaxTarget, 
actionResultModel);
 
-        // honor any modifiers
-        switch(actionModel.columnActionModifier()) {
-        case NONE:
-            return response;
-        case FORCE_STAY_ON_PAGE:
-            return response.withForceReload();
-        case FORCE_NEW_BROWSER_WINDOW:
-            return response.withForceNewBrowserWindow();
-        default:
-            throw 
_Exceptions.unmatchedCase(actionModel.columnActionModifier());
-        }
+        //TODO[causeway-viewer-wicket-ui-3815] handling only if we have a page 
redirect, other cases ignored (eg. download action)
+        return response.pageRedirect()!=null
+            ? switch (actionModel.columnActionModifier()) {
+                // identity op
+                case NONE -> response;
+                // force full page reload
+                case FORCE_STAY_ON_PAGE -> new ActionResultResponse(
+                    
ActionResultResponseHandlingStrategy.OPEN_URL_IN_SAME_BROWSER_WINDOW,
+                    null, null, ajaxTarget, response.pageRedirect().toUrl()); 
// page redirect should point to current page
+                // open result page in new browser tab/win
+                case FORCE_NEW_BROWSER_WINDOW -> new ActionResultResponse(
+                    
ActionResultResponseHandlingStrategy.OPEN_URL_IN_NEW_BROWSER_WINDOW,
+                    null, null, ajaxTarget, response.pageRedirect().toUrl()); 
// page redirect should point to action result
+                }
+            : response;
     }
 
     // -- HELPER
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/actionlink/ActionLink.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/actionlink/ActionLink.java
index c4895ab5b18..2c7f50a165c 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/actionlink/ActionLink.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/actionlink/ActionLink.java
@@ -164,7 +164,7 @@ implements HasMetaModelContext, Menuable, HasManagedAction {
     }
 
     @Override
-    public void onClick(final AjaxRequestTarget target) {
+    public void onClick(final AjaxRequestTarget ajaxTarget) {
 
         _Probe.entryPoint(EntryPoint.USER_INTERACTION, "Wicket Ajax Request, "
                 + "originating from User clicking an Action Link.");
@@ -175,13 +175,13 @@ implements HasMetaModelContext, Menuable, 
HasManagedAction {
                 || actionModel.getInlinePromptContext() == null) {
 
             if(actionModel.hasParameters()) {
-                startDialogWithParams(target);
+                startDialogWithParams(ajaxTarget);
             } else {
                 executeWithoutParams();
             }
 
         } else {
-            startDialogInline(target);
+            startDialogInline(ajaxTarget);
         }
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/obj/DomainObjectPage.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/obj/DomainObjectPage.java
index d978cb1f3bb..c88bbc70bf9 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/obj/DomainObjectPage.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/obj/DomainObjectPage.java
@@ -61,7 +61,7 @@ public class DomainObjectPage extends PageAbstract {
     private static final long serialVersionUID = 144368606134796079L;
 
     private static final String ID_DOMAIN_OBJECT_CONTAINER = 
"domainObjectContainer";
-    private static final String ID_DOMAIN_OBJECT = "domainObject";
+    private static final String ID_DOMAIN_OBJECT = 
UiComponentType.DOMAIN_OBJECT.getId();
     private static final String ID_WHEREAMI_CONTAINER = "whereAmI-container";
     private static final String ID_WHEREAMI_ITEMS = "whereAmI-items";
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/panels/FormExecutorDefault.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/panels/FormExecutorDefault.java
index e0a02dba7d0..7d7638b7819 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/panels/FormExecutorDefault.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/panels/FormExecutorDefault.java
@@ -130,7 +130,7 @@ implements FormExecutor, HasCommonContext {
             // redirect using associated strategy
             // XXX note: on property edit, triggers SQL update (on JPA)
             resultResponse
-                .getHandlingStrategy()
+                .handlingStrategy()
                 .handleResults(resultResponse);
 
             return FormExecutionOutcome.SUCCESS_AND_REDIRECED_TO_RESULT_PAGE; 
// success (valid args), allow redirect

Reply via email to