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 2022/08/25 11:26:45 UTC
[isis] branch master updated: ISIS-3172: refactoring choice-providers
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 842cb8c13f ISIS-3172: refactoring choice-providers
842cb8c13f is described below
commit 842cb8c13f5928fc67f0dbc3b96dd788972e4b01
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Aug 25 13:26:38 2022 +0200
ISIS-3172: refactoring choice-providers
---
.../ui/components/scalars/ScalarPanelAbstract.java | 2 +-
.../scalars/ScalarPanelFormFieldAbstract.java | 9 +-
.../select2/providers/ChoiceProviderAbstract.java | 142 +++++++++++++++++++++
...ices.java => ChoiceProviderForScalarModel.java} | 50 ++++----
.../ObjectAdapterMementoProviderAbstract.java | 115 +----------------
.../ObjectAdapterMementoProviderForChoices.java | 30 -----
...tAdapterMementoProviderForReferenceChoices.java | 18 +--
...entoProviderForReferenceObjectAutoComplete.java | 4 +-
...derForReferenceParamOrPropertyAutoComplete.java | 4 +-
...bjectAdapterMementoProviderForValueChoices.java | 23 ++--
...tAdapterMementoProviderForValueChoicesTest.java | 2 +-
11 files changed, 202 insertions(+), 197 deletions(-)
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 1158c6bdb3..dd10f2d16b 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -128,7 +128,7 @@ implements ScalarModelSubscriber {
public boolean isEditingAny() {
return this==EDITING
|| this==CAN_EDIT_INLINE_VIA_ACTION;}
- public boolean isCanEditAny() {
+ public boolean isViewingAndCanEditAny() {
return this==CAN_EDIT
|| this==CAN_EDIT_INLINE
|| this==CAN_EDIT_INLINE_VIA_ACTION; }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
index d567781b66..a9876d96cc 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
@@ -151,13 +151,20 @@ extends ScalarPanelAbstract2 {
xrayDetails.put("scalarModel.disableReasonIfAny", ""+scalarModel().disableReasonIfAny());
xrayDetails.put("scalarModel.whetherHidden", ""+scalarModel().whetherHidden());
xrayDetails.put("scalarModel.identifier", ""+scalarModel().getIdentifier());
+ xrayDetails.put("scalarModel.choices (count)", ""+scalarModel().getChoices().size());
+ xrayDetails.put("scalarModel.metaModel.featureIdentifier", ""+scalarModel().getMetaModel().getFeatureIdentifier());
+ xrayDetails.put("scalarModel.scalarTypeSpec", ""+scalarModel().getScalarTypeSpec().toString());
+ xrayDetails.put("scalarModel.pendingValue", ""+scalarModel().getSpecialization()
+ .fold(
+ param->""+param.getValue(),
+ prop->""+prop.getPendingPropertyModel().getValueAsTitle().getValue()));
Wkt.markupAdd(fieldFrame, ID_XRAY_DETAILS, XrayWkt.formatAsListGroup(xrayDetails));
});
if(renderScenario.isReadonly()) {
fieldFrame.add(FieldFrame.SCALAR_VALUE_CONTAINER
.createComponent(this::createComponentForOutput));
- } else if(renderScenario.isCanEditAny()) {
+ } else if(renderScenario.isViewingAndCanEditAny()) {
// this results in a link created;
// link stuff is handled later in ScalarPanelAbstract2.setupInlinePrompt
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstract.java
new file mode 100644
index 0000000000..cf9da8dd01
--- /dev/null
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstract.java
@@ -0,0 +1,142 @@
+package org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers;
+
+import java.util.Collection;
+import java.util.stream.Collectors;
+
+import org.apache.wicket.util.string.Strings;
+import org.springframework.lang.Nullable;
+import org.wicketstuff.select2.ChoiceProvider;
+
+import org.apache.isis.applib.services.i18n.TranslationContext;
+import org.apache.isis.applib.services.placeholder.PlaceholderRenderService;
+import org.apache.isis.applib.services.placeholder.PlaceholderRenderService.PlaceholderLiteral;
+import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.internal.base._NullSafe;
+import org.apache.isis.core.config.IsisConfiguration.Viewer.Wicket;
+import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
+import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMementoForEmpty;
+import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.runtime.context.IsisAppCommonContext.HasCommonContext;
+
+import lombok.val;
+
+public abstract class ChoiceProviderAbstract
+extends ChoiceProvider<ObjectMemento>
+implements HasCommonContext {
+ private static final long serialVersionUID = 1L;
+
+ /** arbitrary string */
+ private static final String NULL_ID = "VGN6r6zKTiLhUsA0WkdQ17LvMU1IYdb0";
+
+ /**
+ * Whether to not prepend <code>null</code> as choice candidate.
+ */
+ protected abstract boolean isRequired();
+
+ /**
+ * Get choice candidates with filtering (don't include <code>null</code>).
+ */
+ protected abstract Can<ObjectMemento> query(@Nullable String term);
+
+ protected abstract @Nullable ObjectMemento mementoFromId(final String id);
+
+ @Override
+ public final String getDisplayValue(final ObjectMemento choiceMemento) {
+ if (choiceMemento == null
+ || choiceMemento instanceof ObjectMementoForEmpty) {
+ return getPlaceholderRenderService().asText(PlaceholderLiteral.NULL_REPRESENTATION);
+ }
+ return translate(choiceMemento.getTitle());
+ }
+
+ @Override
+ public final String getIdValue(final ObjectMemento choiceMemento) {
+ if (choiceMemento == null) {
+ return NULL_ID;
+ }
+ return choiceMemento.bookmark().stringify();
+ }
+
+ @Override
+ public final void query(
+ final String term,
+ final int page,
+ final org.wicketstuff.select2.Response<ObjectMemento> response) {
+
+ val mementosFiltered = query(term);
+
+ if(isRequired()) {
+ response.addAll(mementosFiltered.toList());
+ return;
+ }
+
+ // else, if not mandatory, prepend null
+ val mementosIncludingNull = mementosFiltered.toArrayList();
+ mementosIncludingNull.add(0, null);
+
+ response.addAll(mementosIncludingNull);
+ }
+
+ @Override // not final, as Value Choices override this, because they don't use idToMemento(..)
+ public /*final*/ Collection<ObjectMemento> toChoices(final Collection<String> ids) {
+ return _NullSafe.stream(ids)
+ .map(this::mementoFromIdWithNullHandling)
+ .collect(Collectors.toList());
+ }
+
+ // -- UTILITY
+
+ /**
+ * Filters all choices against a term by using their
+ * {@link ManagedObject#titleString() title string}
+ *
+ * @param term The term entered by the user
+ * @param choiceMementos The collections of choices to filter
+ * @return A list of all matching choices
+ */
+ protected final Can<ObjectMemento> filter(
+ final String term,
+ final Can<ObjectMemento> choiceMementos) {
+
+ if (Strings.isEmpty(term)) {
+ return choiceMementos;
+ }
+
+ val translationContext = TranslationContext.empty();
+ val translator = getCommonContext().getTranslationService();
+ val termLower = term.toLowerCase();
+
+ return choiceMementos.filter((final ObjectMemento candidateMemento)->{
+ val title = translator.translate(translationContext, candidateMemento.getTitle());
+ return title.toLowerCase().contains(termLower);
+ });
+
+ }
+
+ // -- HELPER
+
+ private @Nullable ObjectMemento mementoFromIdWithNullHandling(final String id) {
+ if(NULL_ID.equals(id)) {
+ return null;
+ }
+ return mementoFromId(id);
+ }
+
+ // -- DEPENDENCIES
+
+ protected final Wicket getSettings() {
+ return getCommonContext().getConfiguration().getViewer().getWicket();
+ }
+
+ /**
+ * Translate without context: Tooltips, Button-Labels, etc.
+ */
+ protected String translate(final String input) {
+ return getCommonContext().getTranslationService().translate(TranslationContext.empty(), input);
+ }
+
+ protected PlaceholderRenderService getPlaceholderRenderService() {
+ return getCommonContext().getPlaceholderRenderService();
+ }
+
+}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForScalarModel.java
similarity index 53%
copy from viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
copy to viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForScalarModel.java
index f3ad3aa40c..8fce0d765c 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForScalarModel.java
@@ -18,48 +18,48 @@
*/
package org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers;
-import java.util.Collection;
-
-import org.apache.isis.commons.collections.Can;
+import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
+import org.apache.isis.core.runtime.context.IsisAppCommonContext;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
import lombok.val;
+import lombok.experimental.Accessors;
-public class ObjectAdapterMementoProviderForValueChoices
-extends ObjectAdapterMementoProviderAbstract
-implements ObjectAdapterMementoProviderForChoices {
+@RequiredArgsConstructor
+public abstract class ChoiceProviderForScalarModel
+extends ChoiceProviderAbstract {
private static final long serialVersionUID = 1L;
- public ObjectAdapterMementoProviderForValueChoices(
- final ScalarModel scalarModel) {
- super(scalarModel);
- }
+ @Getter @Accessors(fluent = true)
+ private final ScalarModel scalarModel;
@Override
- public Can<ObjectMemento> getChoiceMementos() {
- val commonContext = super.getCommonContext();
- val choices = getScalarModel().getChoices();
- return choices.map(commonContext::mementoFor);
+ protected final boolean isRequired() {
+ return scalarModel().isRequired();
}
- @Override
- protected Can<ObjectMemento> obtainMementos(final String term) {
- return obtainMementos(term, getChoiceMementos());
+ /** whether this adapter is dependent on previous (pending) arguments */
+ public boolean dependsOnPreviousArgs() {
+ return true;
}
@Override
- public Collection<ObjectMemento> toChoices(final Collection<String> ids) {
-
- return obtainMementos(null)
- .filter((final ObjectMemento input) -> {
- val id = getIdValue(input);
- return ids.contains(id);
- })
- .toList();
+ protected ObjectMemento mementoFromId(final String id) {
+ val memento = Bookmark.parse(id)
+ .map(getCommonContext()::mementoForBookmark)
+ .orElse(null); // FIXME if can't recreated from bookmark, there might be a bug
+ return memento;
}
+ // -- DEPS
+ @Override
+ public IsisAppCommonContext getCommonContext() {
+ return scalarModel().getCommonContext();
+ }
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
index 7efdc1940b..6bced0896c 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
@@ -18,79 +18,26 @@
*/
package org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers;
-import java.util.Collection;
-import java.util.List;
-import java.util.stream.Collectors;
-
import org.apache.wicket.util.string.Strings;
import org.springframework.lang.Nullable;
-import org.wicketstuff.select2.ChoiceProvider;
import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.applib.services.i18n.TranslationContext;
-import org.apache.isis.applib.services.placeholder.PlaceholderRenderService;
-import org.apache.isis.applib.services.placeholder.PlaceholderRenderService.PlaceholderLiteral;
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.core.config.IsisConfiguration.Viewer.Wicket;
import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
-import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMementoForEmpty;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.runtime.context.IsisAppCommonContext;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import lombok.Getter;
import lombok.val;
public abstract class ObjectAdapterMementoProviderAbstract
-extends ChoiceProvider<ObjectMemento> {
+extends ChoiceProviderForScalarModel {
private static final long serialVersionUID = 1L;
- protected static final String NULL_PLACEHOLDER = "VGN6r6zKTiLhUsA0WkdQ17LvMU1IYdb0";
-
- @Getter private final ScalarModel scalarModel;
- private transient IsisAppCommonContext commonContext;
-
- public ObjectAdapterMementoProviderAbstract(final ScalarModel scalarModel) {
- this.scalarModel = scalarModel;
- }
-
- @Override
- public String getDisplayValue(final ObjectMemento choiceMemento) {
- if (choiceMemento == null
- || choiceMemento instanceof ObjectMementoForEmpty) {
- return getPlaceholderRenderService().asText(PlaceholderLiteral.NULL_REPRESENTATION);
- }
- return translate(choiceMemento.getTitle());
+ protected ObjectAdapterMementoProviderAbstract(final ScalarModel scalarModel) {
+ super(scalarModel);
}
- @Override
- public String getIdValue(final ObjectMemento choiceMemento) {
- if (choiceMemento == null) {
- return NULL_PLACEHOLDER;
- }
- return choiceMemento.bookmark().stringify();
- }
-
- @Override
- public void query(
- final String term,
- final int page,
- final org.wicketstuff.select2.Response<ObjectMemento> response) {
-
- final List<ObjectMemento> mementos = _Lists.newArrayList(obtainMementos(term));
- // if not mandatory, and the list doesn't contain null already, then add it in.
- if(!scalarModel.isRequired()
- && !mementos.contains(null)) {
- mementos.add(0, null);
- }
- response.addAll(mementos);
- }
-
- protected abstract Can<ObjectMemento> obtainMementos(String term);
-
/**
* Filters all choices against a term by using their
* {@link ManagedObject#titleString() title string}
@@ -106,64 +53,14 @@ extends ChoiceProvider<ObjectMemento> {
if (Strings.isEmpty(term)) {
return choicesMementos;
}
-
- val commonContext = getCommonContext();
-
- return choicesMementos.filter((final ObjectMemento candidate)->{
- val objectAdapter = commonContext.reconstructObject(candidate);
- val title = objectAdapter.titleString();
- return title.toLowerCase().contains(term.toLowerCase());
- });
-
+ return super.filter(term, choicesMementos);
}
- @Override
- public Collection<ObjectMemento> toChoices(final Collection<String> ids) {
-
- return _NullSafe.stream(ids)
- .map(this::idToMemento)
- .collect(Collectors.toList());
- }
-
- /** whether this adapter is dependent on previous (pending) arguments */
- public boolean dependsOnPreviousArgs() {
- return true;
- }
-
- // -- DEPENDENCIES
-
- protected IsisAppCommonContext getCommonContext() {
- if(commonContext==null) {
- commonContext = scalarModel.getCommonContext();
- }
- return commonContext;
- }
-
- protected final Wicket getSettings() {
- return getCommonContext().getConfiguration().getViewer().getWicket();
- }
-
- // -- HELPER
-
- private @Nullable ObjectMemento idToMemento(final String id) {
- if(NULL_PLACEHOLDER.equals(id)) {
- return null;
- }
+ protected @Nullable ObjectMemento idToMemento(final String id) {
val memento = Bookmark.parse(id)
.map(getCommonContext()::mementoForBookmark)
- .orElse(null);
+ .orElse(null); //FIXME did something go wrong?
return memento;
}
- /**
- * Translate without context: Tooltips, Button-Labels, etc.
- */
- private String translate(final String input) {
- return getCommonContext().getTranslationService().translate(TranslationContext.empty(), input);
- }
-
- private PlaceholderRenderService getPlaceholderRenderService() {
- return getCommonContext().getPlaceholderRenderService();
- }
-
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForChoices.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForChoices.java
deleted file mode 100644
index d0a700ce02..0000000000
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForChoices.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers;
-
-import org.apache.isis.commons.collections.Can;
-import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
-
-public interface ObjectAdapterMementoProviderForChoices {
-
- Can<ObjectMemento> getChoiceMementos();
-
-
-}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
index 07b53eb3b1..c3fa1d0a45 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
@@ -22,11 +22,8 @@ import org.apache.isis.commons.collections.Can;
import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import lombok.val;
-
public class ObjectAdapterMementoProviderForReferenceChoices
-extends ObjectAdapterMementoProviderAbstract
-implements ObjectAdapterMementoProviderForChoices {
+extends ObjectAdapterMementoProviderAbstract {
private static final long serialVersionUID = 1L;
@@ -36,16 +33,13 @@ implements ObjectAdapterMementoProviderForChoices {
}
@Override
- public Can<ObjectMemento> getChoiceMementos() {
- val commonContext = super.getCommonContext();
- val choices = getScalarModel().getChoices(); // must not return detached entities
- val choiceMementos = choices.map(commonContext::mementoForParameter);
- return choiceMementos;
+ protected Can<ObjectMemento> query(final String term) {
+ return super.obtainMementos(term, queryAll());
}
- @Override
- protected Can<ObjectMemento> obtainMementos(final String term) {
- return super.obtainMementos(term, getChoiceMementos());
+ private Can<ObjectMemento> queryAll() {
+ return scalarModel().getChoices() // must not return detached entities
+ .map(getCommonContext()::mementoForParameter);
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
index 992093b210..5b1900f5d5 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
@@ -35,8 +35,8 @@ extends ObjectAdapterMementoProviderAbstract {
}
@Override
- protected Can<ObjectMemento> obtainMementos(final String term) {
- val scalarTypeSpec = getScalarModel().getScalarTypeSpec();
+ protected Can<ObjectMemento> query(final String term) {
+ val scalarTypeSpec = scalarModel().getScalarTypeSpec();
val autoCompleteAdapters = Facets.autoCompleteExecute(scalarTypeSpec, term);
return autoCompleteAdapters.map(getCommonContext()::mementoFor);
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
index c9309a3656..efd976bc32 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
@@ -42,10 +42,10 @@ extends ObjectAdapterMementoProviderAbstract {
}
@Override
- protected Can<ObjectMemento> obtainMementos(final String term) {
+ protected Can<ObjectMemento> query(final String term) {
val commonContext = getCommonContext();
- val scalarModel = getScalarModel();
+ val scalarModel = scalarModel();
val pendingArgs = scalarModel.isParameter()
? ((ParameterUiModel)scalarModel).getParameterNegotiationModel().getParamValues()
: Can.<ManagedObject>empty();
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
index f3ad3aa40c..b6592e1120 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
@@ -27,8 +27,7 @@ import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import lombok.val;
public class ObjectAdapterMementoProviderForValueChoices
-extends ObjectAdapterMementoProviderAbstract
-implements ObjectAdapterMementoProviderForChoices {
+extends ObjectAdapterMementoProviderAbstract {
private static final long serialVersionUID = 1L;
@@ -38,21 +37,13 @@ implements ObjectAdapterMementoProviderForChoices {
}
@Override
- public Can<ObjectMemento> getChoiceMementos() {
- val commonContext = super.getCommonContext();
- val choices = getScalarModel().getChoices();
- return choices.map(commonContext::mementoFor);
- }
-
- @Override
- protected Can<ObjectMemento> obtainMementos(final String term) {
- return obtainMementos(term, getChoiceMementos());
+ protected Can<ObjectMemento> query(final String term) {
+ return obtainMementos(term, queryAll());
}
@Override
public Collection<ObjectMemento> toChoices(final Collection<String> ids) {
-
- return obtainMementos(null)
+ return queryAll()//query(null)
.filter((final ObjectMemento input) -> {
val id = getIdValue(input);
return ids.contains(id);
@@ -60,6 +51,10 @@ implements ObjectAdapterMementoProviderForChoices {
.toList();
}
-
+ // protected in support of JUnit testing
+ protected Can<ObjectMemento> queryAll() {
+ return scalarModel().getChoices()
+ .map(getCommonContext()::mementoFor);
+ }
}
diff --git a/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java b/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
index 30bc2f7efd..0fd9e71535 100644
--- a/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
+++ b/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
@@ -88,7 +88,7 @@ public class ObjectAdapterMementoProviderForValueChoicesTest {
provider = new ObjectAdapterMementoProviderForValueChoices(mockScalarModel) {
private static final long serialVersionUID = 1L;
- @Override public org.apache.isis.commons.collections.Can<ObjectMemento> getChoiceMementos() {
+ @Override public org.apache.isis.commons.collections.Can<ObjectMemento> queryAll() {
return mementos; };
};