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 414d902e0b ISIS-3172: remove shallow ChoiceProviders
414d902e0b is described below
commit 414d902e0be246a7c772a935223e7f0b921acd45
Author: Andi Huber <[email protected]>
AuthorDate: Thu Aug 25 14:14:54 2022 +0200
ISIS-3172: remove shallow ChoiceProviders
---
.../scalars/reference/ReferencePanel.java | 15 +----
.../valuechoices/ValueChoicesSelect2Panel.java | 4 +-
.../widgets/select2/Select2ChoiceExt.java | 4 +-
.../widgets/select2/Select2MultiChoiceExt.java | 4 +-
...va => ChoiceProviderAbstactForScalarModel.java} | 11 +++-
.../select2/providers/ChoiceProviderAbstract.java | 40 +++++++++++++
...plete.java => ChoiceProviderForReferences.java} | 54 ++++++++++++++----
...ueChoices.java => ChoiceProviderForValues.java} | 8 +--
.../select2/providers/EmptyChoiceProvider.java | 51 -----------------
.../ObjectAdapterMementoProviderAbstract.java | 66 ----------------------
...tAdapterMementoProviderForReferenceChoices.java | 46 ---------------
...entoProviderForReferenceObjectAutoComplete.java | 45 ---------------
...tAdapterMementoProviderForValueChoicesTest.java | 6 +-
13 files changed, 107 insertions(+), 247 deletions(-)
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index c12e8116b8..0585c1a53c 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -45,9 +45,7 @@ import
org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
import
org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelSelectAbstract;
import
org.apache.isis.viewer.wicket.ui.components.widgets.entitysimplelink.EntityLinkSimplePanel;
import org.apache.isis.viewer.wicket.ui.components.widgets.select2.Select2;
-import
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ObjectAdapterMementoProviderForReferenceChoices;
-import
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ObjectAdapterMementoProviderForReferenceObjectAutoComplete;
-import
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete;
+import
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderForReferences;
import org.apache.isis.viewer.wicket.ui.util.Wkt;
import org.apache.isis.viewer.wicket.ui.util.Wkt.EventTopic;
import org.apache.isis.viewer.wicket.ui.util.WktComponents;
@@ -258,16 +256,7 @@ public class ReferencePanel extends
ScalarPanelSelectAbstract {
@Override
protected ChoiceProvider<ObjectMemento> buildChoiceProvider() {
-
- val scalarModel = scalarModel();
-
- if (scalarModel.hasChoices()) {
- return new
ObjectAdapterMementoProviderForReferenceChoices(scalarModel);
- }
- if(scalarModel.hasAutoComplete()) {
- return new
ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete(scalarModel);
- }
- return new
ObjectAdapterMementoProviderForReferenceObjectAutoComplete(scalarModel);
+ return new ChoiceProviderForReferences(scalarModel());
}
// -- GET INPUT AS TITLE
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
index 5b429fe799..e643170047 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
@@ -32,7 +32,7 @@ import
org.apache.isis.viewer.commons.model.StringForRendering;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import
org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
import
org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelSelectAbstract;
-import
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ObjectAdapterMementoProviderForValueChoices;
+import
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderForValues;
import org.apache.isis.viewer.wicket.ui.util.Wkt;
import org.apache.isis.viewer.wicket.ui.util.WktTooltips;
@@ -143,7 +143,7 @@ extends ScalarPanelSelectAbstract {
// (choice vs autoComplete). Here though - because values don't currently
support autoComplete - no branch is required
@Override
protected ChoiceProvider<ObjectMemento> buildChoiceProvider() {
- return new ObjectAdapterMementoProviderForValueChoices(scalarModel());
+ return new ChoiceProviderForValues(scalarModel());
}
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
index 00ce375b7b..937522b358 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
@@ -24,7 +24,7 @@ import org.wicketstuff.select2.Select2Choice;
import org.apache.isis.applib.id.LogicalType;
import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.EmptyChoiceProvider;
+import
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderAbstract;
import lombok.Getter;
@@ -47,7 +47,7 @@ implements ChoiceExt {
final String id,
final IModel<ObjectMemento> model,
final ScalarModel scalarModel) {
- super(id, model, EmptyChoiceProvider.INSTANCE);
+ super(id, model, ChoiceProviderAbstract.empty());
logicalType = scalarModel.getScalarTypeSpec().getLogicalType();
getSettings().setCloseOnSelect(true);
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
index 7cec176803..99de1721ff 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
@@ -28,7 +28,7 @@ import org.apache.isis.applib.id.LogicalType;
import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.EmptyChoiceProvider;
+import
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderAbstract;
import lombok.Getter;
import lombok.val;
@@ -55,7 +55,7 @@ implements
final IModel<Collection<ObjectMemento>> model,
final ScalarModel scalarModel) {
- super(id, model, EmptyChoiceProvider.INSTANCE);
+ super(id, model, ChoiceProviderAbstract.empty());
logicalType = scalarModel.getScalarTypeSpec().getLogicalType();
getSettings().setCloseOnSelect(true);
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForScalarModel.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstactForScalarModel.java
similarity index 83%
rename from
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForScalarModel.java
rename to
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstactForScalarModel.java
index 8fce0d765c..01da18d3d8 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForScalarModel.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstactForScalarModel.java
@@ -23,13 +23,14 @@ 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.AccessLevel;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.val;
import lombok.experimental.Accessors;
-@RequiredArgsConstructor
-public abstract class ChoiceProviderForScalarModel
+@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
+public abstract class ChoiceProviderAbstactForScalarModel
extends ChoiceProviderAbstract {
private static final long serialVersionUID = 1L;
@@ -51,7 +52,11 @@ extends ChoiceProviderAbstract {
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
+ .orElseGet(()->{
+ // FIXME if can't be recreated from bookmark, there might
be a bug
+ System.err.printf("cannot recreate ObjectMemento from
id=%s%n", id);
+ return null;
+ });
return memento;
}
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
index cf9da8dd01..1b485d2b3b 100644
---
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
@@ -1,3 +1,21 @@
+/*
+ * 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 java.util.Collection;
@@ -6,6 +24,7 @@ import java.util.stream.Collectors;
import org.apache.wicket.util.string.Strings;
import org.springframework.lang.Nullable;
import org.wicketstuff.select2.ChoiceProvider;
+import org.wicketstuff.select2.Response;
import org.apache.isis.applib.services.i18n.TranslationContext;
import org.apache.isis.applib.services.placeholder.PlaceholderRenderService;
@@ -25,6 +44,27 @@ extends ChoiceProvider<ObjectMemento>
implements HasCommonContext {
private static final long serialVersionUID = 1L;
+ // -- EMPTY CHOICE PROVIDER
+
+ public static class EmptyChoiceProvider extends
ChoiceProvider<ObjectMemento> {
+ private static final long serialVersionUID = 1L;
+ @Override public String getDisplayValue(final ObjectMemento object) {
+ return null; }
+ @Override public String getIdValue(final ObjectMemento object) {
+ return null; }
+ @Override public void query(
+ final String term, final int page, final
Response<ObjectMemento> response) {}
+ @Override public Collection<ObjectMemento> toChoices(final
Collection<String> ids) {
+ return null;}
+ }
+ private static final EmptyChoiceProvider EMPTY = new EmptyChoiceProvider();
+
+ public static EmptyChoiceProvider empty() {
+ return EMPTY;
+ }
+
+ // --
+
/** arbitrary string */
private static final String NULL_ID = "VGN6r6zKTiLhUsA0WkdQ17LvMU1IYdb0";
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/ChoiceProviderForReferences.java
similarity index 66%
rename from
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
rename to
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForReferences.java
index efd976bc32..2b749ed4df 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/ChoiceProviderForReferences.java
@@ -20,30 +20,65 @@ package
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.base._NullSafe;
-import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.util.Facets;
import org.apache.isis.viewer.commons.model.feature.ParameterUiModel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import lombok.val;
-public class
ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete
-extends ObjectAdapterMementoProviderAbstract {
+public class ChoiceProviderForReferences
+extends ChoiceProviderAbstactForScalarModel {
private static final long serialVersionUID = 1L;
- public
ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete(final
ScalarModel scalarModel) {
- super(scalarModel);
- if(!scalarModel.hasAutoComplete()) {
- throw _Exceptions.illegalArgument("Cannot create auto-complete
provider, "
- + "when model has no auto-complete %s", scalarModel);
+ static enum Mode {
+ CHOICES,
+ AUTO_COMPLETE,
+ FALLBACK;
+ static Mode valueOf(final ScalarModel scalarModel) {
+ if (scalarModel.hasChoices()) {
+ return Mode.CHOICES;
+ } else if(scalarModel.hasAutoComplete()) {
+ return Mode.AUTO_COMPLETE;
+ } else {
+ return Mode.FALLBACK;
+ }
}
}
+ private final Mode mode;
+
+ public ChoiceProviderForReferences(
+ final ScalarModel scalarModel) {
+ super(scalarModel);
+ this.mode = Mode.valueOf(scalarModel);
+ }
+
@Override
protected Can<ObjectMemento> query(final String term) {
+ switch(mode) {
+ case CHOICES:
+ return super.filter(term, queryAll());
+ case AUTO_COMPLETE:
+ return queryWithAutoComplete(term);
+ case FALLBACK:
+ // fall through
+ }
+ val scalarTypeSpec = scalarModel().getScalarTypeSpec();
+ val autoCompleteAdapters = Facets.autoCompleteExecute(scalarTypeSpec,
term);
+ return autoCompleteAdapters.map(getCommonContext()::mementoFor);
+ }
+ // -- HELPER
+
+ private Can<ObjectMemento> queryAll() {
+ return scalarModel().getChoices() // must not return detached entities
+ .map(getCommonContext()::mementoForParameter);
+ }
+
+ private Can<ObjectMemento> queryWithAutoComplete(final String term) {
val commonContext = getCommonContext();
val scalarModel = scalarModel();
val pendingArgs = scalarModel.isParameter()
@@ -67,8 +102,6 @@ extends ObjectAdapterMementoProviderAbstract {
.map(commonContext::mementoFor);
}
- // -- HELPER
-
private Can<ManagedObject> reconstructPendingArgs(
final ParameterUiModel parameterModel,
final Can<ObjectMemento> pendingArgMementos) {
@@ -82,4 +115,5 @@ extends ObjectAdapterMementoProviderAbstract {
return pendingArgsList;
}
+
}
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/ChoiceProviderForValues.java
similarity index 89%
rename from
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
rename to
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForValues.java
index b6592e1120..b0dc468a1b 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/ChoiceProviderForValues.java
@@ -26,19 +26,19 @@ import
org.apache.isis.viewer.wicket.model.models.ScalarModel;
import lombok.val;
-public class ObjectAdapterMementoProviderForValueChoices
-extends ObjectAdapterMementoProviderAbstract {
+public class ChoiceProviderForValues
+extends ChoiceProviderAbstactForScalarModel {
private static final long serialVersionUID = 1L;
- public ObjectAdapterMementoProviderForValueChoices(
+ public ChoiceProviderForValues(
final ScalarModel scalarModel) {
super(scalarModel);
}
@Override
protected Can<ObjectMemento> query(final String term) {
- return obtainMementos(term, queryAll());
+ return filter(term, queryAll());
}
@Override
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/EmptyChoiceProvider.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/EmptyChoiceProvider.java
deleted file mode 100644
index c9ad4baea6..0000000000
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/EmptyChoiceProvider.java
+++ /dev/null
@@ -1,51 +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 java.util.Collection;
-
-import org.wicketstuff.select2.ChoiceProvider;
-import org.wicketstuff.select2.Response;
-
-import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
-
-public class EmptyChoiceProvider extends ChoiceProvider<ObjectMemento> {
- private static final long serialVersionUID = 1L;
-
- public static final EmptyChoiceProvider INSTANCE = new
EmptyChoiceProvider();
-
- @Override
- public String getDisplayValue(ObjectMemento object) {
- return null;
- }
-
- @Override
- public String getIdValue(ObjectMemento object) {
- return null;
- }
-
- @Override
- public void query(String term, int page, Response<ObjectMemento> response)
{
- }
-
- @Override
- public Collection<ObjectMemento> toChoices(Collection<String> ids) {
- return null;
- }
-}
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
deleted file mode 100644
index 6bced0896c..0000000000
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
+++ /dev/null
@@ -1,66 +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.wicket.util.string.Strings;
-import org.springframework.lang.Nullable;
-
-import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.commons.collections.Can;
-import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-
-import lombok.val;
-
-public abstract class ObjectAdapterMementoProviderAbstract
-extends ChoiceProviderForScalarModel {
-
- private static final long serialVersionUID = 1L;
-
- protected ObjectAdapterMementoProviderAbstract(final ScalarModel
scalarModel) {
- super(scalarModel);
- }
-
- /**
- * Filters all choices against a term by using their
- * {@link ManagedObject#titleString() title string}
- *
- * @param term The term entered by the user
- * @param choicesMementos The collections of choices to filter
- * @return A list of all matching choices
- */
- protected final Can<ObjectMemento> obtainMementos(
- final String term,
- final Can<ObjectMemento> choicesMementos) {
-
- if (Strings.isEmpty(term)) {
- return choicesMementos;
- }
- return super.filter(term, choicesMementos);
- }
-
- protected @Nullable ObjectMemento idToMemento(final String id) {
- val memento = Bookmark.parse(id)
- .map(getCommonContext()::mementoForBookmark)
- .orElse(null); //FIXME did something go wrong?
- return memento;
- }
-
-}
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
deleted file mode 100644
index c3fa1d0a45..0000000000
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
+++ /dev/null
@@ -1,46 +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;
-import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-
-public class ObjectAdapterMementoProviderForReferenceChoices
-extends ObjectAdapterMementoProviderAbstract {
-
- private static final long serialVersionUID = 1L;
-
- public ObjectAdapterMementoProviderForReferenceChoices(
- final ScalarModel scalarModel) {
- super(scalarModel);
- }
-
- @Override
- protected Can<ObjectMemento> query(final String term) {
- return super.obtainMementos(term, queryAll());
- }
-
- 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
deleted file mode 100644
index 5b1900f5d5..0000000000
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
+++ /dev/null
@@ -1,45 +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;
-import org.apache.isis.core.metamodel.util.Facets;
-import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-
-import lombok.val;
-
-public class ObjectAdapterMementoProviderForReferenceObjectAutoComplete
-extends ObjectAdapterMementoProviderAbstract {
-
- private static final long serialVersionUID = 1L;
-
- public ObjectAdapterMementoProviderForReferenceObjectAutoComplete(final
ScalarModel model) {
- super(model);
- }
-
- @Override
- 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/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 0fd9e71535..de2cc76b3a 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
@@ -40,7 +40,7 @@ import
org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.runtime.context.IsisAppCommonContext;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ObjectAdapterMementoProviderForValueChoices;
+import
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderForValues;
import lombok.val;
@@ -53,7 +53,7 @@ public class ObjectAdapterMementoProviderForValueChoicesTest {
private ObjectMemento mockMemento1;
private ObjectMemento mockMemento2;
- private ObjectAdapterMementoProviderForValueChoices provider;
+ private ChoiceProviderForValues provider;
@Mock private SpecificationLoader mockSpecificationLoader;
@Mock private ObjectSpecification mockSpec;
@@ -86,7 +86,7 @@ public class ObjectAdapterMementoProviderForValueChoicesTest {
will(returnValue(true));
}});
- provider = new
ObjectAdapterMementoProviderForValueChoices(mockScalarModel) {
+ provider = new ChoiceProviderForValues(mockScalarModel) {
private static final long serialVersionUID = 1L;
@Override public
org.apache.isis.commons.collections.Can<ObjectMemento> queryAll() {
return mementos; };