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

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

commit 0c626367dbd696a47644ef5ff96b3b339169fc82
Author: danhaywood <[email protected]>
AuthorDate: Mon Apr 3 08:07:37 2023 +0100

    CAUSEWAY-2485: updates @DomainObject#xxxDomainEvent
---
 .../DomainObjectXxxDomainEventPage-description.adoc  |  9 ++++++---
 .../DomainObjectXxxDomainEventPage.java              | 20 ++++++++++----------
 .../DomainObjectXxxDomainEventPage.layout.xml        | 10 +++++++---
 ...ObjectXxxDomainEventPage_updateTextViaMixin.java} |  2 +-
 4 files changed, 24 insertions(+), 17 deletions(-)

diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage-description.adoc
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage-description.adoc
index 7f436d8809..60ecdd5796 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage-description.adoc
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage-description.adoc
@@ -35,14 +35,16 @@ include::DomainObjectXxxDomainEventPage.java[tags=class]
 <.> the collection domain event class to emit (if not annotated at the member 
level)
 <.> marker interface.
 All the domain event classes implement this interface, and the subscriber (see 
below) subscribes on this type
-<.> the property can be edited directly (and can also be modified using a 
action (see below)
+<.> the property can be edited directly
+<.> the property can also be edited by this action.
+The property can also be edited via a mixin action (see next)
 
-* the mixin action to update the property
+* the mixin action to update the property:
 +
 [source,java]
 .DomainObjectXxxDomainEventPage_updateText.java
 ----
-include::DomainObjectXxxDomainEventPage_updateText.java[tags=class]
+include::DomainObjectXxxDomainEventPage_updateTextViaMixin.java[tags=class]
 ----
 
 
@@ -64,6 +66,7 @@ 
include::DomainObjectXxxDomainEventControlSubscriber.java[tags=class]
 ----
 include::DomainObjectXxxDomainEventPage_changeControlStrategy.java[tags=class]
 ----
+<.> Emits its own domain event just so that it won't hide itself (!)
 
 * the different strategies:
 
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage.java
index c3e0ca9487..221d0ac2d4 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage.java
@@ -43,24 +43,24 @@ import 
org.apache.causeway.applib.events.domain.PropertyDomainEvent;
 //tag::class[]
 // ...
 @DomainObject(
-    actionDomainEvent = DomainObjectXxxDomainEventPage.ActionEvent.class,      
     //  <.>
-    propertyDomainEvent = DomainObjectXxxDomainEventPage.PropertyEvent.class,  
     //  <.>
-    collectionDomainEvent = 
DomainObjectXxxDomainEventPage.CollectionEvent.class,   //  <.>
+    actionDomainEvent = DomainObjectXxxDomainEventPage.ActionEvent.class,      
     // <.>
+    propertyDomainEvent = DomainObjectXxxDomainEventPage.PropertyEvent.class,  
     // <.>
+    collectionDomainEvent = 
DomainObjectXxxDomainEventPage.CollectionEvent.class,   // <.>
     nature=Nature.VIEW_MODEL
 )
 public class DomainObjectXxxDomainEventPage implements HasAsciiDocDescription {
 
-    public interface DomainEventMarker {}                                      
     //  <.>
+    public interface DomainEventMarker {}                                      
     // <.>
 
-    public static class ActionEvent                                            
     //  <1>
+    public static class ActionEvent                                            
     // <1>
             extends ActionDomainEvent<DomainObjectXxxDomainEventPage>
             implements DomainEventMarker {}
 
-    public static class PropertyEvent                                          
     //  <2>
+    public static class PropertyEvent                                          
     // <2>
             extends PropertyDomainEvent<DomainObjectXxxDomainEventPage, Object>
             implements DomainEventMarker {}
 
-    public static class CollectionEvent                                        
     //  <3>
+    public static class CollectionEvent                                        
     // <3>
             extends CollectionDomainEvent<DomainObjectXxxDomainEventPage, 
Object>
             implements DomainEventMarker {}
     // ...
@@ -84,15 +84,15 @@ public class DomainObjectXxxDomainEventPage implements 
HasAsciiDocDescription {
     @Getter @Setter
     private String text;
 
-    public DomainObjectXxxDomainEventPage updateTextDirectly(String text) {
+    @Action(semantics = SemanticsOf.SAFE)
+    public DomainObjectXxxDomainEventPage updateTextDirectly(String text) {    
     // <.>
         setText(text);
         return this;
     }
-    public String default0UpdateTextDirectly() {
+    @MemberSupport public String default0UpdateTextDirectly() {
         return getText();
     }
 
-
     @Collection
     @XmlElementWrapper(name = "children")
     @XmlElement(name = "child")
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage.layout.xml
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage.layout.xml
index ad7315e077..6d701cb252 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage.layout.xml
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage.layout.xml
@@ -17,6 +17,13 @@
 
        <bs3:row>
                <bs3:col span="10" unreferencedActions="true">
+                       <!-- have located these actions here rather than with 
the 'text' property, so can validate that they do correctly hide themselves -->
+                       <cpt:action id="updateTextDirectly">
+                               <cpt:named>update text</cpt:named>
+                       </cpt:action>
+                       <cpt:action id="updateTextViaMixin">
+                               <cpt:named>update text (via mixin)</cpt:named>
+                       </cpt:action>
                        <cpt:domainObject />
                </bs3:col>
                <bs3:col span="2">
@@ -30,9 +37,6 @@
                                <bs3:col span="12">
                                        <cpt:fieldSet name="Object" id="object">
                                                <cpt:property id="text">
-                                                       <cpt:action 
id="updateText">
-                                                               
<cpt:named>update</cpt:named>
-                                                       </cpt:action>
                                                </cpt:property>
                                        </cpt:fieldSet>
                                </bs3:col>
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage_updateTextMixin.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage_updateTextViaMixin.java
similarity index 95%
rename from 
examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage_updateTextMixin.java
rename to 
examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage_updateTextViaMixin.java
index 637b77236c..38b6db8437 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage_updateTextMixin.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventPage_updateTextViaMixin.java
@@ -27,7 +27,7 @@ import org.apache.causeway.applib.annotation.MemberSupport;
 //tag::class[]
 @Action()
 @RequiredArgsConstructor
-public class DomainObjectXxxDomainEventPage_updateTextMixin {
+public class DomainObjectXxxDomainEventPage_updateTextViaMixin {
 
     private final DomainObjectXxxDomainEventPage page;
 

Reply via email to