Skip to content

Commit 7bd38dd

Browse files
committed
CAUSEWAY-3998: adds openTarget to ReplayableCommand
1 parent dd57db1 commit 7bd38dd

2 files changed

Lines changed: 20 additions & 2 deletions

File tree

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

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,18 @@
2929
import javax.inject.Named;
3030

3131
import org.apache.causeway.applib.ViewModel;
32+
import org.apache.causeway.applib.annotation.Action;
33+
import org.apache.causeway.applib.annotation.ActionLayout;
3234
import org.apache.causeway.applib.annotation.DomainObject;
3335
import org.apache.causeway.applib.annotation.DomainObjectLayout;
3436
import org.apache.causeway.applib.annotation.Introspection;
3537
import org.apache.causeway.applib.annotation.LabelPosition;
38+
import org.apache.causeway.applib.annotation.MemberSupport;
3639
import org.apache.causeway.applib.annotation.ObjectSupport;
3740
import org.apache.causeway.applib.annotation.Programmatic;
3841
import org.apache.causeway.applib.annotation.Property;
3942
import org.apache.causeway.applib.annotation.PropertyLayout;
43+
import org.apache.causeway.applib.annotation.SemanticsOf;
4044
import org.apache.causeway.applib.annotation.Where;
4145
import org.apache.causeway.applib.jaxb.JavaTimeXMLGregorianCalendarMarshalling;
4246
import org.apache.causeway.applib.services.bookmark.Bookmark;
@@ -210,6 +214,19 @@ public String getTargetId() {
210214
.orElse(null);
211215
}
212216

217+
@Action(semantics = SemanticsOf.SAFE)
218+
@ActionLayout(
219+
associateWith = "targetType", sequence = "1",
220+
cssClassFa = "fa-bullseye"
221+
)
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";
227+
}
228+
229+
213230
@Property
214231
@PropertyLayout(
215232
sequence = "3.1",
@@ -341,7 +358,7 @@ Try<ReplayableCommand> tryReplayOrRetry() {
341358
// if nothing to do, return with an 'empty success'
342359
.orElseGet(()->Try.success(null));
343360
}
344-
361+
345362
String disableReplayOrRetry() {
346363
return commandRecord()
347364
.map(CommandRecord::canReplayOrRetryOrMarkForExclusion)
@@ -351,7 +368,7 @@ String disableReplayOrRetry() {
351368
}
352369

353370
// -- HELPER
354-
371+
355372

356373
/**
357374
* Replays given command in its own transaction and handles {@link ReplayState} transition to

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
</bs:tab>
3838
</bs:tabGroup>
3939
<cpt:fieldSet name="Target" id="target">
40+
<cpt:action id="target" position="PANEL"/>
4041
<cpt:property id="targetType"/>
4142
<cpt:property id="targetId"/>
4243
<cpt:property id="member"/>

0 commit comments

Comments
 (0)