You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by ah...@apache.org on 2026/01/21 17:10:46 UTC
(causeway) 01/01: CAUSEWAY-3961: fixes Actions in Tables have wrong Result Routing
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch 3961-row.action.routing
in repository https://gitbox.apache.org/repos/asf/causeway.git
commit 795af3b4f0b1ca1ce8ea874899684dd3e9d432cb
Author: andi-huber <ah...@apache.org>
AuthorDate: Wed Jan 21 18:10:33 2026 +0100
CAUSEWAY-3961: fixes Actions in Tables have wrong Result Routing
Task-Url: https://issues.apache.org/jira/browse/CAUSEWAY-3961
---
.../causeway/viewer/wicket/ui/exec/Mediator.java | 2 +-
.../viewer/wicket/ui/exec/PageRedirectRequest.java | 18 ++++++++++++++----
2 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/exec/Mediator.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/exec/Mediator.java
index 428181c499a..8b5f99f06ac 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/exec/Mediator.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/exec/Mediator.java
@@ -71,7 +71,7 @@ enum ExecutionResultHandlingStrategy {
}
static Mediator toDomainObjectPage(final @NonNull ManagedObject entityOrViewmodel) {
- var pageRedirectRequest = PageRedirectRequest.forPageClassAndBookmark(
+ var pageRedirectRequest = PageRedirectRequest.forBookmark(
DomainObjectPage.class, entityOrViewmodel.refreshBookmark().orElseThrow());
return Mediator.toPage(pageRedirectRequest);
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/exec/PageRedirectRequest.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/exec/PageRedirectRequest.java
index 9f2d98c9764..d5f29a9e6fc 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/exec/PageRedirectRequest.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/exec/PageRedirectRequest.java
@@ -34,16 +34,16 @@ record PageRedirectRequest<T extends IRequestablePage>(
@Nullable PageParameters pageParameters,
@Nullable IRequestablePage pageInstance) {
- static <T extends IRequestablePage> PageRedirectRequest<T> forPageClass(
+ static <T extends IRequestablePage> PageRedirectRequest<T> forPageParameters(
final @NonNull Class<T> pageClass,
final @NonNull PageParameters pageParameters) {
return new PageRedirectRequest<>(pageClass, pageParameters, null);
}
- static <T extends IRequestablePage> PageRedirectRequest<T> forPageClassAndBookmark(
+ static <T extends IRequestablePage> PageRedirectRequest<T> forBookmark(
final @NonNull Class<T> pageClass,
final @NonNull Bookmark bookmark) {
- return forPageClass(
+ return forPageParameters(
pageClass,
PageParameterUtils.createPageParametersForBookmark(bookmark));
}
@@ -59,9 +59,19 @@ static <T extends IRequestablePage> PageRedirectRequest<T> forPage(
return new PageRedirectRequest<>(pageClass, null, pageInstance);
}
+ /**
+ * Relative page URL, honors either {@link #pageParameters} as directly given
+ * or indirectly from the {@link #pageInstance} if present.
+ * If neither is present, params are <code>null</code>.
+ */
String toUrl() {
+ var pageParametersIfAny = pageParameters!=null
+ ? pageParameters
+ : pageInstance!=null
+ ? pageInstance.getPageParameters()
+ : null;
var handler = new BookmarkablePageRequestHandler(
- new PageProvider(pageClass, pageParameters));
+ new PageProvider(pageClass, pageParametersIfAny));
return RequestCycle.get().urlFor(handler)
.toString();
}