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();