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

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


The following commit(s) were added to refs/heads/master by this push:
     new f380b38  ISIS-2158: Demo: adding action demo with independent args
f380b38 is described below

commit f380b389fa80f98b3667383f1d8b76d39b8e84a9
Author: Andi Huber <ahu...@apache.org>
AuthorDate: Thu Feb 13 19:17:53 2020 +0100

    ISIS-2158: Demo: adding action demo with independent args
---
 .../actions/depargs/DependentArgsActionDemo.java   | 45 +++-------------------
 .../depargs/DependentArgsActionDemo.layout.xml     | 11 ++++--
 .../DependentArgsActionDemo_useAutoComplete.java   | 11 ++----
 .../DependentArgsActionDemo_useChoices.java        | 10 ++---
 .../DependentArgsActionDemo_useDefault.java        | 11 ++----
 .../DependentArgsActionDemo_useDisable.java        | 13 +++----
 .../depargs/DependentArgsActionDemo_useHide.java   | 11 ++----
 ...=> DependentArgsActionDemo_useIndependent.java} | 44 ++++++++++++---------
 .../demo/src/main/java/demoapp/utils/DemoStub.java |  3 +-
 9 files changed, 63 insertions(+), 96 deletions(-)

diff --git 
a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo.java
 
b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo.java
index 46d77c3..641b611 100644
--- 
a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo.java
+++ 
b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo.java
@@ -43,14 +43,17 @@ import demoapp.utils.DemoStub;
 @DomainObject(nature=Nature.VIEW_MODEL, objectType = "demo.DependentArgs", 
editing=Editing.ENABLED)
 public class DependentArgsActionDemo extends DemoStub {
 
-    // -- INIT
-
     @Getter private final Set<DemoItem> items = new LinkedHashSet<>();
 
     @PropertyLayout(labelPosition=LabelPosition.NONE)
-    public Markup getText() {
+    public Markup getDependentText() {
         return new Markup("Click one of these 5 actions to see how dependent 
arguments work.");
     }
+    
+    @PropertyLayout(labelPosition=LabelPosition.NONE)
+    public Markup getIndependentText() {
+        return new Markup("Click this action to see independent arguments do 
not clear other on changing.");
+    }
 
     @Override
     public void initDefaults() {
@@ -61,42 +64,6 @@ public class DependentArgsActionDemo extends DemoStub {
         items.add(DemoItem.of("last", Parity.EVEN));
     }
     
-    // -- DEBUG
-    
-//    @ActionLayout(named="Choices", promptStyle = PromptStyle.DIALOG_MODAL)
-//    @Action(semantics = SemanticsOf.SAFE)
-//    public DependentArgsActionDemo useChoices(
-//
-//            // PARAM 0
-//            @Parameter(optionality = Optionality.MANDATORY)
-//            Parity parity,
-//
-//            // PARAM 1
-//            @Parameter(optionality = Optionality.MANDATORY)
-//            DemoItem item
-//
-//            ) {
-//        
-//        return this;
-//    }
-//
-//    // -- PARAM 1 (DemoItem)
-//
-//    
-//    public Collection<DemoItem> choices1useChoices(
-//            
-//            Parity parity // <-- the refining parameter from the dialog above
-//            
-//            ) {
-//        
-//        if(parity == null) {
-//            return this.getItems();
-//        }
-//        return this.getItems()
-//                .stream()
-//                .filter(item->parity == item.getParity())
-//                .collect(Collectors.toList());
-//    }
 
 }
 
diff --git 
a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo.layout.xml
 
b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo.layout.xml
index 76ff059..65b5c43 100644
--- 
a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo.layout.xml
+++ 
b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo.layout.xml
@@ -19,16 +19,21 @@
        
                <bs3:col span="6">
                
-                       <cpt:fieldSet name="Actions" id="actions">
+                       <cpt:fieldSet name="Actions" id="actions-dep">
                                <cpt:action id="useChoices"/>
                <cpt:action id="useAutoComplete"/>
                <cpt:action id="useDefault"/>
                <cpt:action id="useHide"/>
                <cpt:action id="useDisable"/>
-                   <cpt:property id="text"/>
+                   <cpt:property id="dependentText"/>
                        </cpt:fieldSet>
                        
-                       <cpt:collection defaultView="table" id="items" />
+                       <cpt:fieldSet name="Actions" id="actions-indep">
+                               <cpt:action id="useIndependent"/>
+                   <cpt:property id="independentText"/>
+                       </cpt:fieldSet>
+
+                       <cpt:collection defaultView="table" id="items" />       
                
             
                </bs3:col>
                
diff --git 
a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useAutoComplete.java
 
b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useAutoComplete.java
index c8f1bbf..2306009 100644
--- 
a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useAutoComplete.java
+++ 
b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useAutoComplete.java
@@ -26,17 +26,16 @@ import javax.inject.Inject;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.MinLength;
-import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.incubator.model.applib.annotation.Model;
 
 import lombok.RequiredArgsConstructor;
 
-@Mixin
+@ActionLayout(named="Auto Complete", promptStyle = PromptStyle.DIALOG_MODAL)
+@Action
 @RequiredArgsConstructor
 public class DependentArgsActionDemo_useAutoComplete {
 
@@ -44,9 +43,7 @@ public class DependentArgsActionDemo_useAutoComplete {
 
     private final DependentArgsActionDemo holder;
 
-    @ActionLayout(named="Auto Complete", promptStyle = 
PromptStyle.DIALOG_MODAL)
-    @Action(semantics = SemanticsOf.SAFE)
-    public DependentArgsActionDemo $$(
+    public DependentArgsActionDemo act(
 
             // PARAM 0
             @Parameter(optionality = Optionality.MANDATORY)
@@ -65,7 +62,7 @@ public class DependentArgsActionDemo_useAutoComplete {
     // -- PARAM 1 (DemoItem)
 
     @Model
-    public Collection<DemoItem> autoComplete1$$(
+    public Collection<DemoItem> autoComplete1Act(
 
             Parity parity, // <-- the refining parameter from the dialog above
 
diff --git 
a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useChoices.java
 
b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useChoices.java
index de35418..afd3270 100644
--- 
a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useChoices.java
+++ 
b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useChoices.java
@@ -25,7 +25,6 @@ import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.applib.annotation.PromptStyle;
@@ -35,7 +34,8 @@ import 
org.apache.isis.incubator.model.applib.annotation.Model;
 
 import lombok.RequiredArgsConstructor;
 
-@Mixin
+@ActionLayout(named="Choices", promptStyle = PromptStyle.DIALOG_MODAL)
+@Action(semantics = SemanticsOf.SAFE)
 @RequiredArgsConstructor
 public class DependentArgsActionDemo_useChoices {
 
@@ -43,9 +43,7 @@ public class DependentArgsActionDemo_useChoices {
 
     private final DependentArgsActionDemo holder;
 
-    @ActionLayout(named="Choices", promptStyle = PromptStyle.DIALOG_MODAL)
-    @Action(semantics = SemanticsOf.SAFE)
-    public DependentArgsActionDemo $$(
+    public DependentArgsActionDemo act(
 
             // PARAM 0
             @Parameter(optionality = Optionality.MANDATORY)
@@ -64,7 +62,7 @@ public class DependentArgsActionDemo_useChoices {
     // -- PARAM 1 (DemoItem)
 
     @Model
-    public Collection<DemoItem> choices1$$(
+    public Collection<DemoItem> choices1Act(
             
             Parity parity // <-- the refining parameter from the dialog above
             
diff --git 
a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useDefault.java
 
b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useDefault.java
index d8917f3..8d99d00 100644
--- 
a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useDefault.java
+++ 
b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useDefault.java
@@ -22,18 +22,17 @@ import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.incubator.model.applib.annotation.Model;
 
 import lombok.RequiredArgsConstructor;
 
-@Mixin
+@ActionLayout(named="Default", promptStyle = PromptStyle.DIALOG_MODAL)
+@Action
 @RequiredArgsConstructor
 public class DependentArgsActionDemo_useDefault {
 
@@ -42,9 +41,7 @@ public class DependentArgsActionDemo_useDefault {
 
     private final DependentArgsActionDemo holder;
 
-    @ActionLayout(named="Default", promptStyle = PromptStyle.DIALOG_MODAL)
-    @Action(semantics = SemanticsOf.SAFE)
-    public DependentArgsActionDemo $$(
+    public DependentArgsActionDemo act(
 
             // PARAM 0
             @Parameter(optionality = Optionality.MANDATORY)
@@ -64,7 +61,7 @@ public class DependentArgsActionDemo_useDefault {
     // -- PARAM 1 (String message)
 
     @Model
-    public String default1$$(Parity parity) {
+    public String default1Act(Parity parity) {
         if(parity == null) {
             return "no parity selected";
         }
diff --git 
a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useDisable.java
 
b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useDisable.java
index ebe512e..0fa3172 100644
--- 
a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useDisable.java
+++ 
b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useDisable.java
@@ -22,28 +22,25 @@ import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.incubator.model.applib.annotation.Model;
 
 import lombok.RequiredArgsConstructor;
 
-@Mixin
+@ActionLayout(named="Disable", promptStyle = PromptStyle.DIALOG_MODAL)
+@Action
 @RequiredArgsConstructor
 public class DependentArgsActionDemo_useDisable {
 
     @Inject MessageService messageService;
 
     private final DependentArgsActionDemo holder;
-
-    @ActionLayout(named="Disable", promptStyle = PromptStyle.DIALOG_MODAL)
-    @Action(semantics = SemanticsOf.SAFE)
-    public DependentArgsActionDemo $$(
+    
+    public DependentArgsActionDemo act(
 
             // PARAM 0
             @ParameterLayout(named = "Disable Message Field")
@@ -63,7 +60,7 @@ public class DependentArgsActionDemo_useDisable {
     // -- PARAM 1 (String message)
 
     @Model
-    public String disable1$$(boolean disableMessageField) {
+    public String disable1Act(boolean disableMessageField) {
         return disableMessageField
                 ? "disabled by dependent argument"
                         : null;
diff --git 
a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useHide.java
 
b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useHide.java
index ddf5769..e3825d8 100644
--- 
a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useHide.java
+++ 
b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useHide.java
@@ -22,18 +22,17 @@ import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.incubator.model.applib.annotation.Model;
 
 import lombok.RequiredArgsConstructor;
 
-@Mixin
+@ActionLayout(named="Hide", promptStyle = PromptStyle.DIALOG_MODAL)
+@Action
 @RequiredArgsConstructor
 public class DependentArgsActionDemo_useHide {
 
@@ -41,9 +40,7 @@ public class DependentArgsActionDemo_useHide {
 
     private final DependentArgsActionDemo holder;
 
-    @ActionLayout(named="Hide", promptStyle = PromptStyle.DIALOG_MODAL)
-    @Action(semantics = SemanticsOf.SAFE)
-    public DependentArgsActionDemo $$(
+    public DependentArgsActionDemo act(
 
             // PARAM 0
             @ParameterLayout(named = "Hide Message Field")
@@ -63,7 +60,7 @@ public class DependentArgsActionDemo_useHide {
     // -- PARAM 1 (String message)
 
     @Model
-    public boolean hide1$$(boolean hideMessageField) {
+    public boolean hide1Act(boolean hideMessageField) {
         return hideMessageField;
     }
 
diff --git 
a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useDefault.java
 
b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useIndependent.java
similarity index 70%
copy from 
examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useDefault.java
copy to 
examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useIndependent.java
index d8917f3..9769b10 100644
--- 
a/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useDefault.java
+++ 
b/examples/demo/src/main/java/demoapp/dom/actions/depargs/DependentArgsActionDemo_useIndependent.java
@@ -18,58 +18,66 @@
  */
 package demoapp.dom.actions.depargs;
 
+import java.util.Collection;
+
 import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Parameter;
-import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.incubator.model.applib.annotation.Model;
 
 import lombok.RequiredArgsConstructor;
+import lombok.val;
 
-@Mixin
+@ActionLayout(named="Independent Args", promptStyle = PromptStyle.DIALOG_MODAL)
+@Action
 @RequiredArgsConstructor
-public class DependentArgsActionDemo_useDefault {
+public class DependentArgsActionDemo_useIndependent {
 
     @Inject MessageService messageService;
 
-
     private final DependentArgsActionDemo holder;
 
-    @ActionLayout(named="Default", promptStyle = PromptStyle.DIALOG_MODAL)
-    @Action(semantics = SemanticsOf.SAFE)
-    public DependentArgsActionDemo $$(
+    public DependentArgsActionDemo act(
 
             // PARAM 0
             @Parameter(optionality = Optionality.MANDATORY)
             Parity parity,
-
+            
             // PARAM 1
             @Parameter(optionality = Optionality.MANDATORY)
-            @ParameterLayout(named = "Message")
-            String message
+            DemoItem item1,
+
+            // PARAM 2
+            @Parameter(optionality = Optionality.MANDATORY)
+            DemoItem item2
 
             ) {
 
+        val message = String.format("got %s %s %s", parity, item1.getParity(), 
item2.getParity());
+        
         messageService.informUser(message);
         return holder;
     }
 
-    // -- PARAM 1 (String message)
+    // -- PARAM 1 (DemoItem item1)
+
+    @Model
+    public Collection<DemoItem> choices1Act() {
+        return holder.getItems();
+    }
+    
+    // -- PARAM 2 (DemoItem item2)
 
     @Model
-    public String default1$$(Parity parity) {
-        if(parity == null) {
-            return "no parity selected";
-        }
-        return parity.name();
+    public Collection<DemoItem> choices2Act() {
+        return holder.getItems();
     }
+    
 
 }
 
diff --git a/examples/demo/src/main/java/demoapp/utils/DemoStub.java 
b/examples/demo/src/main/java/demoapp/utils/DemoStub.java
index 7d536c9..0d2d056 100644
--- a/examples/demo/src/main/java/demoapp/utils/DemoStub.java
+++ b/examples/demo/src/main/java/demoapp/utils/DemoStub.java
@@ -28,6 +28,7 @@ import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
 import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc;
 
 import lombok.val;
@@ -35,7 +36,7 @@ import lombok.val;
 public abstract class DemoStub {
 
     public String title() {
-        return getClass().getSimpleName();
+        return _Strings.asNaturalName2.apply(getClass().getSimpleName());
     }
 
     public abstract void initDefaults();

Reply via email to