You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/05/14 15:25:25 UTC

[isis] branch master updated: ISIS-2666: always allow defaults to override filled in param values

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 e0a06a3  ISIS-2666: always allow defaults to override filled in param values
e0a06a3 is described below

commit e0a06a3a849b6317e3c9037bda27e3ec7c37e76c
Author: ahuber@apache.org <ah...@luna>
AuthorDate: Fri May 14 17:25:12 2021 +0200

    ISIS-2666: always allow defaults to override filled in param values
---
 .../depargs/DependentArgsActionDemo_useChoices2.java  | 19 ++++++++++++++-----
 .../depargs/DependentArgsActionDemo_useDefault.java   |  7 ++++---
 .../isis/viewer/wicket/model/models/ActionModel.java  | 16 ++++++++++------
 3 files changed, 28 insertions(+), 14 deletions(-)

diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/progmodel/depargs/DependentArgsActionDemo_useChoices2.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/progmodel/depargs/DependentArgsActionDemo_useChoices2.java
index 095ed45..c94d34a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/progmodel/depargs/DependentArgsActionDemo_useChoices2.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/progmodel/depargs/DependentArgsActionDemo_useChoices2.java
@@ -54,9 +54,10 @@ public class DependentArgsActionDemo_useChoices2 {
     @Value @Accessors(fluent = true) // fluent so we can replace this with Java(14+) records later
     static class Parameters {
         List<Parity> parities;
-        DemoItem item;
+        List<DemoItem> items;
     }
 
+    @MemberSupport
     public DependentArgsActionDemo act(
 
             // PARAM 0
@@ -65,15 +66,17 @@ public class DependentArgsActionDemo_useChoices2 {
 
             // PARAM 1
             @Parameter(optionality = Optionality.MANDATORY)
-            DemoItem item
+            List<DemoItem> items
 
             ) {
 
-        messageService.informUser(item.getName());
+        _NullSafe.stream(items)
+        .forEach(item->messageService.informUser(item.getName()));
+
         return holder;
     }
 
-    // -- PARAM 0 (Parity)
+    // -- PARAM 0 (Parities)
 
     @MemberSupport
     public List<Parity> defaultParities(Parameters params) {
@@ -83,7 +86,13 @@ public class DependentArgsActionDemo_useChoices2 {
     // -- PARAM 1 (DemoItem)
 
     @MemberSupport
-    public List<DemoItem> choicesItem(Parameters params) {
+    public List<DemoItem> defaultItems(Parameters params) {
+
+        return choicesItems(params); // <-- fill in all that are possible based on the first param from the UI dialog
+    }
+
+    @MemberSupport
+    public List<DemoItem> choicesItems(Parameters params) {
 
         val paritiesFromDialog = params.parities(); // <-- the refining parameter from the dialog above
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/progmodel/depargs/DependentArgsActionDemo_useDefault.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/progmodel/depargs/DependentArgsActionDemo_useDefault.java
index 6b9d765..7db4fa5 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/progmodel/depargs/DependentArgsActionDemo_useDefault.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/progmodel/depargs/DependentArgsActionDemo_useDefault.java
@@ -70,6 +70,7 @@ public class DependentArgsActionDemo_useDefault {
 
     @MemberSupport
     public Parity defaultParity(Parameters params) {
+
         return mixee.getDialogParityDefault();
     }
 
@@ -78,12 +79,12 @@ public class DependentArgsActionDemo_useDefault {
     @MemberSupport
     public String defaultMessage(Parameters params) {
 
-        val parity = params.parity(); // <-- the refining parameter from the dialog above
+        val parityFromDialog = params.parity(); // <-- the refining parameter from the dialog above
 
-        if(parity == null) {
+        if(parityFromDialog == null) {
             return "no parity selected";
         }
-        return parity.name();
+        return parityFromDialog.name();
     }
 
 }
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index f1de5c8..64313c8 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -427,13 +427,17 @@ implements FormUiModel, FormExecutorContext, BookmarkableModel {
         .forEach(actionArgumentModel->{
 
             val actionParameter = actionArgumentModel.getMetaModel();
-            val paramValue = actionArgumentModel.getValue();
-            val hasChoices = actionParameter.hasChoices();
-            val hasAutoComplete = actionParameter.hasAutoComplete();
-            val isEmpty = ManagedObjects.isNullOrUnspecifiedOrEmpty(paramValue);
+
+//XXX veto removed as of ISIS-2666
+//            val paramValue = actionArgumentModel.getValue();
+//            val hasChoices = actionParameter.hasChoices();
+//            val hasAutoComplete = actionParameter.hasAutoComplete();
+//            val isEmpty = ManagedObjects.isNullOrUnspecifiedOrEmpty(paramValue);
             // if we have choices or autoSelect, don't override any param value, already chosen by the user
-            val vetoDefaultsToBeSet = !isEmpty
-                    && (hasChoices||hasAutoComplete);
+//            val vetoDefaultsToBeSet = !isEmpty
+//                    && (hasChoices||hasAutoComplete);
+
+            val vetoDefaultsToBeSet = false;
 
             if(!vetoDefaultsToBeSet) {
                 val paramDefaultValue = actionParameter.getDefault(pendingArgs);