You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/09/01 15:28:04 UTC

[isis] branch master updated: ISIS-3197: minor post merge refactoring (1)

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 f0c3a4cfa6 ISIS-3197: minor post merge refactoring (1)
f0c3a4cfa6 is described below

commit f0c3a4cfa67d6caeda144038854a3da71d27a473
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Sep 1 17:27:55 2022 +0200

    ISIS-3197: minor post merge refactoring (1)
---
 .../facets/CollectionLayoutConfigOptions.java          | 17 ++++++++++++-----
 .../layout/CollectionLayoutFacetFactory.java           |  2 +-
 .../tabledec/CollectionLayoutTableDecorationFacet.java |  5 +----
 ...mainObjectLayoutAnnotationUsingCssClassUiEvent.java |  5 ++---
 .../DomainObjectLayoutFacetFactory.java                | 10 +++++-----
 ...iaDomainObjectLayoutAnnotationUsingIconUiEvent.java |  5 ++---
 ...DomainObjectLayoutAnnotationUsingLayoutUiEvent.java |  5 ++---
 ...aDomainObjectLayoutAnnotationUsingTitleUiEvent.java |  4 +---
 .../DomainObjectLayoutTableDecorationFacet.java        |  5 +----
 .../org/apache/isis/core/metamodel/util/Facets.java    |  8 ++++++++
 .../domainmodel/MetaModelRegressionTest.java           | 18 +++++-------------
 .../entity/collection/EntityCollectionPanel.java       | 10 ++++------
 .../StandaloneCollectionPanel.java                     | 12 ++++++------
 .../wicketapp/config/WicketViewerCssBundleInit.java    |  2 --
 14 files changed, 50 insertions(+), 58 deletions(-)

diff --git a/core/config/src/main/java/org/apache/isis/core/config/metamodel/facets/CollectionLayoutConfigOptions.java b/core/config/src/main/java/org/apache/isis/core/config/metamodel/facets/CollectionLayoutConfigOptions.java
index 07d9872d32..c70d84d37a 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/metamodel/facets/CollectionLayoutConfigOptions.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/metamodel/facets/CollectionLayoutConfigOptions.java
@@ -18,31 +18,38 @@
  */
 package org.apache.isis.core.config.metamodel.facets;
 
+import org.springframework.lang.Nullable;
+
 import org.apache.isis.core.config.IsisConfiguration;
 
+import lombok.Getter;
 import lombok.NonNull;
+import lombok.RequiredArgsConstructor;
+import lombok.experimental.Accessors;
 
 public final class CollectionLayoutConfigOptions {
 
+    @RequiredArgsConstructor
     public enum TableDecoration {
 
         /**
          * If this option declares that the collection's table representation should not be decorated.
          */
-        NONE,
+        NONE(null),
 
         /**
          * If this option declares that the collection's table representation be decorated using
          * <a href="https://datatables.net>datatables.net</a> for client-side paging and filtering.
          */
-        DATATABLES_NET;
+        DATATABLES_NET("table-decoration");
+
+        @Getter @Accessors(fluent = true)
+        private final @Nullable String cssClass;
 
         public boolean isNone() { return this == NONE; }
         public boolean isDataTablesNet() { return this == DATATABLES_NET; }
-
     }
 
-
     // -- FACTORIES
 
     public static TableDecoration tableDecoration(
@@ -59,7 +66,7 @@ public final class CollectionLayoutConfigOptions {
             return name().toLowerCase();
         }
 
-        public static DefaultView from(IsisConfiguration configuration) {
+        public static DefaultView from(final IsisConfiguration configuration) {
             return configuration.getApplib().getAnnotation().getCollectionLayout().getDefaultView();
         }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CollectionLayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CollectionLayoutFacetFactory.java
index 866598b809..5b47df3b72 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CollectionLayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CollectionLayoutFacetFactory.java
@@ -75,7 +75,7 @@ extends FacetFactoryAbstract {
 
         addFacetIfPresent(
                 CollectionLayoutTableDecorationFacet
-                        .create(collectionLayoutIfAny, getConfiguration(), facetHolder));
+                        .create(collectionLayoutIfAny, facetHolder));
 
         addFacetIfPresent(
                 PagedFacetForCollectionLayoutAnnotation
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/tabledec/CollectionLayoutTableDecorationFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/tabledec/CollectionLayoutTableDecorationFacet.java
index 4af53730f6..d9923cdb82 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/tabledec/CollectionLayoutTableDecorationFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/tabledec/CollectionLayoutTableDecorationFacet.java
@@ -24,9 +24,7 @@ import java.util.Optional;
 import org.apache.isis.applib.annotation.CollectionLayout;
 import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.commons.internal.base._Optionals;
-import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.config.metamodel.facets.CollectionLayoutConfigOptions;
-import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.SingleValueFacet;
 
@@ -43,11 +41,10 @@ extends SingleValueFacet<CollectionLayoutConfigOptions.TableDecoration> {
 
     static Optional<CollectionLayoutTableDecorationFacet> create(
             final Optional<CollectionLayout> collectionLayoutIfAny,
-            final IsisConfiguration configuration,
             final FacetHolder holder) {
 
         final CollectionLayoutConfigOptions.TableDecoration defaultPolicyFromConfig =
-                CollectionLayoutConfigOptions.tableDecoration(configuration);
+                CollectionLayoutConfigOptions.tableDecoration(holder.getConfiguration());
 
         return _Optionals.orNullable(
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java
index 10abc6043f..5b2acd00d6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java
@@ -26,7 +26,6 @@ import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.applib.events.ui.CssClassUiEvent;
 import org.apache.isis.applib.exceptions.UnrecoverableException;
 import org.apache.isis.commons.internal.base._Casts;
-import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
@@ -41,7 +40,6 @@ extends CssClassFacetAbstract {
     public static Optional<CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent> create(
             final Optional<DomainObjectLayout> domainObjectLayoutIfAny,
             final MetamodelEventService metamodelEventService,
-            final IsisConfiguration configuration,
             final FacetHolder facetHolder) {
 
         return domainObjectLayoutIfAny
@@ -50,7 +48,8 @@ extends CssClassFacetAbstract {
                 cssClassUiEventClass,
                 CssClassUiEvent.Noop.class,
                 CssClassUiEvent.Default.class,
-                configuration.getApplib().getAnnotation().getDomainObjectLayout().getCssClassUiEvent().isPostForDefault()))
+                facetHolder.getConfiguration().getApplib().getAnnotation()
+                    .getDomainObjectLayout().getCssClassUiEvent().isPostForDefault()))
         .map(cssClassUiEventClass -> {
             return new CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent(
                     cssClassUiEventClass, metamodelEventService, facetHolder);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java
index 955f24d025..ea19fe83fb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java
@@ -45,19 +45,19 @@ extends FacetFactoryAbstract {
 
         addFacetIfPresent(
                 TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent
-                .create(domainObjectLayoutIfAny, metamodelEventService, getConfiguration(), facetHolder));
+                .create(domainObjectLayoutIfAny, metamodelEventService, facetHolder));
 
         addFacetIfPresent(
                 IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent
-                .create(domainObjectLayoutIfAny, metamodelEventService, getConfiguration(), facetHolder));
+                .create(domainObjectLayoutIfAny, metamodelEventService, facetHolder));
 
         addFacetIfPresent(
                 CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent
-                .create(domainObjectLayoutIfAny, metamodelEventService, getConfiguration(), facetHolder));
+                .create(domainObjectLayoutIfAny, metamodelEventService, facetHolder));
 
         addFacetIfPresent(
                 LayoutFacetViaDomainObjectLayoutAnnotationUsingLayoutUiEvent
-                .create(domainObjectLayoutIfAny, metamodelEventService, getConfiguration(), facetHolder));
+                .create(domainObjectLayoutIfAny, metamodelEventService, facetHolder));
 
         addFacetIfPresent(
                 CssClassFacetForDomainObjectLayoutAnnotation
@@ -77,7 +77,7 @@ extends FacetFactoryAbstract {
 
         addFacetIfPresent(
                 DomainObjectLayoutTableDecorationFacet
-                        .create(domainObjectLayoutIfAny, getConfiguration(), facetHolder));
+                        .create(domainObjectLayoutIfAny, facetHolder));
 
         addFacetIfPresent(
                 PagedFacetForDomainObjectLayoutAnnotation
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java
index 7e942b189c..a584cdc563 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java
@@ -26,7 +26,6 @@ import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.applib.events.ui.IconUiEvent;
 import org.apache.isis.applib.exceptions.UnrecoverableException;
 import org.apache.isis.commons.internal.base._Casts;
-import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
 import org.apache.isis.core.metamodel.facets.object.icon.IconFacetAbstract;
@@ -41,7 +40,6 @@ extends IconFacetAbstract {
     public static Optional<IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent> create(
             final Optional<DomainObjectLayout> domainObjectLayoutIfAny,
             final MetamodelEventService metamodelEventService,
-            final IsisConfiguration configuration,
             final FacetHolder facetHolder) {
 
         return domainObjectLayoutIfAny
@@ -50,7 +48,8 @@ extends IconFacetAbstract {
                         iconUiEvent,
                         IconUiEvent.Noop.class,
                         IconUiEvent.Default.class,
-                        configuration.getApplib().getAnnotation().getDomainObjectLayout().getIconUiEvent().isPostForDefault()))
+                        facetHolder.getConfiguration().getApplib().getAnnotation()
+                            .getDomainObjectLayout().getIconUiEvent().isPostForDefault()))
                 .map(iconUiEvent -> {
                     return new IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent(
                             iconUiEvent, metamodelEventService, facetHolder);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/LayoutFacetViaDomainObjectLayoutAnnotationUsingLayoutUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/LayoutFacetViaDomainObjectLayoutAnnotationUsingLayoutUiEvent.java
index 62c0e5266e..34238039ca 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/LayoutFacetViaDomainObjectLayoutAnnotationUsingLayoutUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/LayoutFacetViaDomainObjectLayoutAnnotationUsingLayoutUiEvent.java
@@ -26,7 +26,6 @@ import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.applib.events.ui.LayoutUiEvent;
 import org.apache.isis.applib.exceptions.UnrecoverableException;
 import org.apache.isis.commons.internal.base._Casts;
-import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.layout.LayoutFacet;
 import org.apache.isis.core.metamodel.facets.object.layout.LayoutFacetAbstract;
@@ -41,7 +40,6 @@ implements LayoutFacet {
     public static Optional<LayoutFacetViaDomainObjectLayoutAnnotationUsingLayoutUiEvent> create(
             final Optional<DomainObjectLayout> domainObjectLayoutIfAny,
             final MetamodelEventService metamodelEventService,
-            final IsisConfiguration configuration,
             final FacetHolder facetHolder) {
 
         return domainObjectLayoutIfAny
@@ -50,7 +48,8 @@ implements LayoutFacet {
                         layoutUiEvent,
                         LayoutUiEvent.Noop.class,
                         LayoutUiEvent.Default.class,
-                        configuration.getApplib().getAnnotation().getDomainObjectLayout().getLayoutUiEvent().isPostForDefault()))
+                        facetHolder.getConfiguration().getApplib().getAnnotation()
+                            .getDomainObjectLayout().getLayoutUiEvent().isPostForDefault()))
                 .map(layoutUiEvent -> {
 
                     return new LayoutFacetViaDomainObjectLayoutAnnotationUsingLayoutUiEvent(
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
index 7adb1b1b4c..8e7c12ea87 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
@@ -29,7 +29,6 @@ import org.apache.isis.applib.services.i18n.TranslatableString;
 import org.apache.isis.applib.services.i18n.TranslationContext;
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.commons.internal.base._Casts;
-import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
 import org.apache.isis.core.metamodel.facets.object.title.TitleFacetAbstract;
@@ -48,10 +47,9 @@ extends TitleFacetAbstract {
     public static Optional<TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent> create(
             final Optional<DomainObjectLayout> domainObjectLayoutIfAny,
             final MetamodelEventService metamodelEventService,
-            final IsisConfiguration configuration,
             final FacetHolder facetHolder) {
 
-        val isPostForDefault = configuration
+        val isPostForDefault = facetHolder.getConfiguration()
                 .getApplib()
                 .getAnnotation()
                 .getDomainObjectLayout()
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/tabledec/DomainObjectLayoutTableDecorationFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/tabledec/DomainObjectLayoutTableDecorationFacet.java
index 73cc2b0351..d1ac29b545 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/tabledec/DomainObjectLayoutTableDecorationFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/tabledec/DomainObjectLayoutTableDecorationFacet.java
@@ -21,11 +21,9 @@ package org.apache.isis.core.metamodel.facets.object.domainobjectlayout.tabledec
 
 import java.util.Optional;
 
-import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.commons.internal.base._Optionals;
-import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.config.metamodel.facets.DomainObjectLayoutConfigOptions;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.SingleValueFacet;
@@ -43,11 +41,10 @@ extends SingleValueFacet<DomainObjectLayoutConfigOptions.TableDecoration> {
 
     static Optional<DomainObjectLayoutTableDecorationFacet> create(
             final Optional<DomainObjectLayout> domainObjectLayoutIfAny,
-            final IsisConfiguration configuration,
             final FacetHolder holder) {
 
         final DomainObjectLayoutConfigOptions.TableDecoration defaultPolicyFromConfig =
-                DomainObjectLayoutConfigOptions.tableDecoration(configuration);
+                DomainObjectLayoutConfigOptions.tableDecoration(holder.getConfiguration());
 
         return _Optionals.orNullable(
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Facets.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Facets.java
index 57ed70cb2f..79fe37a33b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Facets.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Facets.java
@@ -38,6 +38,7 @@ 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.exceptions._Exceptions;
+import org.apache.isis.core.config.metamodel.facets.CollectionLayoutConfigOptions;
 import org.apache.isis.core.config.metamodel.facets.ParameterConfigOptions;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -46,6 +47,7 @@ import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.facets.collections.CollectionFacet;
 import org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet;
+import org.apache.isis.core.metamodel.facets.collections.layout.tabledec.CollectionLayoutTableDecorationFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacet;
 import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
@@ -327,6 +329,12 @@ public final class Facets {
         .orElse(fallback);
     }
 
+    public Optional<CollectionLayoutConfigOptions.TableDecoration> tableDecoration(
+            final FacetHolder facetHolder) {
+        return facetHolder.lookupFacet(CollectionLayoutTableDecorationFacet.class)
+                .map(CollectionLayoutTableDecorationFacet::value);
+    }
+
     public Optional<ObjectSpecification> typeOf(final FacetHolder facetHolder) {
         return facetHolder.lookupFacet(TypeOfFacet.class)
         .map(TypeOfFacet::valueSpec);
diff --git a/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/MetaModelRegressionTest.java b/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/MetaModelRegressionTest.java
index 5a79802284..388e18b56d 100644
--- a/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/MetaModelRegressionTest.java
+++ b/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/MetaModelRegressionTest.java
@@ -18,8 +18,6 @@
  */
 package org.apache.isis.testdomain.domainmodel;
 
-import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.StringWriter;
 import java.nio.charset.StandardCharsets;
@@ -29,27 +27,19 @@ import javax.inject.Inject;
 
 import org.approvaltests.Approvals;
 import org.approvaltests.core.Options;
-import org.approvaltests.core.Scrubber;
 import org.approvaltests.reporters.DiffReporter;
-import org.approvaltests.reporters.TextWebReporter;
 import org.approvaltests.reporters.UseReporter;
-import org.assertj.core.api.Assumptions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.TestPropertySource;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.fail;
 
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.metamodel.MetaModelServiceMenu;
 import org.apache.isis.applib.value.Blob;
-import org.apache.isis.applib.value.Clob;
 import org.apache.isis.applib.value.NamedWithMimeType.CommonMimeType;
-import org.apache.isis.commons.internal.base._Bytes;
-import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.commons.internal.resources._Resources;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.testdomain.conf.Configuration_headless;
 import org.apache.isis.testdomain.model.good.Configuration_usingValidDomain;
@@ -89,16 +79,18 @@ class MetaModelRegressionTest {
     @UseReporter(DiffReporter.class)
     void verify() {
 
-        // Assumptions.assumeThat(getClass().getName()).contains("isis");  // disable if rename, as the .zip file needs to be updated.
+        // disable if rename, as the .zip file needs to be updated.
+        // Assumptions.assumeThat(getClass().getName()).contains("isis");
 
-        Blob metaModelZip = factoryService.mixin(MetaModelServiceMenu.downloadMetaModelXml.class, metaModelServiceMenu).act("metamodel.xml", namespaces(), true);
+        Blob metaModelZip = factoryService.mixin(MetaModelServiceMenu.downloadMetaModelXml.class,
+                metaModelServiceMenu).act("metamodel.xml", namespaces(), true);
         val xml = asXml(metaModelZip);
 
         Approvals.verify(xml, options());
 
     }
 
-    private static String asXml(Blob zip) throws IOException {
+    private static String asXml(final Blob zip) throws IOException {
         val clob = zip.unZip(CommonMimeType.XML).toClob(StandardCharsets.UTF_8);
         val sw = new StringWriter();
         clob.writeCharsTo(sw);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java
index c0e45dd2d3..93a5e13c7f 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java
@@ -24,10 +24,9 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.commons.collections.Can;
+import org.apache.isis.core.config.metamodel.facets.CollectionLayoutConfigOptions;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facets.collections.layout.tabledec.CollectionLayoutTableDecorationFacet;
-import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.tabledec.DomainObjectLayoutTableDecorationFacet;
 import org.apache.isis.core.metamodel.object.ManagedObject;
 import org.apache.isis.core.metamodel.util.Facets;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
@@ -128,10 +127,9 @@ implements HasDynamicallyVisibleContent {
             Facets.cssClass(collectionMetaModel, objectAdapter)
             .ifPresent(cssClass->Wkt.cssAppend(div, cssClass));
 
-            val decorationFacet = collectionMetaModel.getFacet(CollectionLayoutTableDecorationFacet.class);
-            if (decorationFacet != null && decorationFacet.value().isDataTablesNet()) {
-                Wkt.cssAppend(div, "table-decoration");
-            }
+            Facets.tableDecoration(collectionMetaModel)
+                .map(CollectionLayoutConfigOptions.TableDecoration::cssClass)
+                .ifPresent(tableDecorationCssClass->Wkt.cssAppend(div, tableDecorationCssClass));
 
             val collectionPanel = new CollectionPanel(ID_COLLECTION, collectionModel);
             div.addOrReplace(collectionPanel);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java
index 754220166e..8ba04d0930 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java
@@ -24,8 +24,9 @@ import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.model.Model;
 
-import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.tabledec.DomainObjectLayoutTableDecorationFacet;
+import org.apache.isis.core.config.metamodel.facets.CollectionLayoutConfigOptions;
 import org.apache.isis.core.metamodel.interactions.managed.nonscalar.DataTableModel;
+import org.apache.isis.core.metamodel.util.Facets;
 import org.apache.isis.viewer.commons.model.components.ComponentType;
 import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
 import org.apache.isis.viewer.wicket.model.models.EntityCollectionModelStandalone;
@@ -35,8 +36,8 @@ import org.apache.isis.viewer.wicket.ui.components.collection.selector.Collectio
 import org.apache.isis.viewer.wicket.ui.components.collection.selector.CollectionPresentationSelectorPanel;
 import org.apache.isis.viewer.wicket.ui.components.collection.selector.CollectionPresentationSelectorProvider;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
-import org.apache.isis.viewer.wicket.ui.util.WktComponents;
 import org.apache.isis.viewer.wicket.ui.util.Wkt;
+import org.apache.isis.viewer.wicket.ui.util.WktComponents;
 
 import lombok.val;
 
@@ -74,10 +75,9 @@ implements CollectionCountProvider, CollectionPresentationSelectorProvider {
         Wkt.cssAppend(outerDiv, featureId);
         Wkt.cssAppend(outerDiv, collectionModel.getElementType().getFeatureIdentifier());
 
-        val decorationFacet = collectionModel.getMetaModel().getElementType().getFacet(DomainObjectLayoutTableDecorationFacet.class);
-        if (decorationFacet != null && decorationFacet.value().isDataTablesNet()) {
-            Wkt.cssAppend(outerDiv, "table-decoration");
-        }
+        Facets.tableDecoration(collectionModel.getElementType())
+            .map(CollectionLayoutConfigOptions.TableDecoration::cssClass)
+            .ifPresent(tableDecorationCssClass->Wkt.cssAppend(outerDiv, tableDecorationCssClass));
 
         // selector
         final CollectionPresentationSelectorHelper selectorHelper = new CollectionPresentationSelectorHelper(collectionModel, getComponentFactoryRegistry());
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/WicketViewerCssBundleInit.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/WicketViewerCssBundleInit.java
index c88a40020d..35495524d6 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/WicketViewerCssBundleInit.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/WicketViewerCssBundleInit.java
@@ -32,8 +32,6 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.string.MultiLineStrin
 import org.apache.isis.viewer.wicket.ui.panels.PanelUtil;
 import org.apache.isis.viewer.wicket.viewer.wicketapp.IsisWicketApplication;
 
-import de.agilecoders.wicket.webjars.request.resource.WebjarsCssResourceReference;
-
 @Configuration
 public class WicketViewerCssBundleInit implements WicketApplicationInitializer {