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 f8f3615 ISIS-2666: remove AssociateWithFacet
f8f3615 is described below
commit f8f36158a478c3bcd5e8ebb8bd869e78bcb892fc
Author: [email protected] <[email protected]@luna>
AuthorDate: Fri May 14 19:31:05 2021 +0200
ISIS-2666: remove AssociateWithFacet
---
.../action/ActionAnnotationFacetFactory.java | 7 +-
.../actions/layout/ActionLayoutFacetFactory.java | 7 +-
.../facets/actions/layout/AssociateWithFacet.java | 30 ---------
.../actions/layout/AssociateWithFacetAbstract.java | 40 ------------
...ociateWithFacetDerivedFromChoicesFromFacet.java | 47 --------------
...ssociateWithFacetForActionLayoutAnnotation.java | 47 --------------
.../layout/AssociateWithFacetForLayoutXml.java | 59 -----------------
.../members/layout/group/GroupIdAndName.java | 26 +++++++-
.../members/layout/group/LayoutGroupFacet.java | 5 +-
.../LayoutGroupFacetFromActionAnnotation.java | 5 ++
...eAssociateWithFromChoicesFromPostProcessor.java | 75 ----------------------
.../dflt/ProgrammingModelFacetsJava8.java | 2 -
.../services/grid/GridSystemServiceAbstract.java | 4 --
.../core/metamodel/spec/feature/ObjectAction.java | 56 ++++++++--------
14 files changed, 66 insertions(+), 344 deletions(-)
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
index c7e7307..8abd6d6 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
@@ -26,6 +26,7 @@ import org.apache.isis.applib.events.domain.ActionDomainEvent;
import org.apache.isis.applib.mixins.system.HasInteractionId;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Collections;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
@@ -272,16 +273,18 @@ extends FacetFactoryAbstract {
val choicesFrom = action.choicesFrom();
if(_Strings.isNotEmpty(choicesFrom)) {
super.addFacet(new
ChoicesFromFacetForActionAnnotation(choicesFrom, facetedMethod));
-
super.addFacet(LayoutGroupFacetFromActionAnnotation.create(actionIfAny,
facetedMethod));
return;
}
@SuppressWarnings("deprecation")
val associateWith = action.associateWith();
if(_Strings.isNotEmpty(associateWith)) {
super.addFacet(new
ChoicesFromFacetForActionAnnotation(associateWith, facetedMethod));
-
super.addFacet(LayoutGroupFacetFromActionAnnotation.create(actionIfAny,
facetedMethod));
+ return;
}
});
+
+
FacetUtil.addIfNotAlreadyPresent(LayoutGroupFacetFromActionAnnotation.create(actionIfAny,
facetedMethod));
+
}
void processFileAccept(final ProcessMethodContext processMethodContext,
Optional<Action> actionIfAny) {
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
index c0a5f09..6bc7e54 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
@@ -57,11 +57,6 @@ extends FacetFactoryAbstract {
() -> MetaModelValidatorForAmbiguousMixinAnnotations
.addValidationFailure(processMethodContext.getFacetHolder(),
ActionLayout.class));
- // associatedWith
- AssociateWithFacetForActionLayoutAnnotation associatedWithFacet =
AssociateWithFacetForActionLayoutAnnotation
- .create(actionLayoutIfAny, facetHolder);
- super.addFacet(associatedWithFacet);
-
// bookmarkable
BookmarkPolicyFacet bookmarkableFacet =
BookmarkPolicyFacetForActionLayoutAnnotation
.create(actionLayoutIfAny, facetHolder);
@@ -83,7 +78,7 @@ extends FacetFactoryAbstract {
HiddenFacet hiddenFacet =
HiddenFacetForActionLayoutAnnotation.create(actionLayoutIfAny, facetHolder);
super.addFacet(hiddenFacet);
- // layoutGroup
+ // layoutGroup (explicit via field set, or implicit via associated
collection)
LayoutGroupFacet layoutGroupFacet =
LayoutGroupFacetFromActionLayoutAnnotation.create(actionLayoutIfAny,
facetHolder);
super.addFacet(layoutGroupFacet);
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacet.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacet.java
deleted file mode 100644
index a2a1b45..0000000
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacet.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.core.metamodel.facets.actions.layout;
-
-import org.apache.isis.core.metamodel.facets.SingleStringValueFacet;
-
-/**
- * Associates an action with a <i>peer</i> (a collection or property),
- * such that it is rendered close to its peer.
- */
-public interface AssociateWithFacet extends SingleStringValueFacet {
-
-}
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetAbstract.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetAbstract.java
deleted file mode 100644
index 3f68d3f..0000000
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetAbstract.java
+++ /dev/null
@@ -1,40 +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.core.metamodel.facets.actions.layout;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.SingleStringValueFacetAbstract;
-
-public abstract class AssociateWithFacetAbstract
-extends SingleStringValueFacetAbstract
-implements AssociateWithFacet {
-
- public static Class<? extends Facet> type() {
- return AssociateWithFacet.class;
- }
-
- protected AssociateWithFacetAbstract(
- final String value,
- final FacetHolder holder) {
- super(type(), holder, value);
- }
-
-}
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetDerivedFromChoicesFromFacet.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetDerivedFromChoicesFromFacet.java
deleted file mode 100644
index 1cfa6d1..0000000
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetDerivedFromChoicesFromFacet.java
+++ /dev/null
@@ -1,47 +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.core.metamodel.facets.actions.layout;
-
-import java.util.Optional;
-
-import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import
org.apache.isis.core.metamodel.facets.actions.action.associateWith.ChoicesFromFacet;
-
-public class AssociateWithFacetDerivedFromChoicesFromFacet extends
AssociateWithFacetAbstract {
-
- public static AssociateWithFacetDerivedFromChoicesFromFacet create(
- final Optional<ChoicesFromFacet> choicesFromFacetIfAny,
- final FacetHolder holder) {
-
- return choicesFromFacetIfAny
- .map(ChoicesFromFacet::value)
- .filter(_Strings::isNotEmpty)
- .map(associateWith -> new
AssociateWithFacetDerivedFromChoicesFromFacet(associateWith, holder))
- .orElse(null);
- }
-
- private AssociateWithFacetDerivedFromChoicesFromFacet(
- final String value,
- final FacetHolder holder) {
- super(value, holder);
- }
-
-}
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetForActionLayoutAnnotation.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetForActionLayoutAnnotation.java
deleted file mode 100644
index e10ac40..0000000
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetForActionLayoutAnnotation.java
+++ /dev/null
@@ -1,47 +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.core.metamodel.facets.actions.layout;
-
-import java.util.Optional;
-
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-
-public class AssociateWithFacetForActionLayoutAnnotation extends
AssociateWithFacetAbstract {
-
- public static AssociateWithFacetForActionLayoutAnnotation create(
- final Optional<ActionLayout> actionLayoutIfAny,
- final FacetHolder holder) {
-
- return actionLayoutIfAny
- .map(ActionLayout::associateWith)
- .filter(_Strings::isNotEmpty)
- .map(associateWith -> new
AssociateWithFacetForActionLayoutAnnotation(associateWith, holder))
- .orElse(null);
- }
-
- private AssociateWithFacetForActionLayoutAnnotation(
- final String value,
- final FacetHolder holder) {
- super(value, holder);
- }
-
-}
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetForLayoutXml.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetForLayoutXml.java
deleted file mode 100644
index 46464f4..0000000
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetForLayoutXml.java
+++ /dev/null
@@ -1,59 +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.core.metamodel.facets.actions.layout;
-
-import javax.annotation.Nullable;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import
org.apache.isis.core.metamodel.facets.members.layout.group.GroupIdAndName;
-
-import lombok.NonNull;
-
-public class AssociateWithFacetForLayoutXml extends AssociateWithFacetAbstract
{
-
- // -- FACTORIES
-
- public static @Nullable AssociateWithFacetForLayoutXml create(
- final @Nullable GroupIdAndName groupIdAndName,
- final @NonNull FacetHolder holder) {
-
- return groupIdAndName!=null
- ? new AssociateWithFacetForLayoutXml(groupIdAndName.getId(),
holder)
- : null;
- }
-
-// public static @Nullable AssociatedWithFacetFromLayoutXml create(
-// final @NonNull FieldSet fieldSet,
-// final @NonNull FacetHolder holder) {
-//
-// return GroupIdAndName.forFieldSet(fieldSet)
-// .map(groupIdAndName->create(groupIdAndName, holder))
-// .orElse(null);
-// }
-
- // -- IMPLEMENTATION
-
- private AssociateWithFacetForLayoutXml(
- final String value,
- final FacetHolder holder) {
- super(value, holder);
- }
-
-}
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/GroupIdAndName.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/GroupIdAndName.java
index 079da77..0c63555 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/GroupIdAndName.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/GroupIdAndName.java
@@ -63,17 +63,37 @@ implements
// -- FACTORIES FOR ANNOTATIONS
+ @SuppressWarnings("deprecation")
public static Optional<GroupIdAndName> forAction(
final @NonNull Action action) {
+
+ val nonLegacy = GroupIdAndName.inferIfOneMissing(
+ action.choicesFrom(),
+ null);
+
+ if(nonLegacy.isPresent()) {
+ return nonLegacy;
+ }
+
return GroupIdAndName.inferIfOneMissing(
- action.associateWith(), null);
+ action.associateWith(),
+ null);
}
public static Optional<GroupIdAndName> forActionLayout(
final @NonNull ActionLayout actionLayout) {
- return GroupIdAndName.inferIfOneMissing(
+
+ val explicit = GroupIdAndName.inferIfOneMissing(
actionLayout.fieldSetId(),
actionLayout.fieldSetName());
+
+ if(explicit.isPresent()) {
+ return explicit;
+ }
+
+ return GroupIdAndName.inferIfOneMissing(
+ actionLayout.associateWith(),
+ null);
}
public static Optional<GroupIdAndName> forPropertyLayout(
@@ -174,4 +194,6 @@ implements
}
+
+
}
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacet.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacet.java
index 89fce63..224684e 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacet.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacet.java
@@ -30,7 +30,7 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
* {@link ActionLayout#fieldSetName()} and {@link
PropertyLayout#fieldSetName()}.
* <p>
* Collections don't support grouping, but can be associated using
- * {@link Action#associateWith()}.
+ * {@link ActionLayout#associateWith()}.
* </p><p>
* An alternative is to use the <code>Xxx.layout.xml</code> file,
* where <code>Xxx</code> is the domain object name.
@@ -38,7 +38,8 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
* For a more in depth description see {@link PropertyLayout#fieldSetId()}.
* </p>
*
- * @see Action#associateWith()
+ * @see Action#choicesFrom()
+ * @see ActionLayout#associateWith()
* @see ActionLayout#fieldSetId()
* @see ActionLayout#fieldSetName()
* @see PropertyLayout#fieldSetId()
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacetFromActionAnnotation.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacetFromActionAnnotation.java
index b50dd49..e778e36 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacetFromActionAnnotation.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacetFromActionAnnotation.java
@@ -40,4 +40,9 @@ extends LayoutGroupFacetAbstract {
super(groupIdAndName, holder);
}
+ @Override
+ public boolean isFallback() {
+ return true;
+ }
+
}
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/DeriveAssociateWithFromChoicesFromPostProcessor.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/DeriveAssociateWithFromChoicesFromPostProcessor.java
deleted file mode 100644
index 9a95be4..0000000
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/DeriveAssociateWithFromChoicesFromPostProcessor.java
+++ /dev/null
@@ -1,75 +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.core.metamodel.postprocessors.all;
-
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import
org.apache.isis.core.metamodel.facets.actions.action.associateWith.ChoicesFromFacet;
-import org.apache.isis.core.metamodel.facets.actions.layout.AssociateWithFacet;
-import
org.apache.isis.core.metamodel.facets.actions.layout.AssociateWithFacetDerivedFromChoicesFromFacet;
-import
org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberFactory;
-import
org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory;
-import
org.apache.isis.core.metamodel.postprocessors.ObjectSpecificationPostProcessorAbstract;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
-import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
-import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-
-/**
- * Replaces some of the functionality in {@link
DescribedAsFacetOnMemberFactory} and
- * {@link DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory}.
- */
-public class DeriveAssociateWithFromChoicesFromPostProcessor
-extends ObjectSpecificationPostProcessorAbstract {
-
- @Override
- protected void doPostProcess(ObjectSpecification objectSpecification) {
- // no-op
- }
-
- @Override
- protected void doPostProcess(ObjectSpecification objectSpecification,
final ObjectAction objectAction) {
- if(objectAction.containsNonFallbackFacet(AssociateWithFacet.class)) {
- return;
- }
-
FacetUtil.addFacet(AssociateWithFacetDerivedFromChoicesFromFacet.create(
- objectAction.lookupNonFallbackFacet(ChoicesFromFacet.class),
- facetedMethodFor(objectAction)));
- }
-
- @Override
- protected void doPostProcess(ObjectSpecification objectSpecification,
ObjectAction objectAction,
- ObjectActionParameter param) {
- // no-op
- }
-
- @Override
- protected void doPostProcess(ObjectSpecification objectSpecification,
OneToOneAssociation prop) {
- // no-op
-
- }
-
- @Override
- protected void doPostProcess(ObjectSpecification objectSpecification,
OneToManyAssociation coll) {
- // no-op
- }
-
-
-}
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
index 6d77ca0..3b3fdac 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
@@ -141,7 +141,6 @@ import
org.apache.isis.core.metamodel.methods.MemberSupportAnnotationEnforcesSup
import org.apache.isis.core.metamodel.methods.MethodByClassMap;
import
org.apache.isis.core.metamodel.methods.OrphanedSupportingMethodValidator;
import
org.apache.isis.core.metamodel.postprocessors.DeriveMixinMembersPostProcessor;
-import
org.apache.isis.core.metamodel.postprocessors.all.DeriveAssociateWithFromChoicesFromPostProcessor;
import
org.apache.isis.core.metamodel.postprocessors.all.DeriveDescribedAsFromTypePostProcessor;
import
org.apache.isis.core.metamodel.postprocessors.all.i18n.TranslationPostProcessor;
import
org.apache.isis.core.metamodel.postprocessors.allbutparam.authorization.AuthorizationFacetPostProcessor;
@@ -372,7 +371,6 @@ public final class ProgrammingModelFacetsJava8 extends
ProgrammingModelAbstract
// only after this point have any mixin members been resolved and are
available on the ObjectSpecification.
- addPostProcessor(PostProcessingOrder.A1_BUILTIN,
DeriveAssociateWithFromChoicesFromPostProcessor.class);
addPostProcessor(PostProcessingOrder.A1_BUILTIN,
DeriveDescribedAsFromTypePostProcessor.class);
addPostProcessor(PostProcessingOrder.A1_BUILTIN,
DeriveTypicalLengthFromTypePostProcessor.class);
addPostProcessor(PostProcessingOrder.A1_BUILTIN,
DeriveDefaultFromTypePostProcessor.class);
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
index 14b598e..c384e46 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
@@ -41,7 +41,6 @@ import
org.apache.isis.core.config.environment.IsisSystemEnvironment;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import
org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionXml;
-import
org.apache.isis.core.metamodel.facets.actions.layout.AssociateWithFacetForLayoutXml;
import
org.apache.isis.core.metamodel.facets.actions.layout.BookmarkPolicyFacetForActionXml;
import
org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionXml;
import
org.apache.isis.core.metamodel.facets.actions.layout.CssClassFacetForActionXml;
@@ -82,7 +81,6 @@ import org.apache.isis.core.metamodel.spec.feature.MixedIn;
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
-import static
org.apache.isis.core.metamodel.facetapi.FacetUtil.addIfNotAlreadyPresent;
import static
org.apache.isis.core.metamodel.facetapi.FacetUtil.addOrReplaceFacet;
import lombok.Value;
@@ -239,8 +237,6 @@ implements GridSystemService<G> {
}
addOrReplaceFacet(LayoutOrderFacetFromXml.create(memberOrderSequence,
objectAction));
addOrReplaceFacet(LayoutGroupFacetFromXml.create(groupIdAndName, objectAction));
-
addIfNotAlreadyPresent(AssociateWithFacetForLayoutXml.create(groupIdAndName,
objectAction));
-
// fix up the action position if required
if(actionLayoutDataOwner instanceof FieldSet) {
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
index 0be1b23..c3dab4e 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
@@ -40,7 +40,6 @@ import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.consent.InteractionResultSet;
import
org.apache.isis.core.metamodel.facets.actions.action.associateWith.ChoicesFromFacet;
-import org.apache.isis.core.metamodel.facets.actions.layout.AssociateWithFacet;
import
org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
@@ -407,8 +406,9 @@ public interface ObjectAction extends ObjectMember {
return (ObjectAction oa) -> oa.getType() == type;
}
- public static Predicate<ObjectAction> associatedWith(final
ObjectAssociation objectAssociation) {
- return new AssociateWith(objectAssociation);
+ public static Predicate<ObjectAction> associatedWith(final
ObjectAssociation association) {
+ //return new AssociateWith(objectAssociation);
+ return isSameLayoutGroup(association);
}
public static Predicate<ObjectAction>
choicesFromAndHavingCollectionParameterFor(
@@ -424,31 +424,31 @@ public interface ObjectAction extends ObjectMember {
// -- HELPER
- private static class AssociateWith implements Predicate<ObjectAction> {
- private final @NonNull String memberId;
- private final @NonNull String memberName;
-
- public AssociateWith(final @NonNull ObjectAssociation
objectAssociation) {
- this.memberId =
_Strings.nullToEmpty(objectAssociation.getId()).toLowerCase();
- this.memberName =
_Strings.nullToEmpty(objectAssociation.getName()).toLowerCase();;
- }
-
- @Override
- public boolean test(final ObjectAction objectAction) {
- val associatedWithFacet =
objectAction.getFacet(AssociateWithFacet.class);
- if(associatedWithFacet == null) {
- return false;
- }
- val associatedMemberName = associatedWithFacet.value();
- if (associatedMemberName == null) {
- return false;
- }
- val memberNameLowerCase = associatedMemberName.toLowerCase();
- return Objects.equals(memberName, memberNameLowerCase)
- || Objects.equals(memberId, memberNameLowerCase);
- }
-
- }
+// private static class AssociateWith implements
Predicate<ObjectAction> {
+// private final @NonNull String memberId;
+// private final @NonNull String memberName;
+//
+// public AssociateWith(final @NonNull ObjectAssociation
objectAssociation) {
+// this.memberId =
_Strings.nullToEmpty(objectAssociation.getId()).toLowerCase();
+// this.memberName =
_Strings.nullToEmpty(objectAssociation.getName()).toLowerCase();;
+// }
+//
+// @Override
+// public boolean test(final ObjectAction objectAction) {
+// val associatedWithFacet =
objectAction.getFacet(AssociateWithFacet.class);
+// if(associatedWithFacet == null) {
+// return false;
+// }
+// val associatedMemberName = associatedWithFacet.value();
+// if (associatedMemberName == null) {
+// return false;
+// }
+// val memberNameLowerCase = associatedMemberName.toLowerCase();
+// return Objects.equals(memberName, memberNameLowerCase)
+// || Objects.equals(memberId, memberNameLowerCase);
+// }
+//
+// }
private static class ChoicesFrom implements Predicate<ObjectAction> {
private final @NonNull String memberId;