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 2019/12/17 16:22:03 UTC
[isis] branch master updated: ISIS-2226: some improvements: using
Can instead of T[]
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 8374d8b ISIS-2226: some improvements: using Can<T> instead of T[]
8374d8b is described below
commit 8374d8b53ffe69c7a34b2cf28f58f788123b8d76
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Dec 17 17:21:52 2019 +0100
ISIS-2226: some improvements: using Can<T> instead of T[]
---
.../isis/metamodel/facets/DomainEventHelper.java | 7 +--
.../disable/ActionParameterDisabledFacet.java | 3 +-
.../ActionParameterDisabledFacetViaMethod.java | 4 +-
.../param/hide/ActionParameterHiddenFacet.java | 3 +-
.../hide/ActionParameterHiddenFacetAbstract.java | 11 +++--
.../ActionParameterHiddenFacetViaMethod.java | 4 +-
.../interactions/ActionArgUsabilityContext.java | 32 ++++++-------
.../interactions/ActionArgVisibilityContext.java | 38 +++++++--------
.../apache/isis/metamodel/spec/ManagedObject.java | 12 +++++
.../spec/feature/ObjectActionParameter.java | 56 ++++++++--------------
.../specimpl/ObjectActionParameterAbstract.java | 41 ++++++++--------
.../wicket/model/models/ActionArgumentModel.java | 3 +-
.../viewer/wicket/model/models/ActionModel.java | 4 +-
.../viewer/wicket/model/models/ScalarModel.java | 49 +++++++++----------
.../components/actions/ActionParametersForm.java | 55 +++++++++++----------
.../components/scalars/ScalarPanelAbstract2.java | 12 +++--
.../scalars/ScalarPanelSelect2Abstract.java | 32 +++++++------
.../scalars/reference/ReferencePanel.java | 7 +--
.../valuechoices/ValueChoicesSelect2Panel.java | 9 ++--
19 files changed, 193 insertions(+), 189 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/DomainEventHelper.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/DomainEventHelper.java
index 2e27420..a05d2c0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/DomainEventHelper.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/DomainEventHelper.java
@@ -37,6 +37,7 @@ import org.apache.isis.commons.internal.assertions._Assert;
import org.apache.isis.metamodel.facetapi.IdentifiedHolder;
import org.apache.isis.metamodel.services.events.MetamodelEventService;
import org.apache.isis.metamodel.spec.ManagedObject;
+import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.spec.feature.ObjectAction;
import org.apache.isis.metamodel.spec.feature.ObjectActionParameter;
@@ -127,14 +128,14 @@ public class DomainEventHelper {
final List<ObjectActionParameter> parameters = objectAction.getParameters();
final List<String> parameterNames = parameters.stream()
- .map(ObjectActionParameter.Functions.GET_NAME)
+ .map(ObjectActionParameter::getName)
.collect(Collectors.toList());
final List<Class<?>> parameterTypes = parameters.stream()
- .map(ObjectActionParameter.Functions.GET_TYPE)
+ .map(ObjectActionParameter::getSpecification)
+ .map(ObjectSpecification::getCorrespondingClass)
.collect(Collectors.toList());
-
event.setParameterNames(Collections.unmodifiableList(parameterNames));
event.setParameterTypes(Collections.unmodifiableList(parameterTypes));
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/disable/ActionParameterDisabledFacet.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/disable/ActionParameterDisabledFacet.java
index 6790aeb..2a9ab95 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/disable/ActionParameterDisabledFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/disable/ActionParameterDisabledFacet.java
@@ -19,6 +19,7 @@
package org.apache.isis.metamodel.facets.param.disable;
+import org.apache.isis.commons.collections.Can;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.interactions.DisablingInteractionAdvisor;
import org.apache.isis.metamodel.spec.ManagedObject;
@@ -35,5 +36,5 @@ public interface ActionParameterDisabledFacet extends Facet, DisablingInteractio
/**
* Reason why the parameter is disabled, or <tt>null</tt> if okay.
*/
- public String disabledReason(ManagedObject target, ManagedObject[] arguments);
+ public String disabledReason(ManagedObject target, Can<ManagedObject> arguments);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethod.java
index a4ce437..39e29ab 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethod.java
@@ -67,10 +67,10 @@ public class ActionParameterDisabledFacetViaMethod extends ActionParameterDisabl
@Override
public String disabledReason(
final ManagedObject owningAdapter,
- final ManagedObject[] argumentAdapters) {
+ final Can<ManagedObject> argumentAdapters) {
final Object returnValue = ManagedObject.InvokeUtil
- .invokeAutofit(method, owningAdapter, Can.ofArray(argumentAdapters));
+ .invokeAutofit(method, owningAdapter, argumentAdapters);
if(returnValue instanceof String) {
return (String) returnValue;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/hide/ActionParameterHiddenFacet.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/hide/ActionParameterHiddenFacet.java
index 6c39307..d1a773b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/hide/ActionParameterHiddenFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/hide/ActionParameterHiddenFacet.java
@@ -19,6 +19,7 @@
package org.apache.isis.metamodel.facets.param.hide;
+import org.apache.isis.commons.collections.Can;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.interactions.HidingInteractionAdvisor;
import org.apache.isis.metamodel.spec.ManagedObject;
@@ -36,5 +37,5 @@ public interface ActionParameterHiddenFacet extends Facet, HidingInteractionAdvi
/**
* Whether the parameter is hidden.
*/
- public boolean isHidden(ManagedObject target, ManagedObject[] arguments);
+ public boolean isHidden(ManagedObject target, Can<ManagedObject> arguments);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/hide/ActionParameterHiddenFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/hide/ActionParameterHiddenFacetAbstract.java
index a05f34a..1979696 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/hide/ActionParameterHiddenFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/hide/ActionParameterHiddenFacetAbstract.java
@@ -26,8 +26,9 @@ import org.apache.isis.metamodel.facetapi.FacetHolder;
import org.apache.isis.metamodel.interactions.ActionArgVisibilityContext;
import org.apache.isis.metamodel.interactions.VisibilityContext;
-public abstract class ActionParameterHiddenFacetAbstract extends FacetAbstract implements
-ActionParameterHiddenFacet {
+public abstract class ActionParameterHiddenFacetAbstract
+extends FacetAbstract
+implements ActionParameterHiddenFacet {
public static Class<? extends Facet> type() {
return ActionParameterHiddenFacet.class;
@@ -43,6 +44,10 @@ ActionParameterHiddenFacet {
return null;
}
final ActionArgVisibilityContext actionArgVisibilityContext = (ActionArgVisibilityContext) context;
- return isHidden(actionArgVisibilityContext.getTarget(), actionArgVisibilityContext.getArgs()) ? "Hidden" : null;
+ return isHidden(
+ actionArgVisibilityContext.getTarget(),
+ actionArgVisibilityContext.getArgs())
+ ? "Hidden"
+ : null;
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethod.java
index b529188..430d162 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethod.java
@@ -59,10 +59,10 @@ public class ActionParameterHiddenFacetViaMethod extends ActionParameterHiddenFa
@Override
public boolean isHidden(
final ManagedObject owningAdapter,
- final ManagedObject[] argumentAdapters) {
+ final Can<ManagedObject> argumentAdapters) {
final Object returnValue = ManagedObject.InvokeUtil
- .invokeAutofit(method, owningAdapter, Can.ofArray(argumentAdapters));
+ .invokeAutofit(method, owningAdapter, argumentAdapters);
if(returnValue instanceof Boolean) {
return (Boolean) returnValue;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/interactions/ActionArgUsabilityContext.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/interactions/ActionArgUsabilityContext.java
index 04804f3..e45fd3e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/interactions/ActionArgUsabilityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/interactions/ActionArgUsabilityContext.java
@@ -23,6 +23,7 @@ import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.events.ActionArgumentUsabilityEvent;
import org.apache.isis.applib.services.wrapper.events.ActionArgumentEvent;
+import org.apache.isis.commons.collections.Can;
import org.apache.isis.metamodel.consent.InteractionContextType;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.metamodel.spec.ManagedObject;
@@ -31,6 +32,8 @@ import org.apache.isis.metamodel.spec.feature.ObjectAction;
import static org.apache.isis.metamodel.spec.ManagedObject.unwrapPojo;
import static org.apache.isis.metamodel.spec.ManagedObject.unwrapPojoArray;
+import lombok.Getter;
+
/**
* See {@link InteractionContext} for overview; analogous to
* {@link ActionArgumentEvent}.
@@ -39,18 +42,24 @@ public class ActionArgUsabilityContext
extends UsabilityContext<ActionArgumentUsabilityEvent>
implements ActionInteractionContext {
- private final ObjectAction objectAction;
- private final ManagedObject[] args;
- private final int position;
+ @Getter(onMethod = @__(@Override)) private final ObjectAction objectAction;
+ @Getter private final Can<ManagedObject> args;
+ @Getter private final int position;
public ActionArgUsabilityContext(
final ManagedObject targetAdapter,
final ObjectAction objectAction,
final Identifier id,
- final ManagedObject[] args,
+ final Can<ManagedObject> args,
final int position,
final InteractionInitiatedBy interactionInitiatedBy) {
- super(InteractionContextType.ACTION_PARAMETER_USABLE, targetAdapter, id, interactionInitiatedBy, Where.OBJECT_FORMS);
+
+ super(InteractionContextType.ACTION_PARAMETER_USABLE,
+ targetAdapter,
+ id,
+ interactionInitiatedBy,
+ Where.OBJECT_FORMS);
+
this.objectAction = objectAction;
this.args = args;
@@ -58,19 +67,6 @@ implements ActionInteractionContext {
}
@Override
- public ObjectAction getObjectAction() {
- return objectAction;
- }
-
- public ManagedObject[] getArgs() {
- return args;
- }
-
- public int getPosition() {
- return position;
- }
-
- @Override
public ActionArgumentUsabilityEvent createInteractionEvent() {
return new ActionArgumentUsabilityEvent(
unwrapPojo(getTarget()),
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/interactions/ActionArgVisibilityContext.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/interactions/ActionArgVisibilityContext.java
index 54c6168..41a01fa 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/interactions/ActionArgVisibilityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/interactions/ActionArgVisibilityContext.java
@@ -23,6 +23,7 @@ import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.events.ActionArgumentVisibilityEvent;
import org.apache.isis.applib.services.wrapper.events.ActionArgumentEvent;
+import org.apache.isis.commons.collections.Can;
import org.apache.isis.metamodel.consent.InteractionContextType;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.metamodel.spec.ManagedObject;
@@ -31,24 +32,34 @@ import org.apache.isis.metamodel.spec.feature.ObjectAction;
import static org.apache.isis.metamodel.spec.ManagedObject.unwrapPojo;
import static org.apache.isis.metamodel.spec.ManagedObject.unwrapPojoArray;
+import lombok.Getter;
+
/**
* See {@link InteractionContext} for overview; analogous to
* {@link ActionArgumentEvent}.
*/
-public class ActionArgVisibilityContext extends VisibilityContext<ActionArgumentVisibilityEvent> implements ActionInteractionContext {
-
- private final ObjectAction objectAction;
- private final ManagedObject[] args;
- private final int position;
+public class ActionArgVisibilityContext
+extends VisibilityContext<ActionArgumentVisibilityEvent>
+implements ActionInteractionContext {
+ @Getter(onMethod = @__(@Override)) private final ObjectAction objectAction;
+ @Getter private final Can<ManagedObject> args;
+ @Getter private final int position;
+
public ActionArgVisibilityContext(
final ManagedObject targetAdapter,
final ObjectAction objectAction,
final Identifier id,
- final ManagedObject[] args,
+ final Can<ManagedObject> args,
final int position,
final InteractionInitiatedBy interactionInitiatedBy) {
- super(InteractionContextType.ACTION_PARAMETER_VISIBLE, targetAdapter, id, interactionInitiatedBy, Where.OBJECT_FORMS);
+
+ super(InteractionContextType.ACTION_PARAMETER_VISIBLE,
+ targetAdapter,
+ id,
+ interactionInitiatedBy,
+ Where.OBJECT_FORMS);
+
this.objectAction = objectAction;
this.args = args;
@@ -56,19 +67,6 @@ public class ActionArgVisibilityContext extends VisibilityContext<ActionArgument
}
@Override
- public ObjectAction getObjectAction() {
- return objectAction;
- }
-
- public ManagedObject[] getArgs() {
- return args;
- }
-
- public int getPosition() {
- return position;
- }
-
- @Override
public ActionArgumentVisibilityEvent createInteractionEvent() {
return new ActionArgumentVisibilityEvent(
unwrapPojo(getTarget()), getIdentifier(), unwrapPojoArray(getArgs()), getPosition());
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/ManagedObject.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/ManagedObject.java
index 32c7bcd..ddac7c5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/ManagedObject.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/ManagedObject.java
@@ -241,6 +241,18 @@ public interface ManagedObject {
return adapter != null ? adapter.getPojo() : null;
}
+ public static Object[] unwrapPojoArray(final Can<ManagedObject> adapters) {
+ if (adapters == null) {
+ return null;
+ }
+ final Object[] unwrappedObjects = new Object[adapters.size()];
+ int i = 0;
+ for (final ManagedObject adapter : adapters) {
+ unwrappedObjects[i++] = unwrapPojo(adapter);
+ }
+ return unwrappedObjects;
+ }
+
public static Object[] unwrapPojoArray(final ManagedObject[] adapters) {
if (adapters == null) {
return null;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/feature/ObjectActionParameter.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/feature/ObjectActionParameter.java
index b440c20..c1e550d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/feature/ObjectActionParameter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/feature/ObjectActionParameter.java
@@ -19,7 +19,6 @@
package org.apache.isis.metamodel.spec.feature;
-import java.util.function.Function;
import java.util.function.Predicate;
import javax.annotation.Nullable;
@@ -75,10 +74,10 @@ public interface ObjectActionParameter extends ObjectFeature, CurrentHolder {
// internal API
ActionArgValidityContext createProposedArgumentInteractionContext(
- final ManagedObject targetObject,
- final ManagedObject[] args,
- final int position,
- final InteractionInitiatedBy interactionInitiatedBy);
+ ManagedObject targetObject,
+ ManagedObject[] args,
+ int position,
+ InteractionInitiatedBy interactionInitiatedBy);
/**
@@ -92,10 +91,10 @@ public interface ObjectActionParameter extends ObjectFeature, CurrentHolder {
* user can choose from, based on the input search argument.
*/
ManagedObject[] getAutoComplete(
- final ManagedObject adapter,
- final Can<ManagedObject> dependentArgs,
- final String searchArg,
- final InteractionInitiatedBy interactionInitiatedBy);
+ ManagedObject adapter,
+ Can<ManagedObject> dependentArgs,
+ String searchArg,
+ InteractionInitiatedBy interactionInitiatedBy);
@@ -111,40 +110,40 @@ public interface ObjectActionParameter extends ObjectFeature, CurrentHolder {
* user can choose from.
*/
ManagedObject[] getChoices(
- final ManagedObject adapter,
- final ManagedObject[] argumentsIfAvailable,
- final InteractionInitiatedBy interactionInitiatedBy);
+ ManagedObject adapter,
+ Can<ManagedObject> dependentArgs,
+ InteractionInitiatedBy interactionInitiatedBy);
ManagedObject getDefault(
ManagedObject adapter,
- final ManagedObject[] argumentsIfAvailable,
- final Integer paramNumUpdated);
+ Can<ManagedObject> dependentArgs,
+ Integer paramNumUpdated);
/**
* Whether this parameter is visible given the entered previous arguments
* @param targetAdapter
- * @param pendingArguments
+ * @param dependentArgs
* @param interactionInitiatedBy
* @return
*/
Consent isVisible(
- final ManagedObject targetAdapter,
- final ManagedObject[] pendingArguments,
- final InteractionInitiatedBy interactionInitiatedBy);
+ ManagedObject targetAdapter,
+ Can<ManagedObject> dependentArgs,
+ InteractionInitiatedBy interactionInitiatedBy);
/**
* Whether this parameter is disabled given the entered previous arguments
* @param targetAdapter
- * @param pendingArguments
+ * @param dependentArgs
* @param interactionInitiatedBy
* @return
*/
Consent isUsable(
- final ManagedObject targetAdapter,
- final ManagedObject[] pendingArguments,
- final InteractionInitiatedBy interactionInitiatedBy);
+ ManagedObject targetAdapter,
+ Can<ManagedObject> dependentArgs,
+ InteractionInitiatedBy interactionInitiatedBy);
/**
* Whether proposed value for this parameter is valid.
@@ -160,19 +159,6 @@ public interface ObjectActionParameter extends ObjectFeature, CurrentHolder {
final InteractionInitiatedBy interactionInitiatedBy);
@Vetoed
- public static class Functions {
- public static final Function<ObjectActionParameter, String> GET_NAME =
- ObjectActionParameter::getName;
-
- public static final Function<ObjectActionParameter, Class<?>> GET_TYPE =
- (final ObjectActionParameter input) ->
- input.getSpecification().getCorrespondingClass();
-
- private Functions(){}
-
- }
-
- @Vetoed
public static class Predicates {
private Predicates(){}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
index 41a3a44..751759a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
@@ -268,10 +268,10 @@ implements ObjectActionParameter, FacetHolder.Delegating {
@Override
public ManagedObject[] getChoices(
final ManagedObject adapter,
- final ManagedObject[] argumentsIfAvailable,
+ final Can<ManagedObject> dependentArgs,
final InteractionInitiatedBy interactionInitiatedBy) {
- val args = argsForDefaultOrChoices(adapter, Can.ofArray(argumentsIfAvailable));
+ val args = argsForDefaultOrChoices(adapter, dependentArgs);
val target = targetForDefaultOrChoices(adapter);
return findChoices(target, args, interactionInitiatedBy);
@@ -279,41 +279,33 @@ implements ObjectActionParameter, FacetHolder.Delegating {
private ManagedObject[] findChoices(
final ManagedObject target,
- final Can<ManagedObject> args,
+ final Can<ManagedObject> dependentArgs,
final InteractionInitiatedBy interactionInitiatedBy) {
final List<ManagedObject> adapters = _Lists.newArrayList();
final ActionParameterChoicesFacet facet = getFacet(ActionParameterChoicesFacet.class);
if (facet != null) {
- final Object[] choices = facet.getChoices(target, args, interactionInitiatedBy);
+ final Object[] choices = facet.getChoices(target, dependentArgs, interactionInitiatedBy);
checkChoicesOrAutoCompleteType(getSpecificationLoader(), choices, getSpecification());
for (final Object choice : choices) {
ManagedObject adapter = choice != null? getObjectManager().adapt(choice) : null;
adapters.add(adapter);
}
}
- // now incorporated into above choices processing (BoundedFacet is no more)
- /*
- if (adapters.size() == 0 && BoundedFacetUtils.isBoundedSet(getSpecification())) {
- addAllInstancesForType(adapters);
- }
- */
return adapters.toArray(new ManagedObject[adapters.size()]);
}
-
-
// -- Defaults
@Override
public ManagedObject getDefault(
final ManagedObject adapter,
- final ManagedObject[] argumentsIfAvailable,
+ final Can<ManagedObject> dependentArgs,
final Integer paramNumUpdated) {
final ManagedObject target = targetForDefaultOrChoices(adapter);
- val args = argsForDefaultOrChoices(adapter, Can.ofArray(argumentsIfAvailable));
+ val args = argsForDefaultOrChoices(adapter, dependentArgs);
return findDefault(target, args, paramNumUpdated);
}
@@ -390,22 +382,22 @@ implements ObjectActionParameter, FacetHolder.Delegating {
private ActionArgVisibilityContext createArgumentVisibilityContext(
final ManagedObject objectAdapter,
- final ManagedObject[] proposedArguments,
+ final Can<ManagedObject> dependentArgs,
final int position,
final InteractionInitiatedBy interactionInitiatedBy) {
return new ActionArgVisibilityContext(
- objectAdapter, parentAction, getIdentifier(), proposedArguments, position, interactionInitiatedBy);
+ objectAdapter, parentAction, getIdentifier(), dependentArgs, position, interactionInitiatedBy);
}
@Override
public Consent isVisible(
final ManagedObject targetAdapter,
- final ManagedObject[] pendingArguments,
+ final Can<ManagedObject> dependentArgs,
final InteractionInitiatedBy interactionInitiatedBy) {
final VisibilityContext<?> ic = createArgumentVisibilityContext(
- targetAdapter, pendingArguments, getNumber(), interactionInitiatedBy
+ targetAdapter, dependentArgs, getNumber(), interactionInitiatedBy
);
final InteractionResult visibleResult = InteractionUtils.isVisibleResult(this, ic);
@@ -418,22 +410,27 @@ implements ObjectActionParameter, FacetHolder.Delegating {
private ActionArgUsabilityContext createArgumentUsabilityContext(
final ManagedObject objectAdapter,
- final ManagedObject[] proposedArguments,
+ final Can<ManagedObject> dependentArgs,
final int position,
final InteractionInitiatedBy interactionInitiatedBy) {
return new ActionArgUsabilityContext(
- objectAdapter, parentAction, getIdentifier(), proposedArguments, position, interactionInitiatedBy);
+ objectAdapter,
+ parentAction,
+ getIdentifier(),
+ dependentArgs,
+ position,
+ interactionInitiatedBy);
}
@Override
public Consent isUsable(
final ManagedObject targetAdapter,
- final ManagedObject[] pendingArguments,
+ final Can<ManagedObject> dependentArgs,
final InteractionInitiatedBy interactionInitiatedBy) {
final UsabilityContext<?> ic = createArgumentUsabilityContext(
- targetAdapter, pendingArguments, getNumber(), interactionInitiatedBy
+ targetAdapter, dependentArgs, getNumber(), interactionInitiatedBy
);
final InteractionResult usableResult = InteractionUtils.isUsableResult(this, ic);
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionArgumentModel.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionArgumentModel.java
index 2c43b83..17f5a4f 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionArgumentModel.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionArgumentModel.java
@@ -20,6 +20,7 @@ package org.apache.isis.viewer.wicket.model.models;
import org.apache.wicket.model.IModel;
+import org.apache.isis.commons.collections.Can;
import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.viewer.wicket.model.mementos.ActionParameterMemento;
@@ -29,5 +30,5 @@ public interface ActionArgumentModel extends IModel<ManagedObject> {
void reset();
- void setActionArgsHint(ManagedObject[] argumentsAsArray);
+ void setActionArgsHint(Can<ManagedObject> arguments);
}
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index fc4d901..0087c98 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -512,8 +512,8 @@ public class ActionModel extends BookmarkableModel<ManagedObject> implements For
val targetAdapter = getTargetAdapter();
final ManagedObject[] proposedArguments = getArgumentsAsArray();
final ObjectAction objectAction = getAction();
- final Consent validity = objectAction.isProposedArgumentSetValid(targetAdapter, proposedArguments,
- InteractionInitiatedBy.USER);
+ final Consent validity = objectAction
+ .isProposedArgumentSetValid(targetAdapter, proposedArguments, InteractionInitiatedBy.USER);
return validity.isAllowed() ? null : validity.getReason();
}
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index 49c1184..fdee81d 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -58,6 +58,8 @@ import org.apache.isis.viewer.wicket.model.mementos.ActionParameterMemento;
import org.apache.isis.viewer.wicket.model.mementos.PropertyMemento;
import org.apache.isis.webapp.context.memento.ObjectMemento;
+import lombok.Getter;
+import lombok.Setter;
import lombok.val;
@@ -187,12 +189,13 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
@Override
public ManagedObject getDefault(
final ScalarModel scalarModel,
- final ManagedObject[] argsIfAvailable,
+ final Can<ManagedObject> dependentArgs,
final int paramNumUpdated,
final AuthenticationSession authenticationSession) {
final PropertyMemento propertyMemento = scalarModel.getPropertyMemento();
- final OneToOneAssociation property = propertyMemento.getProperty(scalarModel.getSpecificationLoader());
+ final OneToOneAssociation property = propertyMemento
+ .getProperty(scalarModel.getSpecificationLoader());
ManagedObject parentAdapter = scalarModel.getParentEntityModel().load();
return property.getDefault(parentAdapter);
}
@@ -207,11 +210,12 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
@Override
public List<ManagedObject> getChoices(
final ScalarModel scalarModel,
- final ManagedObject[] argumentsIfAvailable,
+ final Can<ManagedObject> dependentArgs,
final AuthenticationSession authenticationSession) {
final PropertyMemento propertyMemento = scalarModel.getPropertyMemento();
- final OneToOneAssociation property = propertyMemento.getProperty(scalarModel.getSpecificationLoader());
+ final OneToOneAssociation property = propertyMemento
+ .getProperty(scalarModel.getSpecificationLoader());
ManagedObject parentAdapter = scalarModel.getParentEntityModel().load();
final ManagedObject[] choices = property.getChoices(
parentAdapter,
@@ -421,7 +425,7 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
@Override
public ManagedObject getDefault(
final ScalarModel scalarModel,
- final ManagedObject[] argsIfAvailable,
+ final Can<ManagedObject> dependentArgs,
final int paramNumUpdated,
final AuthenticationSession authenticationSession) {
@@ -430,7 +434,7 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
//XXX lombok issue, no val
ManagedObject parentAdapter = scalarModel.getParentEntityModel().load();
- return actionParameter.getDefault(parentAdapter, argsIfAvailable, paramNumUpdated);
+ return actionParameter.getDefault(parentAdapter, dependentArgs, paramNumUpdated);
}
@Override
@@ -442,7 +446,7 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
@Override
public List<ManagedObject> getChoices(
final ScalarModel scalarModel,
- final ManagedObject[] argumentsIfAvailable,
+ final Can<ManagedObject> dependentArgs,
final AuthenticationSession authenticationSession) {
final ActionParameterMemento parameterMemento = scalarModel.getParameterMemento();
@@ -454,7 +458,7 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
final ManagedObject[] choices =
actionParameter.getChoices(
parentAdapter,
- argumentsIfAvailable,
+ dependentArgs,
InteractionInitiatedBy.USER);
return choicesAsList(choices);
}
@@ -631,14 +635,14 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
public abstract ManagedObject getDefault(
ScalarModel scalarModel,
- ManagedObject[] argsIfAvailable,
+ Can<ManagedObject> dependentArgs,
int paramNumUpdated,
AuthenticationSession authenticationSession);
public abstract boolean hasChoices(ScalarModel scalarModel);
public abstract List<ManagedObject> getChoices(
ScalarModel scalarModel,
- ManagedObject[] argumentsIfAvailable,
+ Can<ManagedObject> dependentArgs,
AuthenticationSession authenticationSession);
public abstract boolean hasAutoComplete(ScalarModel scalarModel);
@@ -923,9 +927,10 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
}
public List<ManagedObject> getChoices(
- final ManagedObject[] argumentsIfAvailable,
+ final Can<ManagedObject> dependentArgs,
final AuthenticationSession authenticationSession) {
- return kind.getChoices(this, argumentsIfAvailable, authenticationSession);
+
+ return kind.getChoices(this, dependentArgs, authenticationSession);
}
public boolean hasAutoComplete() {
@@ -936,6 +941,7 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
final Can<ManagedObject> dependentArgs,
final String searchTerm,
final AuthenticationSession authenticationSession) {
+
return kind.getAutoComplete(this, dependentArgs, searchTerm, authenticationSession);
}
@@ -1241,25 +1247,14 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
associatedActionsIfProperty().hasAssociatedActionWithInlineAsIfEdit();
}
- // //////////////////////////////////////
-
- /**
- * transient because only temporary hint.
- */
- private transient ManagedObject[] actionArgsHint;
-
- @Override
- public void setActionArgsHint(ManagedObject[] actionArgsHint) {
- this.actionArgsHint = actionArgsHint;
- }
-
/**
* The initial call of choicesXxx() for any given scalar argument needs the current values
* of all args (possibly as initialized through a defaultNXxx().
+ * @implNote transient because only temporary hint.
*/
- public ManagedObject[] getActionArgsHint() {
- return actionArgsHint;
- }
+ @Getter @Setter
+ private transient Can<ManagedObject> actionArgsHint;
+
@Override
public String toString() {
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java
index d019897..3abb51e 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersForm.java
@@ -29,6 +29,8 @@ import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.repeater.RepeatingView;
import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.metamodel.consent.Consent;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.metamodel.spec.feature.ObjectAction;
@@ -78,7 +80,7 @@ class ActionParametersForm extends PromptFormAbstract<ActionModel> {
rv.add(container);
final ActionArgumentModel actionArgumentModel = actionModel.getArgumentModel(apm);
- actionArgumentModel.setActionArgsHint(actionModel.getArgumentsAsArray());
+ actionArgumentModel.setActionArgsHint(Can.ofArray(actionModel.getArgumentsAsArray()));
final ScalarPanelAbstract2 paramPanel = newParamPanel(container, actionArgumentModel);
paramPanels.add(paramPanel);
@@ -158,32 +160,33 @@ class ActionParametersForm extends PromptFormAbstract<ActionModel> {
final int paramNumberUpdated = scalarPanelUpdated.getModel().getParameterMemento().getNumber();
- {
- final ObjectAction action = actionModel.getActionMemento().getAction(getSpecificationLoader());
-
- final int numParams = action.getParameterCount();
-
- // only updates subsequent parameter panels to this one.
- for (int paramNumToUpdate = paramNumberUpdated + 1; paramNumToUpdate < numParams; paramNumToUpdate++) {
- final ScalarPanelAbstract2 paramPanel = paramPanels.get(paramNumToUpdate);
- final ScalarPanelAbstract2.Repaint repaint = paramPanel
- .updateIfNecessary(actionModel, paramNumberUpdated, paramNumToUpdate, target);
-
- final boolean multiPart = isMultiPart();
- switch (repaint) {
- case ENTIRE_FORM:
- target.add(this);
- break;
- case PARAM_ONLY:
- paramPanel.repaint(target);
- break;
- case NOTHING:
- break;
- default:
- throw new IllegalStateException("Unknown: " + repaint);
- }
+ val action = actionModel.getActionMemento().getAction(getSpecificationLoader());
+
+ final int numParams = action.getParameterCount();
+
+ // only updates subsequent parameter panels to this one.
+ for (int i = paramNumberUpdated + 1; i < numParams; i++) {
+
+ val paramNumToUpdate = i;
+ val paramPanel = paramPanels.get(paramNumToUpdate);
+ val repaint = paramPanel
+ .updateIfNecessary(actionModel, paramNumberUpdated, paramNumToUpdate, target);
+
+ final boolean multiPart = isMultiPart(); //TODO keep side-effects(?) or remove
+
+ switch (repaint) {
+ case ENTIRE_FORM:
+ target.add(this);
+ break;
+ case PARAM_ONLY:
+ paramPanel.repaint(target);
+ break;
+ case NOTHING:
+ break;
+ default:
+ throw _Exceptions.unmatchedCase(repaint);
}
- }
+ }
// previously this method was also doing:
// target.add(this);
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index b4fd2dc..3c4a139 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -39,6 +39,7 @@ import org.apache.wicket.model.Model;
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.PromptStyle;
import org.apache.isis.applib.services.metamodel.MetaModelService;
+import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.ioc.BeanSort;
@@ -134,7 +135,8 @@ implements ScalarModelSubscriber2 {
final AjaxRequestTarget target) {
final ObjectAction action = actionModel.getActionMemento().getAction(getSpecificationLoader());
- final ManagedObject[] pendingArguments = actionModel.getArgumentsAsArray();
+ val pendingArgumentArray = actionModel.getArgumentsAsArray();
+ val pendingArguments = Can.ofArray(pendingArgumentArray);
// could almost certainly simplify this... (used by visibility and usability checks)
@@ -143,7 +145,8 @@ implements ScalarModelSubscriber2 {
val realTargetAdapter = action.realTargetAdapter(targetAdapter);
// check visibility
- final Consent visibilityConsent = actionParameter.isVisible(realTargetAdapter, pendingArguments, InteractionInitiatedBy.USER);
+ final Consent visibilityConsent = actionParameter
+ .isVisible(realTargetAdapter, pendingArguments, InteractionInitiatedBy.USER);
final boolean visibilityBefore = isVisible();
final boolean visibilityAfter = visibilityConsent.isAllowed();
@@ -151,7 +154,8 @@ implements ScalarModelSubscriber2 {
// check usability
- final Consent usabilityConsent = actionParameter.isUsable(realTargetAdapter, pendingArguments, InteractionInitiatedBy.USER);
+ final Consent usabilityConsent = actionParameter
+ .isUsable(realTargetAdapter, pendingArguments, InteractionInitiatedBy.USER);
final boolean usabilityBefore = isEnabled();
final boolean usabilityAfter = usabilityConsent.isAllowed();
@@ -173,7 +177,7 @@ implements ScalarModelSubscriber2 {
final ActionParameterMemento apm = new ActionParameterMemento(actionParameter);
final ActionArgumentModel actionArgumentModel = actionModel.getArgumentModel(apm);
- val pendingArg = pendingArguments[paramNumToPossiblyUpdate];
+ val pendingArg = pendingArgumentArray[paramNumToPossiblyUpdate];
if (defaultIfAny != null) {
scalarModel.setObject(defaultIfAny);
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
index ac721fc..e9a609d 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
@@ -32,6 +32,7 @@ import org.apache.wicket.validation.IValidator;
import org.apache.wicket.validation.ValidationError;
import org.wicketstuff.select2.ChoiceProvider;
+import org.apache.isis.commons.collections.Can;
import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.viewer.wicket.model.models.ActionModel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
@@ -112,9 +113,9 @@ public abstract class ScalarPanelSelect2Abstract extends ScalarPanelAbstract2 {
/**
* sets up the choices, also ensuring that any currently held value is compatible.
*/
- private void setProviderAndCurrAndPending(Select2 select2, ManagedObject[] argsIfAvailable) {
+ private void setProviderAndCurrAndPending(Select2 select2, Can<ManagedObject> dependentArgs) {
- final ChoiceProvider<ObjectMemento> choiceProvider = buildChoiceProvider(argsIfAvailable);
+ final ChoiceProvider<ObjectMemento> choiceProvider = buildChoiceProvider(dependentArgs);
select2.setProvider(choiceProvider);
getModel().clearPending();
@@ -126,12 +127,12 @@ public abstract class ScalarPanelSelect2Abstract extends ScalarPanelAbstract2 {
}
/**
- * Mandatory hook (is called by {@link #setProviderAndCurrAndPending(Select2, ManagedObject[])})
+ * Mandatory hook (is called by {@link #setProviderAndCurrAndPending(Select2, Can<ManagedObject>)})
*/
- protected abstract ChoiceProvider<ObjectMemento> buildChoiceProvider(ManagedObject[] argsIfAvailable);
+ protected abstract ChoiceProvider<ObjectMemento> buildChoiceProvider(Can<ManagedObject> dependentArgs);
/**
- * Mandatory hook (is called by {@link #setProviderAndCurrAndPending(Select2, ManagedObject[])})
+ * Mandatory hook (is called by {@link #setProviderAndCurrAndPending(Select2, Can<ManagedObject>)})
*/
protected abstract void syncIfNull(Select2 select2, List<ObjectMemento> choicesMementos);
@@ -178,27 +179,28 @@ public abstract class ScalarPanelSelect2Abstract extends ScalarPanelAbstract2 {
final int paramNumToPossiblyUpdate,
final AjaxRequestTarget target) {
- final ManagedObject[] argumentsAsArray = actionModel.getArgumentsAsArray();
+ val arguments = Can.ofArray(actionModel.getArgumentsAsArray());
- final Repaint repaint =
- super.updateIfNecessary(actionModel, paramNumUpdated, paramNumToPossiblyUpdate, target);
+ val repaint = super.updateIfNecessary(actionModel, paramNumUpdated, paramNumToPossiblyUpdate, target);
- final boolean choicesUpdated = updateChoices(argumentsAsArray);
+ final boolean choicesUpdated = updateChoices(arguments);
- if (repaint == Repaint.NOTHING)
- if (choicesUpdated)
+ if (repaint == Repaint.NOTHING) {
+ if (choicesUpdated) {
return Repaint.PARAM_ONLY;
- else
+ } else {
return Repaint.NOTHING;
- else
+ }
+ } else {
return repaint;
+ }
}
- private boolean updateChoices(ManagedObject[] argsIfAvailable) {
+ private boolean updateChoices(Can<ManagedObject> dependentArgs) {
if (select2 == null) {
return false;
}
- setProviderAndCurrAndPending(select2, argsIfAvailable);
+ setProviderAndCurrAndPending(select2, dependentArgs);
return true;
}
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index e8fee23..2182da8 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -35,6 +35,7 @@ import org.apache.wicket.model.Model;
import org.wicketstuff.select2.ChoiceProvider;
import org.wicketstuff.select2.Settings;
+import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.metamodel.facets.object.autocomplete.AutoCompleteFacet;
@@ -341,18 +342,18 @@ public class ReferencePanel extends ScalarPanelSelect2Abstract {
// //////////////////////////////////////
@Override
- protected ChoiceProvider<ObjectMemento> buildChoiceProvider(ManagedObject[] argsIfAvailable) {
+ protected ChoiceProvider<ObjectMemento> buildChoiceProvider(Can<ManagedObject> dependentArgs) {
val commonContext = super.getCommonContext();
if (getModel().hasChoices()) {
- val choices = getModel().getChoices(argsIfAvailable, commonContext.getAuthenticationSession());
+ val choices = getModel().getChoices(dependentArgs, commonContext.getAuthenticationSession());
val choiceMementos = _Lists.map(choices, commonContext::mementoFor);
return new ObjectAdapterMementoProviderForReferenceChoices(getModel(), choiceMementos);
}
if(getModel().hasAutoComplete()) {
- val dependentArgMementos = _NullSafe.stream(argsIfAvailable)
+ val dependentArgMementos = dependentArgs.stream()
.map(commonContext::mementoFor)
.collect(Collectors.toCollection(ArrayList::new)); // serializable
return new ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete(
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
index 9b2d1e2..15f09de 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
@@ -31,6 +31,7 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.wicketstuff.select2.ChoiceProvider;
+import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.metamodel.spec.ManagedObject;
@@ -76,12 +77,12 @@ public class ValueChoicesSelect2Panel extends ScalarPanelSelect2Abstract {
}
- private List<ObjectMemento> getChoiceMementos(final ManagedObject[] argumentsIfAvailable) {
+ private List<ObjectMemento> getChoiceMementos(final Can<ManagedObject> dependentArgs) {
val commonContext = super.getCommonContext();
val choices =
- scalarModel.getChoices(argumentsIfAvailable, commonContext.getAuthenticationSession());
+ scalarModel.getChoices(dependentArgs, commonContext.getAuthenticationSession());
return _Lists.map(choices, commonContext::mementoFor);
}
@@ -167,8 +168,8 @@ public class ValueChoicesSelect2Panel extends ScalarPanelSelect2Abstract {
// in corresponding code in ReferencePanelFactory, these is a branch for different types of providers
// (choice vs autoComplete). Here though - because values don't currently support autoComplete - no branch is required
@Override
- protected ChoiceProvider<ObjectMemento> buildChoiceProvider(ManagedObject[] argsIfAvailable) {
- final List<ObjectMemento> choicesMementos = getChoiceMementos(argsIfAvailable);
+ protected ChoiceProvider<ObjectMemento> buildChoiceProvider(Can<ManagedObject> dependentArgs) {
+ final List<ObjectMemento> choicesMementos = getChoiceMementos(dependentArgs);
return new ObjectAdapterMementoProviderForValueChoices(scalarModel, choicesMementos);
}