You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2022/07/31 21:04:38 UTC

[isis] 01/02: ISIS-3102: more standardizing of layout constants

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 15e236b4881b40404de49d26c472c8645659c1bd
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Jul 31 22:03:24 2022 +0100

    ISIS-3102: more standardizing of layout constants
---
 .../apache/isis/applib/layout/LayoutConstants.java | 125 ++++++++++++++++-----
 .../mixins/layout/Object_downloadLayoutXml.java    |   2 +-
 .../metamodel/Object_downloadMetamodelXml.java     |   2 +-
 .../mixins/metamodel/Object_logicalTypeName.java   |   5 +-
 .../mixins/metamodel/Object_objectIdentifier.java  |   4 +-
 .../mixins/metamodel/Object_rebuildMetamodel.java  |   2 +-
 .../applib/mixins/rest/Object_openRestApi.java     |   2 +-
 .../metamodel/inspect/Object_inspectMetamodel.java |   2 +-
 .../grid/bootstrap/GridSystemServiceBootstrap.java |   2 +-
 .../contributions/Object_recentCommands.java       |   2 +-
 .../contributions/Object_recentExecutions.java     |   4 +-
 .../Object_recentAuditTrailEntries.java            |   8 ++
 .../mixins/Persistable_datanucleusVersionLong.java |   6 +-
 .../Persistable_datanucleusVersionTimestamp.java   |   6 +-
 .../mixins/Persistable_downloadJdoMetadata.java    |   3 +-
 .../commons/applib/mixins/Object_impersonate.java  |   2 +-
 .../applib/mixins/Object_impersonateWithRoles.java |   2 +-
 .../wicket/viewer/mixins/Object_clearHints.java    |   8 +-
 18 files changed, 129 insertions(+), 58 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/layout/LayoutConstants.java b/api/applib/src/main/java/org/apache/isis/applib/layout/LayoutConstants.java
index 451de706aa..6ebe61096f 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/layout/LayoutConstants.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/layout/LayoutConstants.java
@@ -19,14 +19,15 @@
  */
 package org.apache.isis.applib.layout;
 
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
+import org.apache.isis.applib.annotation.PropertyLayout;
+
+import lombok.experimental.UtilityClass;
 
 /**
  * Constant identifiers of the <code>layout.xml</code> that are commonly used in layouts.
  *
  * <p>
- *     All of the mixins provided by the framework are bound to the {@link #METADATA_FIELDSET_ID metadata} field set,
+ *     All of the mixins provided by the framework are bound to the {@link FieldSetId#METADATA metadata} field set,
  *     and so - unless explicitly specified in the object's layout to some other location, will expect that the layout
  *     includes a field set with this id.
  * </p>
@@ -35,42 +36,104 @@ import lombok.NoArgsConstructor;
  *     The service that loads layouts is {@link org.apache.isis.applib.services.grid.GridSystemService}, and the
  *     framework's default implementation of this service supports the notion of a fallback layout, used whenever
  *     an object has no associated layout file.  This fallback layout <i>does</i> expose a
- *     {@link #METADATA_FIELDSET_ID metadata} fieldset.  (The fallback layout itself can be found in the
+ *     {@link FieldSetId#METADATA metadata} fieldset.  (The fallback layout itself can be found in the
  *     <code>GridFallbackLayout.xml</code> file).
  * </p>
  *
  * @since 2.x {@index}
  */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
+@UtilityClass
 public final class LayoutConstants {
 
-    /**
-     * The id for a field set intended to hold the properties/fields that uniquely identify the object from the
-     * end-user's perspective.
-     *
-     * <p>
-     *     The fallback layout places the 'identity' and 'metadata' fieldsets as tabs within a single tab group.
-     * </p>
-     */
-    public static final String IDENTITY_FIELDSET_ID = "identity";
+    @UtilityClass
+    public static class FieldSetId {
+
+        /**
+         * The id for a field set intended to hold the properties/fields that uniquely identify the object from the
+         * end-user's perspective.
+         *
+         * <p>
+         *     Indended to bind using {@link PropertyLayout#fieldSetId()}.
+         * </p>
+         *
+         * <p>
+         *     The fallback layout places the 'identity' and 'metadata' fieldsets as tabs within a single tab group.
+         * </p>
+         */
+        public static final String IDENTITY = "identity";
+
+        /**
+         * The id for a field set intended to hold various metadata, such as the id or version.  All of the framework
+         * provided mixins are associated with this fieldset, either properties or actions.
+         *
+         * <p>
+         *     Indended to bind using {@link PropertyLayout#fieldSetId()}.
+         * </p>
+         *
+         * <p>
+         *     The fallback layout places the 'identity' and 'metadata' fieldsets as tabs within a single tab group.
+         * </p>
+         */
+        public static final String METADATA = "metadata";
+
+        /**
+         * The id for a field set intended to hold additional details.
+         *
+         * <p>
+         *     Indended to bind using {@link PropertyLayout#fieldSetId()}.
+         * </p>
+         *
+         * <p>
+         *     The fallback layout places the 'details' fieldset under the above 'identity' and 'metadata' fieldsets.
+         * </p>
+         */
+        public static final String DETAILS = "details";
+    }
+
+    @UtilityClass
+    public static class FieldSetName {
+
+        /**
+         * As {@link FieldSetId#IDENTITY}, but intended to bind using the name of the field set,
+         * eg {@link PropertyLayout#fieldSetName()}.
+         */
+        public static final String IDENTITY = "Identity";
+
+        /**
+         * As {@link FieldSetId#METADATA}, but intended to bind using the name of the field set,
+         * eg {@link PropertyLayout#fieldSetName()}.
+         */
+        public static final String METADATA = "Metadata";
+
+        /**
+         * As {@link FieldSetId#DETAILS}, but intended to bind using the name of the field set,
+         * eg {@link PropertyLayout#fieldSetName()}.
+         */
+        public static final String DETAILS = "Details";
+    }
+
+    @UtilityClass
+    public static class PropertyId {
+        /**
+         * As contributed by {@link org.apache.isis.applib.mixins.metamodel.Object_objectIdentifier} mixin.
+         *
+         * <p>
+         *     Note that {@link org.apache.isis.applib.IsisModuleApplibMixins} module must be included within the
+         *     application in order to enable this mixin.
+         * </p>
+         */
+        public static final String OBJECT_IDENTIFIER = "objectIdentifier";
 
-    /**
-     * The id for a field set intended to hold various metadata, such as the id or version.  All of the framework
-     * provided mixins are associated with this fieldset, either properties or actions.
-     *
-     * <p>
-     *     The fallback layout places the 'identity' and 'metadata' fieldsets as tabs within a single tab group.
-     * </p>
-     */
-    public static final String METADATA_FIELDSET_ID = "metadata";
+        /**
+         * As contributed by {@link org.apache.isis.applib.mixins.metamodel.Object_logicalTypeName} mixin.
+         *
+         * <p>
+         *     Note that {@link org.apache.isis.applib.IsisModuleApplibMixins} module must be included within the
+         *     application in order to enable this mixin.
+         * </p>
+         */
+        public static final String LOGICAL_TYPE_NAME = "logicalTypeName";
+    }
 
-    /**
-     * The id for a field set intended to hold additional details.
-     *
-     * <p>
-     *     The fallback layout places the 'details' fieldset under the above 'identity' and 'metadata' fieldsets.
-     * </p>
-     */
-    public static final String DETAILS_FIELDSET_ID = "details";
 
 }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java b/api/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java
index 853426fc73..eb7a515092 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java
@@ -52,8 +52,8 @@ import lombok.val;
 )
 @ActionLayout(
         cssClassFa = "fa-download",
+        fieldSetId = LayoutConstants.FieldSetId.METADATA,
         position = ActionLayout.Position.PANEL_DROPDOWN,
-        associateWith = LayoutConstants.METADATA_FIELDSET_ID,
         sequence = "700.1"
 )
 //mixin's don't need a logicalTypeName
diff --git a/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_downloadMetamodelXml.java b/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_downloadMetamodelXml.java
index dfaddadb7a..00d04b7ff4 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_downloadMetamodelXml.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_downloadMetamodelXml.java
@@ -58,8 +58,8 @@ import lombok.val;
 )
 @ActionLayout(
         cssClassFa = "fa-download",
+        fieldSetId = LayoutConstants.FieldSetId.METADATA,
         position = ActionLayout.Position.PANEL_DROPDOWN,
-        associateWith = LayoutConstants.METADATA_FIELDSET_ID,
         sequence = "700.2"
 )
 //mixin's don't need a logicalTypeName
diff --git a/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_logicalTypeName.java b/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_logicalTypeName.java
index c015cd40c2..2440a8a677 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_logicalTypeName.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_logicalTypeName.java
@@ -21,6 +21,7 @@ package org.apache.isis.applib.mixins.metamodel;
 import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.MemberSupport;
 import org.apache.isis.applib.annotation.Property;
@@ -53,8 +54,8 @@ import lombok.val;
 @Property
 @PropertyLayout(
         hidden = Where.ALL_TABLES,
-        fieldSetId = LayoutConstants.METADATA_FIELDSET_ID,
-        sequence = "700.1"
+        fieldSetId = LayoutConstants.FieldSetId.METADATA,
+        sequence = "400.1"
 )
 //mixin's don't need a logicalTypeName
 @RequiredArgsConstructor
diff --git a/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectIdentifier.java b/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectIdentifier.java
index 0cc4626c88..6eb2e9ef7d 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectIdentifier.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectIdentifier.java
@@ -53,8 +53,8 @@ import lombok.val;
 @Property
 @PropertyLayout(
         hidden = Where.ALL_TABLES,
-        fieldSetId = LayoutConstants.METADATA_FIELDSET_ID,
-        sequence = "700.2"
+        fieldSetId = LayoutConstants.FieldSetId.METADATA,
+        sequence = "400.2"
 )
 //mixin's don't need a logicalTypeName
 @RequiredArgsConstructor
diff --git a/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_rebuildMetamodel.java b/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_rebuildMetamodel.java
index ba399c7428..37f9b667ea 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_rebuildMetamodel.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_rebuildMetamodel.java
@@ -47,8 +47,8 @@ import lombok.RequiredArgsConstructor;
 )
 @ActionLayout(
         cssClassFa = "fa-sync",
+        fieldSetId = LayoutConstants.FieldSetId.METADATA,
         position = ActionLayout.Position.PANEL,
-        associateWith = LayoutConstants.METADATA_FIELDSET_ID,
         sequence = "800.1"
 )
 //mixin's don't need a logicalTypeName
diff --git a/api/applib/src/main/java/org/apache/isis/applib/mixins/rest/Object_openRestApi.java b/api/applib/src/main/java/org/apache/isis/applib/mixins/rest/Object_openRestApi.java
index 72ab8a678e..2889d4aae0 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/mixins/rest/Object_openRestApi.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/mixins/rest/Object_openRestApi.java
@@ -50,8 +50,8 @@ import lombok.val;
 )
 @ActionLayout(
         cssClassFa = "fa-external-link-alt",
+        fieldSetId = LayoutConstants.FieldSetId.METADATA,
         position = ActionLayout.Position.PANEL_DROPDOWN,
-        associateWith = LayoutConstants.METADATA_FIELDSET_ID,
         sequence = "750.1"
 )
 //mixin's don't need a logicalTypeName
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/Object_inspectMetamodel.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/Object_inspectMetamodel.java
index 3d2c46c15b..a4ef6ad266 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/Object_inspectMetamodel.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/Object_inspectMetamodel.java
@@ -52,8 +52,8 @@ import lombok.val;
 )
 @ActionLayout(
         cssClassFa = "fa-sitemap",
+        fieldSetId = LayoutConstants.FieldSetId.METADATA,
         position = ActionLayout.Position.PANEL_DROPDOWN,
-        associateWith = LayoutConstants.METADATA_FIELDSET_ID,
         sequence = "700.2.1"
 )
 //mixin's don't need a logicalTypeName
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap/GridSystemServiceBootstrap.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap/GridSystemServiceBootstrap.java
index 8eab84d3f1..0540fef817 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap/GridSystemServiceBootstrap.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap/GridSystemServiceBootstrap.java
@@ -271,7 +271,7 @@ extends GridSystemServiceAbstract<BSGrid> {
                 Set<String> boundAssociationIds =
                         boundAssociationIdsByFieldSetId.computeIfAbsent(id, k -> _Sets.newLinkedHashSet());
                 boundAssociationIds.add(oneToOneAssociation.getId());
-            } else if(id.equals(LayoutConstants.METADATA_FIELDSET_ID)) {
+            } else if(id.equals(LayoutConstants.FieldSetId.METADATA)) {
                 unboundMetadataContributingIds.add(oneToOneAssociation.getId());
             }
         }
diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/Object_recentCommands.java b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/Object_recentCommands.java
index 7acf939428..8438b6e94e 100644
--- a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/Object_recentCommands.java
+++ b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/Object_recentCommands.java
@@ -54,7 +54,7 @@ import lombok.RequiredArgsConstructor;
 @ActionLayout(
         cssClassFa = "fa-bolt",
         position = ActionLayout.Position.PANEL_DROPDOWN,
-        associateWith = LayoutConstants.METADATA_FIELDSET_ID,
+        fieldSetId = LayoutConstants.FieldSetId.METADATA,
         sequence = "900.1"
 )
 @RequiredArgsConstructor
diff --git a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/contributions/Object_recentExecutions.java b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/contributions/Object_recentExecutions.java
index c26075e7a1..00eada1788 100644
--- a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/contributions/Object_recentExecutions.java
+++ b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/contributions/Object_recentExecutions.java
@@ -54,8 +54,8 @@ import lombok.RequiredArgsConstructor;
 @ActionLayout(
         cssClassFa = "fa-bolt",
         position = ActionLayout.Position.PANEL_DROPDOWN,
-        associateWith = LayoutConstants.METADATA_FIELDSET_ID,
-        sequence = "900.1"
+        fieldSetId = LayoutConstants.FieldSetId.METADATA,
+        sequence = "900.2"
 )
 @RequiredArgsConstructor
 public class Object_recentExecutions {
diff --git a/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/contributions/Object_recentAuditTrailEntries.java b/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/contributions/Object_recentAuditTrailEntries.java
index 5938c24871..117ab43a6b 100644
--- a/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/contributions/Object_recentAuditTrailEntries.java
+++ b/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/contributions/Object_recentAuditTrailEntries.java
@@ -27,8 +27,10 @@ import javax.inject.Inject;
 
 
 import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.MemberSupport;
 import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.layout.LayoutConstants;
 import org.apache.isis.applib.services.appfeat.ApplicationFeatureId;
 import org.apache.isis.applib.services.appfeat.ApplicationFeatureRepository;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
@@ -44,6 +46,12 @@ import lombok.val;
         domainEvent = Object_recentAuditTrailEntries.ActionDomainEvent.class,
         semantics = SemanticsOf.SAFE
 )
+@ActionLayout(
+        cssClassFa = "fa-bolt",
+        position = ActionLayout.Position.PANEL_DROPDOWN,
+        fieldSetId = LayoutConstants.FieldSetId.METADATA,
+        sequence = "900.3"
+)
 @RequiredArgsConstructor
 public class Object_recentAuditTrailEntries {
 
diff --git a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_datanucleusVersionLong.java b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_datanucleusVersionLong.java
index 6550f70d24..63524870d6 100644
--- a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_datanucleusVersionLong.java
+++ b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_datanucleusVersionLong.java
@@ -45,10 +45,10 @@ import lombok.RequiredArgsConstructor;
 @Property(
         domainEvent = Persistable_datanucleusVersionLong.PropertyDomainEvent.class)
 @PropertyLayout(
-        named = "Version",
+        fieldSetId = LayoutConstants.FieldSetId.METADATA,
         hidden = Where.ALL_TABLES,
-        fieldSetId = LayoutConstants.METADATA_FIELDSET_ID,
-        sequence = "800.2"
+        named = "Version",
+        sequence = "500.2"
         )
 @RequiredArgsConstructor
 public class Persistable_datanucleusVersionLong {
diff --git a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_datanucleusVersionTimestamp.java b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_datanucleusVersionTimestamp.java
index cc413a9580..2e724242cb 100644
--- a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_datanucleusVersionTimestamp.java
+++ b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_datanucleusVersionTimestamp.java
@@ -45,10 +45,10 @@ import lombok.RequiredArgsConstructor;
 @Property(
         domainEvent = Persistable_datanucleusVersionTimestamp.PropertyDomainEvent.class)
 @PropertyLayout(
-        named = "Version",
+        fieldSetId = LayoutConstants.FieldSetId.METADATA,
         hidden = Where.ALL_TABLES,
-        fieldSetId = LayoutConstants.METADATA_FIELDSET_ID,
-        sequence = "800.2"
+        named = "Version",
+        sequence = "500.2"
         )
 @RequiredArgsConstructor
 public class Persistable_datanucleusVersionTimestamp {
diff --git a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.java b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.java
index 3f84e4a388..c4e2fcd66b 100644
--- a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.java
+++ b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.java
@@ -57,8 +57,8 @@ import lombok.RequiredArgsConstructor;
 )
 @ActionLayout(
         cssClassFa = "fa-download",
+        fieldSetId = LayoutConstants.FieldSetId.METADATA,
         position = ActionLayout.Position.PANEL_DROPDOWN,
-        associateWith = LayoutConstants.METADATA_FIELDSET_ID,
         sequence = "710.1"
 )
 @RequiredArgsConstructor
@@ -71,7 +71,6 @@ public class Persistable_downloadJdoMetadata {
     public static class ActionDomainEvent extends org.apache.isis.applib.IsisModuleApplib.ActionDomainEvent<Persistable_downloadJdoMetadata> {}
 
     @MemberSupport public Clob act(
-            @ParameterLayout(named = "File name")
             final String fileName) throws JAXBException, IOException {
 
         final Class<? extends Persistable> objClass = persistable.getClass();
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/mixins/Object_impersonate.java b/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/mixins/Object_impersonate.java
index 19ac6c646f..b541258374 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/mixins/Object_impersonate.java
+++ b/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/mixins/Object_impersonate.java
@@ -48,8 +48,8 @@ import lombok.RequiredArgsConstructor;
         restrictTo = RestrictTo.PROTOTYPING
 )
 @ActionLayout(
-        associateWith = LayoutConstants.METADATA_FIELDSET_ID,
         cssClassFa = "fa-mask",
+        fieldSetId = LayoutConstants.FieldSetId.METADATA,
         position = ActionLayout.Position.PANEL_DROPDOWN,
         redirectPolicy = Redirect.EVEN_IF_SAME,
         sequence = "850.1"
diff --git a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/mixins/Object_impersonateWithRoles.java b/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/mixins/Object_impersonateWithRoles.java
index c0799352a6..3b72bed935 100644
--- a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/mixins/Object_impersonateWithRoles.java
+++ b/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/applib/mixins/Object_impersonateWithRoles.java
@@ -52,9 +52,9 @@ import lombok.val;
 )
 @ActionLayout(
         cssClassFa = "fa-mask",
+        fieldSetId = LayoutConstants.FieldSetId.METADATA,
         position = ActionLayout.Position.PANEL_DROPDOWN,
         redirectPolicy = Redirect.EVEN_IF_SAME,
-        associateWith = LayoutConstants.METADATA_FIELDSET_ID,
         sequence = "850.2"
 )
 //mixin's don't need a logicalTypeName
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/mixins/Object_clearHints.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/mixins/Object_clearHints.java
index b892e2d80a..c5f5a4fd37 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/mixins/Object_clearHints.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/mixins/Object_clearHints.java
@@ -62,11 +62,11 @@ import lombok.val;
 )
 @ActionLayout(
         cssClassFa = "fa-circle",
-        position = ActionLayout.Position.PANEL,
-        associateWith = LayoutConstants.METADATA_FIELDSET_ID,
-        sequence = "400.1",
         describedAs = "Resets the presentation of the displayed object/page to its initial form. "
-                + "(table sorting, tab selection, etc.)"
+                + "(table sorting, tab selection, etc.)",
+        position = ActionLayout.Position.PANEL,
+        fieldSetId = LayoutConstants.FieldSetId.METADATA,
+        sequence = "400.1"
 )
 @RequiredArgsConstructor
 public class Object_clearHints {