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 5ffee67  ISIS-2340: further moving logic to common UI model
5ffee67 is described below

commit 5ffee67fdac123edc2e018bcd352d32a37e762e5
Author: Andi Huber <ahu...@apache.org>
AuthorDate: Thu May 7 17:48:39 2020 +0200

    ISIS-2340: further moving logic to common UI model
---
 .../model/action/form/FormPendingParamUiModel.java | 26 ++++++++++++++++-
 .../common/model/action/form/FormUiModel.java      |  4 +++
 .../wicket/model/models/ActionArgumentCache.java   |  6 ++--
 .../viewer/wicket/model/models/ActionModel.java    | 34 ++++++----------------
 .../wicket/model/models/FormExecutorContext.java   |  3 +-
 .../components/actions/ActionParametersForm.java   |  6 ++--
 6 files changed, 46 insertions(+), 33 deletions(-)

diff --git 
a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/FormPendingParamUiModel.java
 
b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/FormPendingParamUiModel.java
index 7367633..8c9a4d9 100644
--- 
a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/FormPendingParamUiModel.java
+++ 
b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/FormPendingParamUiModel.java
@@ -19,15 +19,39 @@
 package org.apache.isis.viewer.common.model.action.form;
 
 import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.core.metamodel.spec.ManagedObject;
 import 
org.apache.isis.core.metamodel.specloader.specimpl.PendingParameterModel;
 import org.apache.isis.viewer.common.model.feature.ParameterUiModel;
 
 import lombok.Value;
+import lombok.val;
 
 @Value(staticConstructor = "of")
 public class FormPendingParamUiModel {
-    final PendingParameterModel pendingArgs;
+    
     final ParameterUiModel paramModel;
     final Consent visibilityConsent;
     final Consent usabilityConsent;
+    
+    public static FormPendingParamUiModel of(
+            ManagedObject target,
+            ParameterUiModel paramUiModel, 
+            PendingParameterModel pendingArgs) {
+
+        val objectActionParamter = paramUiModel.getMetaModel();
+        val pendingArgValues = pendingArgs.getParamValues();
+
+        paramUiModel.setPendingParameterModel(pendingArgs);
+        
+        // visibility
+        val visibilityConsent = objectActionParamter
+                .isVisible(target, pendingArgValues, 
InteractionInitiatedBy.USER);
+
+        // usability
+        val usabilityConsent = objectActionParamter
+                .isUsable(target, pendingArgValues, 
InteractionInitiatedBy.USER);
+        
+        return of(paramUiModel, visibilityConsent, usabilityConsent);
+    }
 }
diff --git 
a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/FormUiModel.java
 
b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/FormUiModel.java
index 5ad138b..3abf6f0 100644
--- 
a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/FormUiModel.java
+++ 
b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/FormUiModel.java
@@ -18,6 +18,10 @@
  */
 package org.apache.isis.viewer.common.model.action.form;
 
+import java.util.stream.Stream;
+
 public interface FormUiModel {
 
+    Stream<FormPendingParamUiModel> streamPendingParamUiModels();
+
 }
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionArgumentCache.java
 
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionArgumentCache.java
index fc09325..aa3ce81 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionArgumentCache.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionArgumentCache.java
@@ -79,7 +79,7 @@ class ActionArgumentCache implements PendingParameterManager {
         
         arguments.clear();
         
-        streamActionArgumentModels()
+        streamParamUiModels()
         .forEach(actionArgumentModel -> {
             int paramIndex = actionArgumentModel.getNumber();
             val paramDefaultValue = defaultsFixedPoint.getElseFail(paramIndex);
@@ -87,7 +87,7 @@ class ActionArgumentCache implements PendingParameterManager {
         });
     }
     
-    public Stream<ParameterUiModel> streamActionArgumentModels() {
+    public Stream<ParameterUiModel> streamParamUiModels() {
         return streamParamNumbers()
                 .mapToObj(paramIndex->
                     arguments.computeIfAbsent(paramIndex, 
this::createArgumentModel));
@@ -122,7 +122,7 @@ class ActionArgumentCache implements 
PendingParameterManager {
     private void primeArgumentModels() {
         _Assert.assertEquals(
                 action.getParameterCount(),
-                (int)streamActionArgumentModels().count());
+                (int)streamParamUiModels().count());
     }
     
     private ParameterUiModel computeIfAbsent(final ActionParameterMemento apm) 
{
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 42ea916..57df7fd 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
@@ -59,13 +59,14 @@ import 
org.apache.isis.core.metamodel.specloader.specimpl.PendingParameterModel;
 import 
org.apache.isis.core.metamodel.specloader.specimpl.PendingParameterModelHead;
 import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
 import org.apache.isis.viewer.common.model.action.form.FormPendingParamUiModel;
+import org.apache.isis.viewer.common.model.action.form.FormUiModel;
 import org.apache.isis.viewer.wicket.model.mementos.ActionMemento;
 
 import lombok.val;
 
 public class ActionModel 
 extends BookmarkableModel<ManagedObject> 
-implements FormExecutorContext {
+implements FormUiModel, FormExecutorContext {
 
     private static final long serialVersionUID = 1L;
 
@@ -456,44 +457,27 @@ implements FormExecutorContext {
         argCache().clearParameterValue(actionParameter);
     }
 
-
-
-    public Stream<FormPendingParamUiModel> streamActionArgumentModels() {
+    @Override
+    public Stream<FormPendingParamUiModel> streamPendingParamUiModels() {
 
         val targetAdapter = this.getTargetAdapter();
         val realTargetAdapter = 
this.getAction().realTargetAdapter(targetAdapter);
         val pendingArgs = getArgumentsAsParamModel();
-        val pendingArgValues = pendingArgs.getParamValues();
 
         return argCache()
-        .streamActionArgumentModels()
-        .map(actionArgumentModel->{
-
-            actionArgumentModel.setPendingParameterModel(pendingArgs);
-
-            val objectActionParamter = actionArgumentModel.getMetaModel();
-
-            // visibility
-            val visibilityConsent = objectActionParamter
-                    .isVisible(realTargetAdapter, pendingArgValues, 
InteractionInitiatedBy.USER);
-
-            // usability
-            val usabilityConsent = objectActionParamter
-                    .isUsable(realTargetAdapter, pendingArgValues, 
InteractionInitiatedBy.USER);
-
-            return FormPendingParamUiModel.of(
-                    pendingArgs, actionArgumentModel, visibilityConsent, 
usabilityConsent);
-
+        .streamParamUiModels()
+        .map(paramUiModel->{
+            return FormPendingParamUiModel.of(realTargetAdapter, paramUiModel, 
pendingArgs);
         });
 
     }
 
-    public void reassessActionArgumentModels(int skipCount) {
+    public void reassessPendingParamUiModels(int skipCount) {
 
         val pendingArgs = getArgumentsAsParamModel();
 
         argCache()
-        .streamActionArgumentModels()
+        .streamParamUiModels()
         .skip(skipCount)
         .forEach(actionArgumentModel->{
 
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/FormExecutorContext.java
 
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/FormExecutorContext.java
index faa9409..2f4a8da 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/FormExecutorContext.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/FormExecutorContext.java
@@ -22,7 +22,8 @@ package org.apache.isis.viewer.wicket.model.models;
 import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.viewer.common.model.HasParentUiModel;
 
-public interface FormExecutorContext extends HasParentUiModel<EntityModel> {
+public interface FormExecutorContext 
+extends HasParentUiModel<EntityModel> {
 
     PromptStyle getPromptStyle();
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java
index bf71ee2..5e8b377 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java
@@ -73,7 +73,7 @@ class ActionParametersForm extends 
PromptFormAbstract<ActionModel> {
 
         paramPanels.clear();
         
-        actionModel.streamActionArgumentModels()
+        actionModel.streamPendingParamUiModels()
         .forEach(argsAndConsents->{
             
             val paramModel = (ScalarParameterModel) 
argsAndConsents.getParamModel(); 
@@ -157,9 +157,9 @@ class ActionParametersForm extends 
PromptFormAbstract<ActionModel> {
         // only updates subsequent parameter panels starting from 
(paramNumberUpdated + 1)
         final int skipCount = paramNumberUpdated + 1;   
         
-        actionModel.reassessActionArgumentModels(skipCount);
+        actionModel.reassessPendingParamUiModels(skipCount);
         
-        actionModel.streamActionArgumentModels()
+        actionModel.streamPendingParamUiModels()
         .skip(skipCount)
         .forEach(argAndConsents->{
             

Reply via email to