You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2026/05/06 20:43:51 UTC

(causeway) branch CAUSEWAY-3998 updated: CAUSEWAY-3998: refactors to a mixin, lookup bookmark

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

danhaywood pushed a commit to branch CAUSEWAY-3998
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/CAUSEWAY-3998 by this push:
     new f99ed18d31e CAUSEWAY-3998: refactors to a mixin, lookup bookmark
f99ed18d31e is described below

commit f99ed18d31eda8b8dc50782db0968ddd0955c588
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Wed May 6 21:43:43 2026 +0100

    CAUSEWAY-3998: refactors to a mixin, lookup bookmark
---
 .../applib/dom/replay/ReplayableCommand.java        | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand.java b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand.java
index 0056acce118..2e85359fbec 100644
--- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand.java
+++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand.java
@@ -44,6 +44,7 @@
 import org.apache.causeway.applib.annotation.Where;
 import org.apache.causeway.applib.jaxb.JavaTimeXMLGregorianCalendarMarshalling;
 import org.apache.causeway.applib.services.bookmark.Bookmark;
+import org.apache.causeway.applib.services.bookmark.BookmarkService;
 import org.apache.causeway.applib.services.command.CommandExecutorService.InteractionContextPolicy;
 import org.apache.causeway.commons.functional.Try;
 import org.apache.causeway.commons.internal.base._Refs.ObjectReference;
@@ -63,6 +64,7 @@
 import org.springframework.transaction.annotation.Propagation;
 
 import lombok.AllArgsConstructor;
+import lombok.RequiredArgsConstructor;
 import lombok.Value;
 import lombok.experimental.Accessors;
 
@@ -216,14 +218,21 @@ public String getTargetId() {
 
     @Action(semantics = SemanticsOf.SAFE)
     @ActionLayout(
-            associateWith = "targetType", sequence = "1",
             cssClassFa = "fa-bullseye"
     )
-    public Object openTarget() {
-        return commandLogEntry().map(CommandLogEntry::getTarget).orElse(null);
-    }
-    @MemberSupport public String disableOpenTarget() {
-        return commandLogEntry().isPresent() ? null : "Unknown target";
+    public class openTarget {
+
+        @MemberSupport public Object act() {
+            return commandLogEntry()
+                    .map(CommandLogEntry::getTarget)
+                    .flatMap(bookmark -> bookmarkService.lookup(bookmark))
+                    .orElse(null);
+        }
+        @MemberSupport public String disableAct() {
+            return commandLogEntry().isPresent() ? null : "Unknown target";
+        }
+
+        @Inject BookmarkService bookmarkService;
     }