Skip to content

Commit f99ed18

Browse files
committed
CAUSEWAY-3998: refactors to a mixin, lookup bookmark
1 parent 7bd38dd commit f99ed18

1 file changed

Lines changed: 15 additions & 6 deletions

File tree

  • extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay

extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import org.apache.causeway.applib.annotation.Where;
4545
import org.apache.causeway.applib.jaxb.JavaTimeXMLGregorianCalendarMarshalling;
4646
import org.apache.causeway.applib.services.bookmark.Bookmark;
47+
import org.apache.causeway.applib.services.bookmark.BookmarkService;
4748
import org.apache.causeway.applib.services.command.CommandExecutorService.InteractionContextPolicy;
4849
import org.apache.causeway.commons.functional.Try;
4950
import org.apache.causeway.commons.internal.base._Refs.ObjectReference;
@@ -63,6 +64,7 @@
6364
import org.springframework.transaction.annotation.Propagation;
6465

6566
import lombok.AllArgsConstructor;
67+
import lombok.RequiredArgsConstructor;
6668
import lombok.Value;
6769
import lombok.experimental.Accessors;
6870

@@ -216,14 +218,21 @@ public String getTargetId() {
216218

217219
@Action(semantics = SemanticsOf.SAFE)
218220
@ActionLayout(
219-
associateWith = "targetType", sequence = "1",
220221
cssClassFa = "fa-bullseye"
221222
)
222-
public Object openTarget() {
223-
return commandLogEntry().map(CommandLogEntry::getTarget).orElse(null);
224-
}
225-
@MemberSupport public String disableOpenTarget() {
226-
return commandLogEntry().isPresent() ? null : "Unknown target";
223+
public class openTarget {
224+
225+
@MemberSupport public Object act() {
226+
return commandLogEntry()
227+
.map(CommandLogEntry::getTarget)
228+
.flatMap(bookmark -> bookmarkService.lookup(bookmark))
229+
.orElse(null);
230+
}
231+
@MemberSupport public String disableAct() {
232+
return commandLogEntry().isPresent() ? null : "Unknown target";
233+
}
234+
235+
@Inject BookmarkService bookmarkService;
227236
}
228237

229238

0 commit comments

Comments
 (0)