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 14:53:38 UTC
[isis] branch master updated: ISIS-2226: implements autoComplete
with dependent args
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 dc668f3 ISIS-2226: implements autoComplete with dependent args
dc668f3 is described below
commit dc668f3c93c87be34ae95adab6c05d455541579e
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Dec 17 15:53:30 2019 +0100
ISIS-2226: implements autoComplete with dependent args
- still requires n+1, n+2, ... arguments to be cleared when argument n
is updated (choices already does this)
---
.../spec/feature/ObjectActionParameter.java | 3 +-
.../specimpl/ObjectActionParameterAbstract.java | 3 +-
.../ObjectActionParameterContributeeAbstract.java | 4 +-
.../ObjectActionParameterMixedInAbstract.java | 5 ++-
.../viewer/wicket/model/models/ScalarModel.java | 13 +++---
.../isis/viewer/wicket/ui/IsisModuleWicketUi.java | 18 +++++++++
.../scalars/ScalarPanelSelect2Abstract.java | 2 +-
.../scalars/reference/ReferencePanel.java | 35 ++++++----------
...tAdapterMementoProviderForReferenceChoices.java | 18 ---------
...entoProviderForReferenceObjectAutoComplete.java | 18 ---------
...derForReferenceParamOrPropertyAutoComplete.java | 42 +++++++++----------
...bjectAdapterMementoProviderForValueChoices.java | 47 +++++++---------------
12 files changed, 82 insertions(+), 126 deletions(-)
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 b1c560f..b440c20 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
@@ -25,6 +25,7 @@ import java.util.function.Predicate;
import javax.annotation.Nullable;
import javax.enterprise.inject.Vetoed;
+import org.apache.isis.commons.collections.Can;
import org.apache.isis.metamodel.consent.Consent;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.metamodel.facets.all.named.NamedFacet;
@@ -92,7 +93,7 @@ public interface ObjectActionParameter extends ObjectFeature, CurrentHolder {
*/
ManagedObject[] getAutoComplete(
final ManagedObject adapter,
- final ManagedObject[] argumentsIfAvailable,
+ final Can<ManagedObject> dependentArgs,
final String searchArg,
final InteractionInitiatedBy interactionInitiatedBy);
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 6b8ab42..41a3a44 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
@@ -231,7 +231,7 @@ implements ObjectActionParameter, FacetHolder.Delegating {
@Override
public ManagedObject[] getAutoComplete(
final ManagedObject adapter,
- final ManagedObject[] argumentsIfAvailable,
+ final Can<ManagedObject> dependentArgs,
final String searchArg,
final InteractionInitiatedBy interactionInitiatedBy) {
@@ -239,7 +239,6 @@ implements ObjectActionParameter, FacetHolder.Delegating {
final ActionParameterAutoCompleteFacet facet = getFacet(ActionParameterAutoCompleteFacet.class);
if (facet != null) {
- val dependentArgs = Can.ofArray(argumentsIfAvailable);
final Object[] choices = facet
.autoComplete(adapter, dependentArgs, searchArg, interactionInitiatedBy);
checkChoicesOrAutoCompleteType(getSpecificationLoader(), choices, getSpecification());
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectActionParameterContributeeAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectActionParameterContributeeAbstract.java
index a77d47d..bfd9492 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectActionParameterContributeeAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectActionParameterContributeeAbstract.java
@@ -59,13 +59,13 @@ implements ObjectActionParameterContributee {
@Override
public ManagedObject[] getAutoComplete(
final ManagedObject adapter,
- final ManagedObject[] argumentsIfAvailable,
+ final Can<ManagedObject> dependentArgs,
final String searchArg,
final InteractionInitiatedBy interactionInitiatedBy) {
return serviceActionParameter.getAutoComplete(
getServiceAdapter(),
- argumentsIfAvailable,
+ dependentArgs,
searchArg,
interactionInitiatedBy);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectActionParameterMixedInAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectActionParameterMixedInAbstract.java
index 85f5f76..955e013 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectActionParameterMixedInAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectActionParameterMixedInAbstract.java
@@ -18,6 +18,7 @@
*/
package org.apache.isis.metamodel.specloader.specimpl;
+import org.apache.isis.commons.collections.Can;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.metamodel.facetapi.FeatureType;
import org.apache.isis.metamodel.interactions.ActionArgValidityContext;
@@ -44,13 +45,13 @@ implements ObjectActionParameterMixedIn {
@Override
public ManagedObject[] getAutoComplete(
final ManagedObject mixedInAdapter,
- final ManagedObject[] argumentsIfAvailable,
+ final Can<ManagedObject> dependentArgs,
final String searchArg,
final InteractionInitiatedBy interactionInitiatedBy) {
return mixinParameter.getAutoComplete(
mixinAdapterFor(mixedInAdapter),
- argumentsIfAvailable,
+ dependentArgs,
searchArg,
interactionInitiatedBy);
}
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 6358505..49c1184 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
@@ -28,6 +28,7 @@ import java.util.stream.Stream;
import org.apache.isis.applib.annotation.PromptStyle;
import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.collections._Lists;
@@ -229,7 +230,7 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
@Override
public List<ManagedObject> getAutoComplete(
final ScalarModel scalarModel,
- final ManagedObject[] argumentsIfAvailable, // ignored for properties
+ final Can<ManagedObject> dependentArgs, // ignored for properties
final String searchArg,
final AuthenticationSession authenticationSession) {
@@ -467,7 +468,7 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
@Override
public List<ManagedObject> getAutoComplete(
final ScalarModel scalarModel,
- final ManagedObject[] argumentsIfAvailable,
+ final Can<ManagedObject> dependentArgs,
final String searchArg,
final AuthenticationSession authenticationSession) {
@@ -477,7 +478,7 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
ManagedObject parentAdapter = scalarModel.getParentEntityModel().load();
final ManagedObject[] choices = actionParameter.getAutoComplete(
parentAdapter,
- argumentsIfAvailable,
+ dependentArgs,
searchArg,
InteractionInitiatedBy.USER);
return choicesAsList(choices);
@@ -643,7 +644,7 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
public abstract boolean hasAutoComplete(ScalarModel scalarModel);
public abstract List<ManagedObject> getAutoComplete(
ScalarModel scalarModel,
- ManagedObject[] argumentsIfAvailable,
+ Can<ManagedObject> dependentArgs,
String searchArg,
AuthenticationSession authenticationSession);
@@ -932,10 +933,10 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
}
public List<ManagedObject> getAutoComplete(
- final ManagedObject[] argumentsIfAvailable,
+ final Can<ManagedObject> dependentArgs,
final String searchTerm,
final AuthenticationSession authenticationSession) {
- return kind.getAutoComplete(this, argumentsIfAvailable, searchTerm, authenticationSession);
+ return kind.getAutoComplete(this, dependentArgs, searchTerm, authenticationSession);
}
/**
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleWicketUi.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleWicketUi.java
index 7d68e7c..9ac09a1 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleWicketUi.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleWicketUi.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;
import org.springframework.context.annotation.Configuration;
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 8ef8945..ac721fc 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
@@ -120,7 +120,7 @@ public abstract class ScalarPanelSelect2Abstract extends ScalarPanelAbstract2 {
getModel().clearPending();
if(choiceProvider instanceof ObjectAdapterMementoProviderForChoices) {
- final ObjectAdapterMementoProviderForChoices providerForChoices = (ObjectAdapterMementoProviderForChoices) choiceProvider;
+ val providerForChoices = (ObjectAdapterMementoProviderForChoices) choiceProvider;
syncIfNull(select2, providerForChoices.getChoiceMementos());
}
}
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 efb0921..e8fee23 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
@@ -19,7 +19,9 @@
package org.apache.isis.viewer.wicket.ui.components.scalars.reference;
+import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
@@ -33,6 +35,7 @@ import org.apache.wicket.model.Model;
import org.wicketstuff.select2.ChoiceProvider;
import org.wicketstuff.select2.Settings;
+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;
import org.apache.isis.metamodel.spec.ManagedObject;
@@ -339,32 +342,27 @@ public class ReferencePanel extends ScalarPanelSelect2Abstract {
@Override
protected ChoiceProvider<ObjectMemento> buildChoiceProvider(ManagedObject[] argsIfAvailable) {
-
+
+ val commonContext = super.getCommonContext();
+
if (getModel().hasChoices()) {
- List<ObjectMemento> choiceMementos = obtainChoiceMementos(argsIfAvailable);
+ val choices = getModel().getChoices(argsIfAvailable, commonContext.getAuthenticationSession());
+ val choiceMementos = _Lists.map(choices, commonContext::mementoFor);
return new ObjectAdapterMementoProviderForReferenceChoices(getModel(), choiceMementos);
}
if(getModel().hasAutoComplete()) {
- return new ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete(getModel());
+ val dependentArgMementos = _NullSafe.stream(argsIfAvailable)
+ .map(commonContext::mementoFor)
+ .collect(Collectors.toCollection(ArrayList::new)); // serializable
+ return new ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete(
+ getModel(), dependentArgMementos);
}
return new ObjectAdapterMementoProviderForReferenceObjectAutoComplete(getModel());
}
// called by setProviderAndCurrAndPending
- private List<ObjectMemento> obtainChoiceMementos(ManagedObject[] argsIfAvailable) {
-
- val commonContext = super.getCommonContext();
-
- val choices = _Lists.<ManagedObject>newArrayList();
- if(getModel().hasChoices()) {
- choices.addAll(getModel().getChoices(argsIfAvailable, commonContext.getAuthenticationSession()));
- }
- return _Lists.map(choices, commonContext::mementoFor);
- }
-
- // called by setProviderAndCurrAndPending
@Override
protected void syncIfNull(final Select2 select2, final List<ObjectMemento> choiceMementos) {
final ObjectMemento curr = select2.getModelObject();
@@ -379,13 +377,6 @@ public class ReferencePanel extends ScalarPanelSelect2Abstract {
}
}
- //TODO [ahuber ]not used, remove?
- // private boolean autoSelect() {
- // final boolean disableAutoSelect = getConfiguration().getBoolean(KEY_DISABLE_DEPENDENT_CHOICE_AUTO_SELECTION, false);
- // final boolean autoSelect = !disableAutoSelect;
- // return autoSelect;
- // }
-
// //////////////////////////////////////
// getInput, convertInput
// //////////////////////////////////////
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
index bfa64b3..d88269b 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
@@ -16,24 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-/*
- * 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.List;
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
index 8b7fae6..67da2df 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
@@ -16,24 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-/*
- * 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.List;
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
index f5fc184..c32bd91 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
@@ -16,28 +16,13 @@
* specific language governing permissions and limitations
* under the License.
*/
-/*
- * 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.ArrayList;
import java.util.List;
+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.spec.ManagedObject;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
@@ -49,9 +34,15 @@ public class ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete
extends ObjectAdapterMementoProviderAbstract {
private static final long serialVersionUID = 1L;
+
+ private final ArrayList<ObjectMemento> dependentArgMementos;
- public ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete(ScalarModel model) {
+ public ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete(
+ ScalarModel model,
+ ArrayList<ObjectMemento> dependentArgMementos) {
+
super(model);
+ this.dependentArgMementos = dependentArgMementos;
}
@Override
@@ -61,8 +52,8 @@ extends ObjectAdapterMementoProviderAbstract {
val autoCompleteChoices = _Lists.<ManagedObject>newArrayList();
if (getScalarModel().hasAutoComplete()) {
- // this implementation will not recover any dependentArgs
- val dependentArgs = (ManagedObject[])null;
+ // recover any dependentArgs
+ val dependentArgs = reconstructDependentArgs(dependentArgMementos);
val autoCompleteAdapters = getScalarModel()
.getAutoComplete(dependentArgs, term, commonContext.getAuthenticationSession());
autoCompleteChoices.addAll(autoCompleteAdapters);
@@ -71,5 +62,14 @@ extends ObjectAdapterMementoProviderAbstract {
return _Lists.map(autoCompleteChoices, commonContext::mementoFor);
}
+
+ private Can<ManagedObject> reconstructDependentArgs(List<ObjectMemento> dependentArgMementos) {
+ val commonContext = super.getCommonContext();
+ val dependentArgsStream = _NullSafe.stream(dependentArgMementos)
+ .map(commonContext::reconstructObject)
+ .map(ManagedObject.class::cast);
+
+ return Can.ofStream(dependentArgsStream);
+ }
}
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
index ee298d5..b9e0f56 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
@@ -16,24 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-/*
- * 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;
@@ -44,41 +26,40 @@ import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.webapp.context.memento.ObjectMemento;
+import lombok.Getter;
+import lombok.val;
+
public class ObjectAdapterMementoProviderForValueChoices
-extends ObjectAdapterMementoProviderAbstract implements ObjectAdapterMementoProviderForChoices {
+extends ObjectAdapterMementoProviderAbstract
+implements ObjectAdapterMementoProviderForChoices {
private static final long serialVersionUID = 1L;
- private final List<ObjectMemento> choicesMementos;
+
+ @Getter(onMethod = @__(@Override))
+ private final List<ObjectMemento> choiceMementos;
public ObjectAdapterMementoProviderForValueChoices(
ScalarModel scalarModel,
List<ObjectMemento> choicesMementos) {
super(scalarModel);
- this.choicesMementos = choicesMementos;
+ this.choiceMementos = choicesMementos;
}
@Override
protected List<ObjectMemento> obtainMementos(String term) {
- return obtainMementos(term, choicesMementos);
- }
-
- @Override
- public List<ObjectMemento> getChoiceMementos() {
- return choicesMementos;
+ return obtainMementos(term, choiceMementos);
}
@Override
public Collection<ObjectMemento> toChoices(final Collection<String> ids) {
final List<ObjectMemento> mementos = obtainMementos(null);
- final Predicate<ObjectMemento> lookupOam = new Predicate<ObjectMemento>() {
- @Override
- public boolean test(ObjectMemento input) {
- final String id = getIdValue(input);
- return ids.contains(id);
- }
+ final Predicate<ObjectMemento> lookupOam = (ObjectMemento input) -> {
+ val id = getIdValue(input);
+ return ids.contains(id);
};
+
return _Lists.filter(mementos, lookupOam);
}