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 0edb967eeb ISIS-3215: demo domain fixes
0edb967eeb is described below

commit 0edb967eebfea2eb2a6d263e78e4654cc7b6a5e7
Author: andi-huber <[email protected]>
AuthorDate: Sun Sep 18 07:57:10 2022 +0200

    ISIS-3215: demo domain fixes
---
 .../ActionParameterDefaultsFacetViaMethodFactory.java       |  4 ----
 .../org/apache/isis/core/metamodel/object/MmInvokeUtil.java |  6 +++---
 .../depargs/DependentArgsActionDemo_useAutoComplete.java    |  7 +++++--
 .../depargs/DependentArgsActionDemo_useAutoComplete2.java   | 13 ++++++++++++-
 4 files changed, 20 insertions(+), 10 deletions(-)

diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
index e21d8ea448..18f2aaadc8 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
@@ -22,16 +22,12 @@ import javax.inject.Inject;
 
 import 
org.apache.isis.core.config.progmodel.ProgrammingModelConstants.MemberSupportPrefix;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
 import 
org.apache.isis.core.metamodel.facets.ParameterSupport.ParamSupportingMethodSearchResult;
 import 
org.apache.isis.core.metamodel.facets.param.support.ActionParameterSupportFacetFactoryAbstract;
 
 import lombok.val;
 
-/**
- * Sets up all the {@link Facet}s for an action in a single shot.
- */
 public class ActionParameterDefaultsFacetViaMethodFactory
 extends ActionParameterSupportFacetFactoryAbstract {
 
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/MmInvokeUtil.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/MmInvokeUtil.java
index a52e76affa..2084e63fb8 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/MmInvokeUtil.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/MmInvokeUtil.java
@@ -39,14 +39,14 @@ public final class MmInvokeUtil {
 
     /** PAT ... Parameters as Tuple */
     public static Object invokeWithPAT(
-            final Constructor<?> ppmConstructor,
+            final Constructor<?> patConstructor,
             final Method method,
             final ManagedObject adapter,
             final Can<ManagedObject> pendingArguments,
             final List<Object> additionalArguments) {
 
-        val ppmTuple = CanonicalInvoker.construct(ppmConstructor, 
MmUnwrapUtil.multipleAsArray(pendingArguments));
-        val paramPojos = _Arrays.combineWithExplicitType(Object.class, 
ppmTuple, additionalArguments.toArray());
+        val pat = CanonicalInvoker.construct(patConstructor, 
MmUnwrapUtil.multipleAsArray(pendingArguments));
+        val paramPojos = _Arrays.combineWithExplicitType(Object.class, pat, 
additionalArguments.toArray());
         return CanonicalInvoker.invoke(method, MmUnwrapUtil.single(adapter), 
paramPojos);
     }
 
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/progmodel/depargs/DependentArgsActionDemo_useAutoComplete.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/progmodel/depargs/DependentArgsActionDemo_useAutoComplete.java
index ab71f7391b..3e1ab72540 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/progmodel/depargs/DependentArgsActionDemo_useAutoComplete.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/progmodel/depargs/DependentArgsActionDemo_useAutoComplete.java
@@ -31,6 +31,7 @@ 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.services.message.MessageService;
+import org.apache.isis.commons.internal.base._Strings;
 
 import lombok.RequiredArgsConstructor;
 import lombok.Value;
@@ -80,7 +81,7 @@ public class DependentArgsActionDemo_useAutoComplete {
         // fill in first that is possible based on the first param from the UI 
dialog
         return params.parity()==null
                 ? null
-                : autoComplete1Act(params, params.parity.name())
+                : autoComplete1Act(params, "")
                     .stream().findFirst().orElse(null);
     }
 
@@ -100,7 +101,9 @@ public class DependentArgsActionDemo_useAutoComplete {
         return holder.getItems()
                 .stream()
                 .filter(item->parity == item.getParity())
-                
.filter(item->item.getName().toLowerCase().contains(search.toLowerCase()))
+                .filter(item->_Strings.isNullOrEmpty(search)
+                        ? true
+                        : 
item.getName().toLowerCase().contains(search.toLowerCase()))
                 .collect(Collectors.toList());
     }
 
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/progmodel/depargs/DependentArgsActionDemo_useAutoComplete2.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/progmodel/depargs/DependentArgsActionDemo_useAutoComplete2.java
index 2c4eaf1e2a..e25708a8c4 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/progmodel/depargs/DependentArgsActionDemo_useAutoComplete2.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/progmodel/depargs/DependentArgsActionDemo_useAutoComplete2.java
@@ -33,6 +33,7 @@ import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.commons.internal.base._NullSafe;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Lists;
 
 import lombok.RequiredArgsConstructor;
@@ -82,6 +83,14 @@ public class DependentArgsActionDemo_useAutoComplete2 {
 
     // -- PARAM 1 (DemoItem)
 
+    @MemberSupport public List<DemoItem> defaultItems(final Parameters params) 
{
+        val paritiesFromDialog = params.parities(); // <-- the refining 
parameter from the dialog above
+        if(_NullSafe.isEmpty(paritiesFromDialog)) {
+            return Collections.emptyList();
+        }
+        return autoCompleteItems(params, "");
+    }
+
     @MemberSupport public List<DemoItem> autoCompleteItems(
             final Parameters params,
             @MinLength(2) final String search) {
@@ -94,7 +103,9 @@ public class DependentArgsActionDemo_useAutoComplete2 {
         return holder.getItems()
                 .stream()
                 .filter(item->paritiesFromDialog.contains(item.getParity()))
-                
.filter(item->item.getName().toLowerCase().contains(search.toLowerCase()))
+                .filter(item->_Strings.isNullOrEmpty(search)
+                        ? true
+                        : 
item.getName().toLowerCase().contains(search.toLowerCase()))
                 .collect(Collectors.toList());
     }
 

Reply via email to