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

ahuber pushed a commit to branch v3
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/v3 by this push:
     new 4d91014dcb2 CAUSEWAY-2297: misnomer 'scalar' when allows plural (part 
1)
4d91014dcb2 is described below

commit 4d91014dcb2761ecebdf840f50f2d36dbfab9447
Author: Andi Huber <ahu...@apache.org>
AuthorDate: Sun Nov 24 08:49:52 2024 +0100

    CAUSEWAY-2297: misnomer 'scalar' when allows plural (part 1)
---
 .../pdfjs/wkt/ui/components/PdfJsViewerPanel.java  |  4 ++--
 .../PdfJsViewerPanelComponentFactory.java          |  8 +++----
 .../ui/components/ScalarPanelAbstractLegacy.java   |  8 +++----
 .../wicket/markup/ListeningMarkupComponent.java    |  4 ++--
 .../ListeningMarkupPanelFactoriesForWicket.java    |  6 ++---
 .../wkt/components/AsciiDocPanelFactoriesWkt.java  |  4 ++--
 .../wkt/components/MarkdownPanelFactoriesWkt.java  |  4 ++--
 .../ui/wkt/components/VegaPanelFactoriesWkt.java   |  4 ++--
 .../scalar/{UiScalar.java => UiAttribute.java}     | 14 ++++++++++--
 .../viewer/commons/model/scalar/UiParameter.java   | 10 ++++++++-
 .../viewer/commons/model/scalar/UiProperty.java    | 10 ++++++++-
 .../viewer/wicket/model/models/ActionModel.java    |  2 +-
 .../viewer/wicket/model/models/BooleanModel.java   |  8 +++----
 .../wicket/model/models/ChainingObjectModel.java   | 12 +++++-----
 .../wicket/model/models/FileUploadModels.java      |  4 ++--
 .../viewer/wicket/model/models/FormExecutor.java   |  2 +-
 .../wicket/model/models/InlinePromptContext.java   |  2 +-
 .../wicket/model/models/ManagedObjectModel.java    |  2 +-
 .../wicket/model/models/ScalarConvertingModel.java |  6 ++---
 .../wicket/model/models/ScalarModelWithChoice.java |  2 +-
 .../model/models/ScalarModelWithMultiChoice.java   | 12 +++++-----
 .../model/models/ScalarModelWithSingleChoice.java  | 12 +++++-----
 .../wicket/model/models/ScalarParameterModel.java  |  8 +++++--
 .../wicket/model/models/ScalarPropertyModel.java   |  8 +++++--
 .../wicket/model/models/ScalarUnwrappingModel.java |  8 +++----
 .../{ScalarModel.java => UiAttributeWkt.java}      | 25 ++++++++++++---------
 .../viewer/wicket/model/models/UiObjectWkt.java    |  4 ++--
 .../causeway/viewer/wicket/model/models/_Xray.java |  2 +-
 .../choices/ChoiceProviderTestAbstract.java        |  6 ++---
 .../components/entity/fieldset/PropertyGroup.java  |  4 ++--
 .../icontitle/EntityIconAndTitlePanelFactory.java  | 14 ++++++------
 .../ui/components/property/PropertyEditPanel.java  |  6 ++---
 .../scalars/ComponentFactoryScalarAbstract.java    | 12 +++++-----
 ...ponentFactoryScalarTypeConstrainedAbstract.java |  6 ++---
 .../ui/components/scalars/ScalarPanelAbstract.java | 14 ++++++------
 .../components/scalars/ScalarPanelAbstract2.java   |  4 ++--
 .../scalars/ScalarPanelAdditionalButton.java       | 12 +++++-----
 .../scalars/ScalarPanelFormFieldAbstract.java      |  6 ++---
 .../scalars/ScalarPanelSelectAbstract.java         |  6 ++---
 .../scalars/ScalarPanelTextFieldAbstract.java      |  8 +++----
 .../scalars/ScalarPanelTextFieldNumeric.java       |  4 ++--
 .../ScalarPanelTextFieldTextualAbstract.java       |  4 ++--
 .../ScalarPanelTextFieldWithTemporalPicker.java    |  4 ++--
 .../ScalarPanelTextFieldWithValueSemantics.java    |  4 ++--
 .../viewer/wicket/ui/components/scalars/_Util.java | 26 +++++++++++-----------
 .../blobclob/CausewayBlobOrClobPanelAbstract.java  |  6 ++---
 .../scalars/blobclob/CausewayBlobPanel.java        |  4 ++--
 .../scalars/blobclob/CausewayBlobPanelFactory.java |  4 ++--
 .../scalars/blobclob/CausewayClobPanel.java        |  4 ++--
 .../scalars/blobclob/CausewayClobPanelFactory.java |  4 ++--
 .../ui/components/scalars/bool/BooleanPanel.java   |  6 ++---
 .../scalars/bool/BooleanPanelFactory.java          |  4 ++--
 .../choices/ChoicesSelect2PanelFactory.java        |  8 +++----
 .../scalars/choices/ObjectChoicesSelect2Panel.java |  6 ++---
 .../scalars/choices/ScalarTitleBadgePanel.java     |  4 ++--
 .../scalars/choices/ValueChoicesSelect2Panel.java  |  6 ++---
 .../scalars/composite/CompositeValuePanel.java     |  6 ++---
 .../datepicker/TemporalDecompositionModel.java     |  4 ++--
 .../scalars/image/JavaAwtImagePanel.java           |  8 +++----
 .../scalars/image/JavaAwtImagePanelFactory.java    |  6 ++---
 .../ui/components/scalars/image/_WktImageUtil.java |  4 ++--
 .../scalars/markup/MarkupPanelFactories.java       |  8 +++----
 .../scalars/markup/ScalarMarkupPanel.java          |  4 ++--
 .../scalars/passwd/CausewayPasswordPanel.java      |  4 ++--
 .../passwd/CausewayPasswordPanelFactory.java       |  4 ++--
 .../scalars/string/MultiLineStringPanel.java       |  4 ++--
 .../ui/components/scalars/string/StringPanel.java  |  4 ++--
 .../scalars/string/StringPanelFactory.java         |  4 ++--
 .../scalars/value/fallback/ValueFallbackPanel.java |  4 ++--
 .../value/fallback/ValueFallbackPanelFactory.java  |  6 ++---
 .../tree/CausewayToWicketTreeAdapter.java          |  4 ++--
 .../ui/components/tree/ParentedTreePanel.java      |  4 ++--
 .../ui/components/tree/TreePanelFactories.java     |  6 ++---
 .../ui/components/unknown/UnknownModelPanel.java   |  6 ++---
 .../EntityLinkSimplePanelFactory.java              |  4 ++--
 .../ui/components/widgets/select2/Select2.java     |  4 ++--
 .../widgets/select2/Select2ChoiceExt.java          |  6 ++---
 .../widgets/select2/Select2MultiChoiceExt.java     |  6 ++---
 .../widgets/select2/Select2OnSelect.java           |  4 ++--
 .../ChoiceProviderAbstractForScalarModel.java      | 13 +++++------
 .../select2/providers/ChoiceProviderDefault.java   |  4 ++--
 .../components/ComponentFactoryConfigWkt.java      | 10 ++++-----
 82 files changed, 284 insertions(+), 248 deletions(-)

diff --git 
a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.java
 
b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.java
index c0a6cbd12bc..704662297cc 100644
--- 
a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.java
+++ 
b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.java
@@ -45,7 +45,7 @@ import 
org.apache.causeway.extensions.pdfjs.applib.config.Scale;
 import org.apache.causeway.extensions.pdfjs.applib.spi.PdfJsViewerAdvisor;
 import org.apache.causeway.extensions.pdfjs.metamodel.facet.PdfJsViewerFacet;
 import 
org.apache.causeway.extensions.pdfjs.wkt.integration.components.PdfJsPanel;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 import org.apache.causeway.viewer.wicket.ui.util.WktComponents;
 
@@ -79,7 +79,7 @@ implements IRequestListener {
     AbstractDefaultAjaxBehavior updateScale;
     AbstractDefaultAjaxBehavior updateHeight;
 
-    PdfJsViewerPanel(final String id, final ScalarModel scalarModel) {
+    PdfJsViewerPanel(final String id, final UiAttributeWkt scalarModel) {
         super(id, scalarModel);
     }
 
diff --git 
a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanelComponentFactory.java
 
b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanelComponentFactory.java
index ea4b2280fe8..ec2b0a26e9b 100644
--- 
a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanelComponentFactory.java
+++ 
b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanelComponentFactory.java
@@ -28,7 +28,7 @@ import 
org.apache.causeway.applib.value.NamedWithMimeType.CommonMimeType;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.extensions.pdfjs.metamodel.facet.PdfJsViewerFacet;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactoryAbstract;
 
 @org.springframework.stereotype.Component
@@ -41,11 +41,11 @@ public class PdfJsViewerPanelComponentFactory extends 
ComponentFactoryAbstract {
 
     @Override
     public ApplicationAdvice appliesTo(final IModel<?> model) {
-        if (!(model instanceof ScalarModel)) {
+        if (!(model instanceof UiAttributeWkt)) {
             return ApplicationAdvice.DOES_NOT_APPLY;
         }
 
-        var scalarModel = (ScalarModel) model;
+        var scalarModel = (UiAttributeWkt) model;
         if(!scalarModel.getMetaModel().containsFacet(PdfJsViewerFacet.class)) {
             return ApplicationAdvice.DOES_NOT_APPLY;
         }
@@ -67,6 +67,6 @@ public class PdfJsViewerPanelComponentFactory extends 
ComponentFactoryAbstract {
 
     @Override
     public Component createComponent(final String id, final IModel<?> model) {
-        return new PdfJsViewerPanel(id, (ScalarModel) model);
+        return new PdfJsViewerPanel(id, (UiAttributeWkt) model);
     }
 }
diff --git 
a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/ScalarPanelAbstractLegacy.java
 
b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/ScalarPanelAbstractLegacy.java
index 0fed28a8955..8915651a1af 100644
--- 
a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/ScalarPanelAbstractLegacy.java
+++ 
b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/ScalarPanelAbstractLegacy.java
@@ -23,23 +23,23 @@ import org.apache.wicket.MarkupContainer;
 
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.util.Facets;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 
 abstract class ScalarPanelAbstractLegacy
-extends PanelAbstract<ManagedObject, ScalarModel> {
+extends PanelAbstract<ManagedObject, UiAttributeWkt> {
 
     private static final long serialVersionUID = 1L;
 
     protected Component compactFrame;
     private Component regularFrame;
 
-    public ScalarPanelAbstractLegacy(final String id, final ScalarModel 
scalarModel) {
+    public ScalarPanelAbstractLegacy(final String id, final UiAttributeWkt 
scalarModel) {
         super(id, scalarModel);
     }
 
-    protected final ScalarModel scalarModel() {
+    protected final UiAttributeWkt scalarModel() {
         return super.getModel();
     }
 
diff --git 
a/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/markup/ListeningMarkupComponent.java
 
b/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/markup/ListeningMarkupComponent.java
index 86abcbb741f..2e531b662a4 100644
--- 
a/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/markup/ListeningMarkupComponent.java
+++ 
b/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/markup/ListeningMarkupComponent.java
@@ -25,7 +25,7 @@ import org.apache.wicket.markup.MarkupStream;
 
 import org.apache.causeway.applib.value.LocalResourcePath;
 import org.apache.causeway.core.config.viewer.web.WebAppContextPath;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
 
@@ -39,7 +39,7 @@ public class ListeningMarkupComponent extends MarkupComponent 
{
 
     public ListeningMarkupComponent(
             final String id,
-            final ScalarModel model,
+            final UiAttributeWkt model,
             final LocalResourcePath observing){
         super(id, model, Options.defaults());
         this.observing = observing;
diff --git 
a/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/markup/ListeningMarkupPanelFactoriesForWicket.java
 
b/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/markup/ListeningMarkupPanelFactoriesForWicket.java
index 7fdc96d6a49..de4260e1c43 100644
--- 
a/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/markup/ListeningMarkupPanelFactoriesForWicket.java
+++ 
b/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/markup/ListeningMarkupPanelFactoriesForWicket.java
@@ -23,7 +23,7 @@ import org.springframework.stereotype.Component;
 import org.apache.causeway.applib.value.LocalResourcePath;
 import org.apache.causeway.applib.value.Markup;
 import org.apache.causeway.extensions.sse.metamodel.facets.SseObserveFacet;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupPanelFactories;
@@ -46,7 +46,7 @@ public class ListeningMarkupPanelFactoriesForWicket {
         }
 
         @Override
-        protected MarkupComponent newMarkupComponent(final String id, final 
ScalarModel model) {
+        protected MarkupComponent newMarkupComponent(final String id, final 
UiAttributeWkt model) {
             var markupComponent = new ListeningMarkupComponent(
                     id, model, getEventStreamResource(model));
             markupComponent.setEnabled(false);
@@ -55,7 +55,7 @@ public class ListeningMarkupPanelFactoriesForWicket {
 
         // -- HELPER
 
-        private LocalResourcePath getEventStreamResource(final ScalarModel 
scalarModel) {
+        private LocalResourcePath getEventStreamResource(final UiAttributeWkt 
scalarModel) {
             var observeFacet  = 
scalarModel.getMetaModel().getFacet(SseObserveFacet.class);
             return observeFacet!=null
                     ? observeFacet.getEventStreamResource()
diff --git 
a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/causeway/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java
 
b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/causeway/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java
index a43fe1c8531..c9cc15a8ea6 100644
--- 
a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/causeway/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java
+++ 
b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/causeway/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java
@@ -21,7 +21,7 @@ package 
org.apache.causeway.valuetypes.asciidoc.ui.wkt.components;
 import org.springframework.stereotype.Component;
 
 import org.apache.causeway.valuetypes.asciidoc.applib.value.AsciiDoc;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupPanelFactories;
@@ -44,7 +44,7 @@ public class AsciiDocPanelFactoriesWkt {
         }
 
         @Override
-        protected MarkupComponent newMarkupComponent(final String id, final 
ScalarModel model) {
+        protected MarkupComponent newMarkupComponent(final String id, final 
UiAttributeWkt model) {
             var markupComponent = new AsciiDocComponentWkt(id, model);
             markupComponent.setEnabled(false);
             return markupComponent;
diff --git 
a/valuetypes/markdown/ui/wicket/src/main/java/org/apache/causeway/valuetypes/markdown/ui/wkt/components/MarkdownPanelFactoriesWkt.java
 
b/valuetypes/markdown/ui/wicket/src/main/java/org/apache/causeway/valuetypes/markdown/ui/wkt/components/MarkdownPanelFactoriesWkt.java
index f2d9fd1ae67..7397d67fa5d 100644
--- 
a/valuetypes/markdown/ui/wicket/src/main/java/org/apache/causeway/valuetypes/markdown/ui/wkt/components/MarkdownPanelFactoriesWkt.java
+++ 
b/valuetypes/markdown/ui/wicket/src/main/java/org/apache/causeway/valuetypes/markdown/ui/wkt/components/MarkdownPanelFactoriesWkt.java
@@ -21,7 +21,7 @@ package 
org.apache.causeway.valuetypes.markdown.ui.wkt.components;
 import org.springframework.stereotype.Component;
 
 import org.apache.causeway.valuetypes.markdown.applib.value.Markdown;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupPanelFactories;
@@ -44,7 +44,7 @@ public class MarkdownPanelFactoriesWkt {
         }
 
         @Override
-        protected MarkupComponent newMarkupComponent(final String id, final 
ScalarModel model) {
+        protected MarkupComponent newMarkupComponent(final String id, final 
UiAttributeWkt model) {
             var markupComponent = new MarkdownComponentWkt(id, model);
             markupComponent.setEnabled(false);
             return markupComponent;
diff --git 
a/valuetypes/vega/ui/wicket/src/main/java/org/apache/causeway/valuetypes/vega/ui/wkt/components/VegaPanelFactoriesWkt.java
 
b/valuetypes/vega/ui/wicket/src/main/java/org/apache/causeway/valuetypes/vega/ui/wkt/components/VegaPanelFactoriesWkt.java
index 8e88ede7057..845294553c6 100644
--- 
a/valuetypes/vega/ui/wicket/src/main/java/org/apache/causeway/valuetypes/vega/ui/wkt/components/VegaPanelFactoriesWkt.java
+++ 
b/valuetypes/vega/ui/wicket/src/main/java/org/apache/causeway/valuetypes/vega/ui/wkt/components/VegaPanelFactoriesWkt.java
@@ -21,7 +21,7 @@ package org.apache.causeway.valuetypes.vega.ui.wkt.components;
 import org.springframework.stereotype.Component;
 
 import org.apache.causeway.valuetypes.vega.applib.value.Vega;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupPanelFactories;
@@ -43,7 +43,7 @@ public class VegaPanelFactoriesWkt {
         }
 
         @Override
-        protected MarkupComponent newMarkupComponent(final String id, final 
ScalarModel model) {
+        protected MarkupComponent newMarkupComponent(final String id, final 
UiAttributeWkt model) {
             var markupComponent = new VegaComponentWkt(id, model);
             markupComponent.setEnabled(false);
             return markupComponent;
diff --git 
a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiScalar.java
 
b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiAttribute.java
similarity index 89%
rename from 
viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiScalar.java
rename to 
viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiAttribute.java
index 2730e0b34fb..c15aff7da03 100644
--- 
a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiScalar.java
+++ 
b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiAttribute.java
@@ -30,7 +30,17 @@ import 
org.apache.causeway.core.metamodel.spec.feature.ObjectFeature;
 import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.viewer.commons.model.UiModel;
 
-public interface UiScalar extends UiModel, HasMetaModelContext {
+/**
+ * We refer to both method parameters and instance fields collectively
+ * as "attributes" of a class or method.
+ * <p>
+ * The field case (aka property) is always singular.
+ * {@link UiAttribute#isSingular}
+ * <p>
+ * The parameter case is either singular or plural.
+ * {@link UiAttribute#isSingular} and {@link UiAttribute#isPlural}
+ */
+public interface UiAttribute extends UiModel, HasMetaModelContext {
 
     ObjectFeature getMetaModel();
 
@@ -108,7 +118,7 @@ public interface UiScalar extends UiModel, 
HasMetaModelContext {
         CHOICES,
         AUTO_COMPLETE,
         OBJECT_AUTO_COMPLETE;
-        public static ChoiceProviderSort valueOf(final UiScalar scalarModel) {
+        public static ChoiceProviderSort valueOf(final UiAttribute 
scalarModel) {
             if (scalarModel.hasChoices()) {
                 return ChoiceProviderSort.CHOICES;
             } else if(scalarModel.hasAutoComplete()) {
diff --git 
a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiParameter.java
 
b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiParameter.java
index e2901644209..b120751c759 100644
--- 
a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiParameter.java
+++ 
b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiParameter.java
@@ -32,7 +32,15 @@ import org.apache.causeway.core.metamodel.util.Facets;
 
 import lombok.NonNull;
 
-public interface UiParameter extends UiScalar {
+/**
+ * Represents a parameter of a method of a domain object.
+ * <p>
+ * A parameter is either singular or plural.
+ * {@link UiAttribute#isSingular} or {@link UiAttribute#isPlural}
+ * @See UiProperty
+ * @see UiAttribute
+ */
+public interface UiParameter extends UiAttribute {
 
     /** param meta model */
     @Override
diff --git 
a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiProperty.java
 
b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiProperty.java
index de569a5cc8d..a237585a26d 100644
--- 
a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiProperty.java
+++ 
b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiProperty.java
@@ -28,7 +28,15 @@ import 
org.apache.causeway.core.metamodel.interactions.managed.PropertyNegotiati
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation;
 
-public interface UiProperty extends UiScalar {
+/**
+ * Represents a field of a domain object.
+ * <p>
+ * A property is always singular (never plural).
+ * {@link UiAttribute#isSingular} and {@link UiAttribute#isPlural}
+ * @See UiParameter
+ * @see UiAttribute
+ */
+public interface UiProperty extends UiAttribute {
 
     /** prop meta model */
     @Override
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ActionModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ActionModel.java
index 6a5508a3c4f..2a62b79ff64 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ActionModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ActionModel.java
@@ -141,7 +141,7 @@ implements UiActionForm, FormExecutorContext, 
BookmarkableModel, IModel<ManagedO
 
     public static ActionModel forPropertyOrParameter(
             final ObjectAction action,
-            final ScalarModel scalarModel) {
+            final UiAttributeWkt scalarModel) {
         return scalarModel instanceof ScalarPropertyModel
                 ? forProperty(action, (ScalarPropertyModel)scalarModel)
                 : forParameter(action, (ScalarParameterModel)scalarModel);
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/BooleanModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/BooleanModel.java
index 367aeb25517..99490b22e5a 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/BooleanModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/BooleanModel.java
@@ -31,13 +31,13 @@ extends ChainingModel<Boolean> {
 
     private static final long serialVersionUID = 1L;
 
-    public static BooleanModel forScalarModel(final @NonNull ScalarModel 
scalarModel) {
+    public static BooleanModel forScalarModel(final @NonNull UiAttributeWkt 
scalarModel) {
         return new BooleanModel(scalarModel);
     }
 
     final boolean isPrimitive;
 
-    protected BooleanModel(final ScalarModel scalarModel) {
+    protected BooleanModel(final UiAttributeWkt scalarModel) {
         super(scalarModel);
 
         var spec = scalarModel().getElementType();
@@ -94,8 +94,8 @@ extends ChainingModel<Boolean> {
 
     // -- HELPER
 
-    protected ScalarModel scalarModel() {
-        return (ScalarModel) super.getTarget();
+    protected UiAttributeWkt scalarModel() {
+        return (UiAttributeWkt) super.getTarget();
     }
 
 }
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ChainingObjectModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ChainingObjectModel.java
index 10578e01837..f58c81e24a3 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ChainingObjectModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ChainingObjectModel.java
@@ -27,7 +27,7 @@ import 
org.apache.causeway.core.metamodel.spec.ObjectSpecification;
 import org.apache.causeway.viewer.commons.model.hints.RenderingHint;
 
 /**
- * Wraps a {@link ScalarModel} to act as an {@link ObjectAdapterModel}.
+ * Wraps a {@link UiAttributeWkt} to act as an {@link ObjectAdapterModel}.
  */
 public final class ChainingObjectModel
 extends ChainingModel<ManagedObject>
@@ -35,19 +35,19 @@ implements ObjectAdapterModel {
 
     private static final long serialVersionUID = 1L;
 
-    public static ChainingObjectModel chain(final ScalarModel scalarModel) {
+    public static ChainingObjectModel chain(final UiAttributeWkt scalarModel) {
         return new ChainingObjectModel(scalarModel);
     }
 
-    private ChainingObjectModel(final ScalarModel scalarModel) {
+    private ChainingObjectModel(final UiAttributeWkt scalarModel) {
         super(scalarModel);
     }
 
     /**
-     * chaining idiom: the {@link ScalarModel} we are chained to
+     * chaining idiom: the {@link UiAttributeWkt} we are chained to
      */
-    public ScalarModel scalarModel() {
-        return (ScalarModel) super.getTarget();
+    public UiAttributeWkt scalarModel() {
+        return (UiAttributeWkt) super.getTarget();
     }
 
     /**
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/FileUploadModels.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/FileUploadModels.java
index 7a1bb09169f..8c59ec64fb1 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/FileUploadModels.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/FileUploadModels.java
@@ -36,7 +36,7 @@ import lombok.experimental.UtilityClass;
 @UtilityClass
 public class FileUploadModels {
 
-    public ScalarConvertingModel<List<FileUpload>, Blob> blob(final @NonNull 
ScalarModel scalarModel) {
+    public ScalarConvertingModel<List<FileUpload>, Blob> blob(final @NonNull 
UiAttributeWkt scalarModel) {
         return new ScalarConvertingModel<List<FileUpload>, Blob>(scalarModel) {
 
             private static final long serialVersionUID = 1L;
@@ -68,7 +68,7 @@ public class FileUploadModels {
     }
 
     public ScalarConvertingModel<List<FileUpload>, Clob> clob(
-            final @NonNull ScalarModel scalarModel,
+            final @NonNull UiAttributeWkt scalarModel,
             final @NonNull Charset charset) {
 
         // Charset is not serializable.
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/FormExecutor.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/FormExecutor.java
index b023153d0f9..2dd8cb9ca04 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/FormExecutor.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/FormExecutor.java
@@ -24,7 +24,7 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.form.Form;
 
 /**
- * Passed through the {@link ActionModelImpl} or {@link ScalarModel}, allowing
+ * Passed through the {@link ActionModelImpl} or {@link UiAttributeWkt}, 
allowing
  * two different Wicket UI components (eg owning <code>ActionPanel</code> and
  * <code>ActionParametersFormPanel</code> to interact.
  */
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/InlinePromptContext.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/InlinePromptContext.java
index 4753b149c03..46f65e10309 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/InlinePromptContext.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/InlinePromptContext.java
@@ -35,7 +35,7 @@ public class InlinePromptContext implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    private final ScalarModel scalarModel;
+    private final UiAttributeWkt scalarModel;
 
     @Getter
     private final MarkupContainer scalarTypeContainer;
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ManagedObjectModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ManagedObjectModel.java
index b5fac0400e3..72311ad17b4 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ManagedObjectModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ManagedObjectModel.java
@@ -115,7 +115,7 @@ extends ModelAbstract<ManagedObject> {
     private transient ObjectSpecification elementTypeSpec;
     private transient boolean isObjectSpecMemoized = false;
     /**
-     * @implNote can be overridden by sub-models (eg {@link ScalarModel}) that 
know the type of
+     * @implNote can be overridden by sub-models (eg {@link UiAttributeWkt}) 
that know the type of
      * the adapter without there being one. Overriding this must be consistent
      * with {@link #getLogicalElementType()}
      */
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarConvertingModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarConvertingModel.java
index e1f57796b0b..40692c926e0 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarConvertingModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarConvertingModel.java
@@ -37,7 +37,7 @@ extends ChainingModel<T> {
 
     private static final long serialVersionUID = 1L;
 
-    protected ScalarConvertingModel(final @NonNull ScalarModel scalarModel) {
+    protected ScalarConvertingModel(final @NonNull UiAttributeWkt scalarModel) 
{
         super(scalarModel);
     }
 
@@ -67,8 +67,8 @@ extends ChainingModel<T> {
 
     // -- HELPER
 
-    protected ScalarModel scalarModel() {
-        return (ScalarModel) super.getTarget();
+    protected UiAttributeWkt scalarModel() {
+        return (UiAttributeWkt) super.getTarget();
     }
 
 }
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithChoice.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithChoice.java
index 6af979178dd..924245513d0 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithChoice.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithChoice.java
@@ -27,7 +27,7 @@ extends
     IModel<T>,
     HasCommonContext {
 
-    ScalarModel scalarModel();
+    UiAttributeWkt scalarModel();
 
     default ManagedValue pendingValue() { return 
scalarModel().proposedValue(); }
 
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithMultiChoice.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithMultiChoice.java
index 96475884361..8f2fb31b537 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithMultiChoice.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithMultiChoice.java
@@ -34,7 +34,7 @@ import lombok.extern.log4j.Log4j2;
 /**
  * For widgets that use a <tt>org.wicketstuff.select2.Select2MultiChoice</tt>;
  * synchronizes the {@link Model} of the <tt>Select2MultiChoice</tt>
- * with the parent {@link ScalarModel}, allowing also for pending values.
+ * with the parent {@link UiAttributeWkt}, allowing also for pending values.
  */
 @Log4j2
 public class ScalarModelWithMultiChoice
@@ -46,22 +46,22 @@ implements
 
     // -- FACTORY
 
-    public static ScalarModelWithMultiChoice chain(final @NonNull ScalarModel 
scalarModel) {
+    public static ScalarModelWithMultiChoice chain(final @NonNull 
UiAttributeWkt scalarModel) {
         return new ScalarModelWithMultiChoice(scalarModel);
     }
 
     // -- CONSTRUCTION
 
-    private ScalarModelWithMultiChoice(final ScalarModel scalarModel) {
+    private ScalarModelWithMultiChoice(final UiAttributeWkt scalarModel) {
         super(scalarModel); // chaining to scalarModel
     }
 
     /**
-     * chaining idiom: the {@link ScalarModel} we are chained to
+     * chaining idiom: the {@link UiAttributeWkt} we are chained to
      */
     @Override
-    public ScalarModel scalarModel() {
-        return (ScalarModel) super.getTarget();
+    public UiAttributeWkt scalarModel() {
+        return (UiAttributeWkt) super.getTarget();
     }
 
     @Override
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithSingleChoice.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithSingleChoice.java
index 8a4b90839d2..8e2888bee31 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithSingleChoice.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithSingleChoice.java
@@ -28,7 +28,7 @@ import lombok.NonNull;
 /**
  * For widgets that use a <tt>org.wicketstuff.select2.Select2Choice</tt>;
  * synchronizes the {@link Model} of the <tt>Select2Choice</tt>
- * with the parent {@link ScalarModel}.
+ * with the parent {@link UiAttributeWkt}.
  */
 //@Log4j2
 public class ScalarModelWithSingleChoice
@@ -40,22 +40,22 @@ implements
 
     // -- FACTORY
 
-    public static ScalarModelWithSingleChoice chain(final @NonNull ScalarModel 
scalarModel) {
+    public static ScalarModelWithSingleChoice chain(final @NonNull 
UiAttributeWkt scalarModel) {
         return new ScalarModelWithSingleChoice(scalarModel);
     }
 
     // -- CONSTRUCTION
 
-    private ScalarModelWithSingleChoice(final ScalarModel scalarModel) {
+    private ScalarModelWithSingleChoice(final UiAttributeWkt scalarModel) {
         super(scalarModel); // chaining to scalarModel
     }
 
     /**
-     * chaining idiom: the {@link ScalarModel} we are chained to
+     * chaining idiom: the {@link UiAttributeWkt} we are chained to
      */
     @Override
-    public ScalarModel scalarModel() {
-        return (ScalarModel) super.getTarget();
+    public UiAttributeWkt scalarModel() {
+        return (UiAttributeWkt) super.getTarget();
     }
 
     @Override
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarParameterModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarParameterModel.java
index 837be50e960..fb55d244ee6 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarParameterModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarParameterModel.java
@@ -26,13 +26,17 @@ import org.apache.causeway.core.metamodel.spec.ActionScope;
 import org.apache.causeway.core.metamodel.spec.feature.MixedIn;
 import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
 import org.apache.causeway.viewer.commons.model.scalar.HasUiParameter;
+import org.apache.causeway.viewer.commons.model.scalar.UiParameter;
 import 
org.apache.causeway.viewer.wicket.model.models.interaction.act.UiParameterWkt;
 
 import lombok.Getter;
 import lombok.NonNull;
 
-public class ScalarParameterModel
-extends ScalarModel
+/**
+ * @see UiParameter
+ */
+public final class ScalarParameterModel
+extends UiAttributeWkt
 implements HasUiParameter {
 
     private static final long serialVersionUID = 1L;
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarPropertyModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarPropertyModel.java
index 413ca7bebac..9d7b7ef4df4 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarPropertyModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarPropertyModel.java
@@ -26,12 +26,16 @@ import 
org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
 import org.apache.causeway.viewer.commons.model.hints.RenderingHint;
 import org.apache.causeway.viewer.commons.model.scalar.HasUiProperty;
+import org.apache.causeway.viewer.commons.model.scalar.UiProperty;
 import 
org.apache.causeway.viewer.wicket.model.models.interaction.prop.UiPropertyWkt;
 
 import lombok.Getter;
 
-public class ScalarPropertyModel
-extends ScalarModel
+/**
+ * @see UiProperty
+ */
+public final class ScalarPropertyModel
+extends UiAttributeWkt
 implements HasUiProperty {
 
     private static final long serialVersionUID = 1L;
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarUnwrappingModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarUnwrappingModel.java
index 5c49b6073d6..d0477779593 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarUnwrappingModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarUnwrappingModel.java
@@ -32,7 +32,7 @@ import lombok.NonNull;
 
 /**
  * Wraps and unwraps the contained value within {@link ManagedObject},
- * as provided by a {@link ScalarModel}.
+ * as provided by a {@link UiAttributeWkt}.
  */
 public class ScalarUnwrappingModel<T>
 extends ChainingModel<T> {
@@ -43,7 +43,7 @@ extends ChainingModel<T> {
 
     public ScalarUnwrappingModel(
             final @NonNull Class<T> type,
-            final @NonNull ScalarModel scalarModel) {
+            final @NonNull UiAttributeWkt scalarModel) {
         super(scalarModel);
         this.type = type;
         
_Assert.assertTrue(scalarModel.getElementType().isAssignableFrom(type), ()->
@@ -82,8 +82,8 @@ extends ChainingModel<T> {
         return _Casts.uncheckedCast(pojo);
     }
 
-    private ScalarModel scalarModel() {
-        return (ScalarModel) super.getTarget();
+    private UiAttributeWkt scalarModel() {
+        return (UiAttributeWkt) super.getTarget();
     }
 
 }
\ No newline at end of file
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/UiAttributeWkt.java
similarity index 93%
rename from 
viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModel.java
rename to 
viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/UiAttributeWkt.java
index 3617aff1668..7fdcc0e1daf 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/UiAttributeWkt.java
@@ -39,7 +39,7 @@ import 
org.apache.causeway.core.metamodel.spec.feature.ObjectFeature;
 import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.viewer.commons.model.hints.HasRenderingHints;
 import org.apache.causeway.viewer.commons.model.hints.RenderingHint;
-import org.apache.causeway.viewer.commons.model.scalar.UiScalar;
+import org.apache.causeway.viewer.commons.model.scalar.UiAttribute;
 import 
org.apache.causeway.viewer.wicket.model.value.ConverterBasedOnValueSemantics;
 
 import lombok.Getter;
@@ -47,23 +47,26 @@ import lombok.NonNull;
 import lombok.Setter;
 
 /**
- * Represents a scalar of an entity, either a PROPERTY or
- * a PARAMETER.
- *
+ * We refer to both method parameters and instance fields collectively
+ * as "attributes" of a class or method.
+ * <p>
+ * Represents an attribute of a domain object, either a PROPERTY or
+ * a PARAMETER. Potentially plural in the latter case.
  * <p>
- * Is the backing model to each of the fields that appear in forms (for 
entities
+ * Is also the backing model to each of the fields that appear in forms (for 
entities
  * or action dialogs).
  *
  * @implSpec
  * <pre>
- * ScalarModel --chained-to--> UiObjectWkt
- * ScalarModel --provides--> ManagedObject <--provides-- ManagedValue
+ * UiAttributeWkt --chained-to--> UiObjectWkt
+ * UiAttributeWkt --provides--> ManagedObject <--provides-- ManagedValue
  * </pre>
+ * @see UiAttribute
  */
 //@Log4j2
-public abstract class ScalarModel
+public abstract class UiAttributeWkt
 extends ChainingModel<ManagedObject>
-implements HasRenderingHints, UiScalar, FormExecutorContext {
+implements HasRenderingHints, UiAttribute, FormExecutorContext {
 
     private static final long serialVersionUID = 1L;
 
@@ -81,7 +84,7 @@ implements HasRenderingHints, UiScalar, FormExecutorContext {
      * object, with the {@link #getObject() value of this model} to be default
      * value (if any) of that action parameter.
      */
-    protected ScalarModel(
+    protected UiAttributeWkt(
             final UiObjectWkt parentUiObject,
             final ViewOrEditMode viewOrEdit) {
         this(parentUiObject, viewOrEdit, RenderingHint.REGULAR);
@@ -92,7 +95,7 @@ implements HasRenderingHints, UiScalar, FormExecutorContext {
      * {@link #getObject() value of this model} to be current value of the
      * property.
      */
-    protected ScalarModel(
+    protected UiAttributeWkt(
             final @NonNull UiObjectWkt parentEntityModel,
             final @NonNull ViewOrEditMode viewOrEdit,
             final @NonNull RenderingHint renderingHint) {
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/UiObjectWkt.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/UiObjectWkt.java
index f039baafcea..a365a8ff231 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/UiObjectWkt.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/UiObjectWkt.java
@@ -211,7 +211,7 @@ implements
     /**
      * Lazily populates with the current value of each property.
      */
-    public ScalarModel getPropertyModel(
+    public UiAttributeWkt getPropertyModel(
             final OneToOneAssociation property,
             final ViewOrEditMode viewOrEdit,
             final RenderingHint renderingHint) {
@@ -233,7 +233,7 @@ implements
 
         var propIdentifier = property.getFeatureIdentifier();
         var propertyScalarModels = propertyScalarModels();
-        final ScalarModel existingScalarModel = 
propertyScalarModels.get(propIdentifier);
+        final UiAttributeWkt existingScalarModel = 
propertyScalarModels.get(propIdentifier);
         if (existingScalarModel != null) {
             return existingScalarModel;
         }
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/_Xray.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/_Xray.java
index 180a6e64927..01aa63ef929 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/_Xray.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/_Xray.java
@@ -31,7 +31,7 @@ import lombok.experimental.UtilityClass;
 final class _Xray {
 
     static void onSclarModelUpdate(
-            final ScalarModel scalarModel, final ManagedObject oldValue, final 
ManagedObject newValue) {
+            final UiAttributeWkt scalarModel, final ManagedObject oldValue, 
final ManagedObject newValue) {
         if(!XrayUi.isXrayEnabled()) return;
 
         var oldPojo = MmUnwrapUtils.single(oldValue);
diff --git 
a/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/widgets/choices/ChoiceProviderTestAbstract.java
 
b/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/widgets/choices/ChoiceProviderTestAbstract.java
index 724c51799a3..36210dbd6a2 100644
--- 
a/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/widgets/choices/ChoiceProviderTestAbstract.java
+++ 
b/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/widgets/choices/ChoiceProviderTestAbstract.java
@@ -29,7 +29,7 @@ import 
org.apache.causeway.core.metamodel.object.ManagedObject;
 import 
org.apache.causeway.core.metamodel.valuesemantics.BigDecimalValueSemantics;
 import org.apache.causeway.core.metamodel.valuesemantics.IntValueSemantics;
 import org.apache.causeway.core.metamodel.valuesemantics.UUIDValueSemantics;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 
 abstract class ChoiceProviderTestAbstract {
 
@@ -45,8 +45,8 @@ abstract class ChoiceProviderTestAbstract {
                 ;
     }
 
-    protected ScalarModel mockScalarModel(final Can<ManagedObject> choices, 
final boolean isRequired) {
-        var mockScalarModel = mock(ScalarModel.class);
+    protected UiAttributeWkt mockScalarModel(final Can<ManagedObject> choices, 
final boolean isRequired) {
+        var mockScalarModel = mock(UiAttributeWkt.class);
         when(mockScalarModel.getChoices()).thenReturn(choices);
         when(mockScalarModel.isRequired()).thenReturn(isRequired);
         when(mockScalarModel.hasChoices()).thenReturn(true);
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java
index 15d7425ccbf..84991df26b3 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java
@@ -40,7 +40,7 @@ import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
 import org.apache.causeway.viewer.commons.model.hints.RenderingHint;
 import org.apache.causeway.viewer.wicket.model.models.ActionModel;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.model.models.UiObjectWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.actionlinks.entityactions.ActionLinksPanel;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
@@ -183,7 +183,7 @@ public class PropertyGroup extends 
PanelAbstract<ManagedObject, UiObjectWkt> imp
             final WebMarkupContainer container,
             final Consumer<ActionModel> onAssociatedAction) {
 
-        final ScalarModel scalarModel =
+        final UiAttributeWkt scalarModel =
                 entityModel.getPropertyModel(property, ViewOrEditMode.VIEWING, 
RenderingHint.REGULAR);
 
         final Component scalarNameAndValueComponent = 
getComponentFactoryRegistry()
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanelFactory.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanelFactory.java
index 0d39f6b0b2d..45be13ab2dc 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanelFactory.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanelFactory.java
@@ -26,7 +26,7 @@ import 
org.apache.causeway.core.metamodel.spec.ObjectSpecification;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
 import org.apache.causeway.viewer.wicket.model.models.ChainingObjectModel;
 import org.apache.causeway.viewer.wicket.model.models.ObjectAdapterModel;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactoryAbstract;
 
@@ -34,9 +34,9 @@ import 
org.apache.causeway.viewer.wicket.ui.ComponentFactoryAbstract;
  * {@link ComponentFactory} for {@link EntityIconAndTitlePanel}.
  *
  * @implNote Knows how to deal with {@link ObjectAdapterModel}. And for
- * {@link ScalarModel} we have an adapter {@link ChainingObjectModel}
+ * {@link UiAttributeWkt} we have an adapter {@link ChainingObjectModel}
  * that implements {@link ObjectAdapterModel}, such that it can also deal
- * with {@link ScalarModel}.
+ * with {@link UiAttributeWkt}.
  *
  */
 public class EntityIconAndTitlePanelFactory extends ComponentFactoryAbstract {
@@ -65,8 +65,8 @@ public class EntityIconAndTitlePanelFactory extends 
ComponentFactoryAbstract {
 
         if (model instanceof ObjectAdapterModel) {
             spec = ((ObjectAdapterModel) model).getTypeOfSpecification();
-        } else if (model instanceof ScalarModel) {
-            spec = ((ScalarModel) model).getElementType();
+        } else if (model instanceof UiAttributeWkt) {
+            spec = ((UiAttributeWkt) model).getElementType();
         } else {
             return ApplicationAdvice.DOES_NOT_APPLY;
         }
@@ -84,8 +84,8 @@ public class EntityIconAndTitlePanelFactory extends 
ComponentFactoryAbstract {
 
         if (model instanceof ObjectAdapterModel) {
             objectAdapterModel = (ObjectAdapterModel) model;
-        } else if (model instanceof ScalarModel) {
-            var scalarModel = (ScalarModel) model;
+        } else if (model instanceof UiAttributeWkt) {
+            var scalarModel = (UiAttributeWkt) model;
             // effectively acts as an adapter from ScalarModel to 
ObjectAdapterModel
             objectAdapterModel = ChainingObjectModel.chain(scalarModel);
         } else {
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditPanel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditPanel.java
index a452a3b3637..93b9a403fbf 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditPanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditPanel.java
@@ -24,7 +24,7 @@ import 
org.apache.causeway.core.metamodel.commons.ViewOrEditMode;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
 import org.apache.causeway.viewer.commons.model.hints.RenderingHint;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.model.models.ScalarPropertyModel;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
@@ -64,7 +64,7 @@ extends PanelAbstract<ManagedObject, ScalarPropertyModel> {
         buildGui(scalarModel());
     }
 
-    private void buildGui(final ScalarModel scalarModel) {
+    private void buildGui(final UiAttributeWkt scalarModel) {
         buildGuiForParameters(scalarModel);
     }
 
@@ -77,7 +77,7 @@ extends PanelAbstract<ManagedObject, ScalarPropertyModel> {
         return this;
     }
 
-    private void buildGuiForParameters(final ScalarModel scalarModel) {
+    private void buildGuiForParameters(final UiAttributeWkt scalarModel) {
 
         WebMarkupContainer header = addHeader();
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ComponentFactoryScalarAbstract.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ComponentFactoryScalarAbstract.java
index 0156e1d31ad..7935509e556 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ComponentFactoryScalarAbstract.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ComponentFactoryScalarAbstract.java
@@ -22,7 +22,7 @@ import org.apache.wicket.Component;
 import org.apache.wicket.model.IModel;
 
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactoryAbstract;
 
 public abstract class ComponentFactoryScalarAbstract
@@ -35,18 +35,18 @@ extends ComponentFactoryAbstract {
 
     @Override
     public final Component createComponent(final String id, final IModel<?> 
model) {
-        return createComponent(id, (ScalarModel) model);
+        return createComponent(id, (UiAttributeWkt) model);
     }
 
     @Override
     public final ApplicationAdvice appliesTo(final IModel<?> model) {
-        if (!(model instanceof ScalarModel)) {
+        if (!(model instanceof UiAttributeWkt)) {
             return ApplicationAdvice.DOES_NOT_APPLY;
         }
-        return appliesTo((ScalarModel)model);
+        return appliesTo((UiAttributeWkt)model);
     }
 
-    protected abstract Component createComponent(String id, ScalarModel 
scalarModel);
-    protected abstract ApplicationAdvice appliesTo(ScalarModel scalarModel);
+    protected abstract Component createComponent(String id, UiAttributeWkt 
scalarModel);
+    protected abstract ApplicationAdvice appliesTo(UiAttributeWkt scalarModel);
 
 }
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ComponentFactoryScalarTypeConstrainedAbstract.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ComponentFactoryScalarTypeConstrainedAbstract.java
index 349b54a9a11..d37904671c7 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ComponentFactoryScalarTypeConstrainedAbstract.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ComponentFactoryScalarTypeConstrainedAbstract.java
@@ -19,7 +19,7 @@
 package org.apache.causeway.viewer.wicket.ui.components.scalars;
 
 import org.apache.causeway.commons.collections.Can;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 
 import lombok.Getter;
 
@@ -27,7 +27,7 @@ public abstract class 
ComponentFactoryScalarTypeConstrainedAbstract
 extends ComponentFactoryScalarAbstract {
 
     /**
-     * Provides discrimination based on {@link 
ScalarModel#isScalarTypeAnyOf(Can)}.
+     * Provides discrimination based on {@link 
UiAttributeWkt#isScalarTypeAnyOf(Can)}.
      * <p>
      * If empty, no type constraints are applied.
      */
@@ -48,7 +48,7 @@ extends ComponentFactoryScalarAbstract {
     }
 
     @Override
-    protected final ApplicationAdvice appliesTo(final ScalarModel scalarModel) 
{
+    protected final ApplicationAdvice appliesTo(final UiAttributeWkt 
scalarModel) {
 
         // discriminates based on given scalarTypes, if any
         if(scalarTypes.isNotEmpty()
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 5efe3c60749..da9e8aca0fd 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -55,7 +55,7 @@ import 
org.apache.causeway.viewer.commons.model.components.UiComponentType;
 import 
org.apache.causeway.viewer.commons.model.decorators.FormLabelDecorator.FormLabelDecorationModel;
 import org.apache.causeway.viewer.commons.model.scalar.UiParameter;
 import org.apache.causeway.viewer.wicket.model.models.ActionModel;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.actionlinks.entityactions.ActionLinksPanel;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FrameFragment;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.RegularFrame;
@@ -75,7 +75,7 @@ import lombok.Value;
 import 
de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 
 public abstract class ScalarPanelAbstract
-extends PanelAbstract<ManagedObject, ScalarModel>
+extends PanelAbstract<ManagedObject, UiAttributeWkt>
 implements ScalarModelChangeListener {
 
     private static final long serialVersionUID = 1L;
@@ -158,7 +158,7 @@ implements ScalarModelChangeListener {
     }
 
     /**
-     * During AJAX requests, first the {@link ScalarModel} gets updated,
+     * During AJAX requests, first the {@link UiAttributeWkt} gets updated,
      * then later, changed components get a chance to participate in the 
partial page update
      * based on whether their models have changed.
      * <p>
@@ -187,7 +187,7 @@ implements ScalarModelChangeListener {
     /**
      * Identical to super.getModel()
      */
-    public final ScalarModel scalarModel() {
+    public final UiAttributeWkt scalarModel() {
         return super.getModel();
     }
 
@@ -243,7 +243,7 @@ implements ScalarModelChangeListener {
 
     // -- CONSTRUCTION
 
-    protected ScalarPanelAbstract(final String id, final ScalarModel 
scalarModel) {
+    protected ScalarPanelAbstract(final String id, final UiAttributeWkt 
scalarModel) {
         super(id, scalarModel);
 
         var formatModifiers = EnumSet.noneOf(FormatModifier.class);
@@ -568,7 +568,7 @@ implements ScalarModelChangeListener {
 
     @Value
     private static class ScalarNameHelper {
-        static ScalarNameHelper from(final ScalarModel scalarModel) {
+        static ScalarNameHelper from(final UiAttributeWkt scalarModel) {
             final LabelPosition labelPostion = 
Facets.labelAt(scalarModel.getMetaModel());
             return labelPostion == LabelPosition.NONE
                     ? new ScalarNameHelper(Optional.empty(), new 
String[]{ID_SCALAR_NAME_BEFORE_VALUE, ID_SCALAR_NAME_AFTER_VALUE})
@@ -635,7 +635,7 @@ implements ScalarModelChangeListener {
         Wkt.cssAppend(markupContainer, 
determineActionLayoutPositioningCss(actionLinks));
     }
 
-    private static String determinePropParamLayoutCss(final ScalarModel 
scalarModel) {
+    private static String determinePropParamLayoutCss(final UiAttributeWkt 
scalarModel) {
         return Facets.labelAtCss(scalarModel.getMetaModel());
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index cbfd94cdc8b..c9fc8afcc04 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -34,7 +34,7 @@ import 
org.apache.causeway.core.metamodel.interactions.managed.InteractionVeto;
 import org.apache.causeway.viewer.commons.model.components.UiString;
 import org.apache.causeway.viewer.wicket.model.models.ActionModel;
 import org.apache.causeway.viewer.wicket.model.models.InlinePromptContext;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.CompactFragment;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFragment;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFrame;
@@ -69,7 +69,7 @@ extends ScalarPanelAbstract {
 
     // -- CONSTRUCTION
 
-    protected ScalarPanelAbstract2(final String id, final ScalarModel 
scalarModel) {
+    protected ScalarPanelAbstract2(final String id, final UiAttributeWkt 
scalarModel) {
         super(id, scalarModel);
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAdditionalButton.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAdditionalButton.java
index 9c09cc9261c..1b627a12c6d 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAdditionalButton.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAdditionalButton.java
@@ -21,7 +21,7 @@ package 
org.apache.causeway.viewer.wicket.ui.components.scalars;
 import org.apache.causeway.core.metamodel.consent.Consent;
 import org.apache.causeway.core.metamodel.consent.Consent.VetoReason;
 import org.apache.causeway.core.metamodel.interactions.managed.InteractionVeto;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFragment;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract.RenderScenario;
 
@@ -34,7 +34,7 @@ enum ScalarPanelAdditionalButton {
     DISABLED_REASON {
         @Override
         boolean isVisible(
-                final ScalarModel scalarModel,
+                final UiAttributeWkt scalarModel,
                 final RenderScenario renderScenario,
                 final FieldFragment fieldFragment) {
             var precondition = 
renderScenario!=RenderScenario.CAN_EDIT_INLINE_VIA_ACTION;
@@ -50,7 +50,7 @@ enum ScalarPanelAdditionalButton {
     DISABLED_REASON_PROTOTYPING {
         @Override
         boolean isVisible(
-                final ScalarModel scalarModel,
+                final UiAttributeWkt scalarModel,
                 final RenderScenario renderScenario,
                 final FieldFragment fieldFragment) {
             var precondition = 
renderScenario!=RenderScenario.CAN_EDIT_INLINE_VIA_ACTION
@@ -70,7 +70,7 @@ enum ScalarPanelAdditionalButton {
     CLEAR_FIELD {
         @Override
         boolean isVisible(
-                final ScalarModel scalarModel,
+                final UiAttributeWkt scalarModel,
                 final RenderScenario renderScenario,
                 final FieldFragment fieldFragment) {
 
@@ -104,7 +104,7 @@ enum ScalarPanelAdditionalButton {
     COPY_TO_CLIPBOARD {
         @Override
         boolean isVisible(
-                final ScalarModel scalarModel,
+                final UiAttributeWkt scalarModel,
                 final RenderScenario renderScenario,
                 final FieldFragment fieldFragment) {
             //XXX Future extension
@@ -114,6 +114,6 @@ enum ScalarPanelAdditionalButton {
     ;
 
     abstract boolean isVisible(
-            ScalarModel scalarModel, RenderScenario renderScenario, 
FieldFragment fieldFragment);
+            UiAttributeWkt scalarModel, RenderScenario renderScenario, 
FieldFragment fieldFragment);
 
 }
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
index c218eb90373..750dd0cc651 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
@@ -32,7 +32,7 @@ import org.apache.causeway.commons.internal.base._Strings;
 import org.apache.causeway.commons.internal.collections._Maps;
 import org.apache.causeway.commons.internal.exceptions._Exceptions;
 import org.apache.causeway.core.metamodel.interactions.managed.InteractionVeto;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFragment;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFrame;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FrameFragment;
@@ -51,7 +51,7 @@ extends ScalarPanelAbstract2 {
 
     protected ScalarPanelFormFieldAbstract(
             final String id,
-            final ScalarModel scalarModel,
+            final UiAttributeWkt scalarModel,
             final Class<T> type) {
         super(id, scalarModel);
         this.type = type;
@@ -107,7 +107,7 @@ extends ScalarPanelAbstract2 {
     /**
      * Builds the component to render the form input field.
      */
-    protected abstract FormComponent<T> createFormComponent(String id, 
ScalarModel scalarModel);
+    protected abstract FormComponent<T> createFormComponent(String id, 
UiAttributeWkt scalarModel);
 
     // -- REGULAR
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelSelectAbstract.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelSelectAbstract.java
index 790731f7a95..9176f7dfd15 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelSelectAbstract.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelSelectAbstract.java
@@ -30,7 +30,7 @@ import 
org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.viewer.commons.model.components.UiString;
 import org.apache.causeway.viewer.commons.model.scalar.UiParameter;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.ui.components.widgets.select2.Select2;
 import 
org.apache.causeway.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderAbstract;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
@@ -52,14 +52,14 @@ extends ScalarPanelFormFieldAbstract<ManagedObject> {
 
     protected ScalarPanelSelectAbstract(
             final String id,
-            final ScalarModel scalarModel) {
+            final UiAttributeWkt scalarModel) {
         super(id, scalarModel, ManagedObject.class);
         setOutputMarkupId(true);
     }
 
     protected final Select2 createSelect2(
             final String id,
-            final Function<ScalarModel, ChoiceProviderAbstract> 
choiceProviderFactory) {
+            final Function<UiAttributeWkt, ChoiceProviderAbstract> 
choiceProviderFactory) {
         var scalarModel = scalarModel();
         var select2 = Select2.createSelect2(id, scalarModel,
                 choiceProviderFactory.apply(scalarModel),
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index efba7f8367b..72b9d430dd3 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -28,13 +28,13 @@ import org.apache.wicket.util.convert.IConverter;
 import org.apache.causeway.commons.internal.assertions._Assert;
 import org.apache.causeway.commons.internal.exceptions._Exceptions;
 import org.apache.causeway.viewer.commons.model.components.UiString;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 
 /**
- * Adapter for {@link PanelAbstract panel}s that use a {@link ScalarModel} as
+ * Adapter for {@link PanelAbstract panel}s that use a {@link UiAttributeWkt} 
as
  * their backing model.
  * <p>
  * Supports the concept of being
@@ -52,7 +52,7 @@ extends ScalarPanelFormFieldAbstract<T> {
 
     protected ScalarPanelTextFieldAbstract(
             final String id,
-            final ScalarModel scalarModel,
+            final UiAttributeWkt scalarModel,
             final Class<T> type) {
         super(id, scalarModel, type);
         guardAgainstIncompatibleScalarType();
@@ -90,7 +90,7 @@ extends ScalarPanelFormFieldAbstract<T> {
     // --
 
     @Override
-    protected final FormComponent<T> createFormComponent(final String id, 
final ScalarModel scalarModel) {
+    protected final FormComponent<T> createFormComponent(final String id, 
final UiAttributeWkt scalarModel) {
         this.formField = createTextField(id);
         formField.setOutputMarkupId(true);
         return applyFormComponentAttributes(formField);
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
index e95ab7ddfcb..43ca2fb94ea 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.viewer.wicket.ui.components.scalars;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 
 /**
  * Panel for rendering numeric scalars.
@@ -30,7 +30,7 @@ extends ScalarPanelTextFieldWithValueSemantics<T> {
 
     public ScalarPanelTextFieldNumeric(
             final String id,
-            final ScalarModel scalarModel,
+            final UiAttributeWkt scalarModel,
             final Class<T> type) {
         super(id, scalarModel, type);
     }
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldTextualAbstract.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldTextualAbstract.java
index 64dfc205815..8977f8d4549 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldTextualAbstract.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldTextualAbstract.java
@@ -23,7 +23,7 @@ import java.util.Optional;
 
 import org.apache.wicket.util.convert.IConverter;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 
 /**
  * Specialization of {@link ScalarPanelTextFieldAbstract},
@@ -36,7 +36,7 @@ extends ScalarPanelTextFieldAbstract<String> {
     private static final long serialVersionUID = 1L;
 
     protected ScalarPanelTextFieldTextualAbstract(
-            final String id, final ScalarModel scalarModel) {
+            final String id, final UiAttributeWkt scalarModel) {
         super(id, scalarModel, String.class);
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
index 496dc176f25..0765aeb17f6 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
@@ -33,7 +33,7 @@ import 
org.apache.causeway.applib.value.semantics.TemporalCharacteristicsProvide
 import org.apache.causeway.applib.value.semantics.TemporalSupport;
 import org.apache.causeway.core.metamodel.object.MmValueUtils;
 import org.apache.causeway.core.metamodel.util.Facets;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.model.value.ConverterBasedOnValueSemantics;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.datepicker.TemporalDecompositionModel;
@@ -53,7 +53,7 @@ extends ScalarPanelTextFieldWithValueSemantics<T>  {
     private TemporalDecompositionModel<T> temporalDecomposition;
 
     public ScalarPanelTextFieldWithTemporalPicker(
-            final String id, final ScalarModel scalarModel, final Class<T> 
type) {
+            final String id, final UiAttributeWkt scalarModel, final Class<T> 
type) {
         super(id, scalarModel, type);
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithValueSemantics.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithValueSemantics.java
index 6d92a53f91e..31e7eaceba2 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithValueSemantics.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithValueSemantics.java
@@ -23,7 +23,7 @@ import java.util.Optional;
 import org.apache.wicket.util.convert.IConverter;
 
 import org.apache.causeway.applib.value.semantics.ValueSemanticsProvider;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 
 /**
  * Specialization of {@link ScalarPanelTextFieldAbstract},
@@ -37,7 +37,7 @@ extends ScalarPanelTextFieldAbstract<T> {
 
     public ScalarPanelTextFieldWithValueSemantics(
             final String id,
-            final ScalarModel scalarModel,
+            final UiAttributeWkt scalarModel,
             final Class<T> type) {
         super(id, scalarModel, type);
     }
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/_Util.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/_Util.java
index 38bf93426c4..31540a8a639 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/_Util.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/_Util.java
@@ -36,7 +36,7 @@ import 
org.apache.causeway.core.metamodel.objectmanager.memento.ObjectMemento;
 import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
 import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.viewer.wicket.model.models.ActionModel;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 
 import lombok.experimental.UtilityClass;
 
@@ -46,14 +46,14 @@ class _Util {
     /**
      * Whether to prevent tabbing into non-editable widgets.
      */
-    boolean isPropertyWithEnterEditNotAvailable(final ScalarModel scalarModel) 
{
+    boolean isPropertyWithEnterEditNotAvailable(final UiAttributeWkt 
scalarModel) {
         return scalarModel.isProperty()
                 && scalarModel.isViewingMode()
                 && (scalarModel.getPromptStyle().isDialogAny()
                         || !canEnterEditMode(scalarModel));
     }
 
-    boolean canPropertyEnterInlineEditDirectly(final ScalarModel scalarModel) {
+    boolean canPropertyEnterInlineEditDirectly(final UiAttributeWkt 
scalarModel) {
         return scalarModel.getPromptStyle().isInline()
                 && scalarModel.isViewingMode()
                 && !scalarModel.disabledReason().isPresent();
@@ -64,27 +64,27 @@ class _Util {
      * <p>
      * @implNote {@code !scalarModel.disabledReason().isPresent()} is not 
checked nor asserted here
      */
-    boolean canParameterEnterNestedEdit(final ScalarModel scalarModel) {
+    boolean canParameterEnterNestedEdit(final UiAttributeWkt scalarModel) {
         return scalarModel.isParameter()
                 && !scalarModel.hasChoices() // handled by select2 panels 
instead
                 && 
lookupCompositeValueMixinForFeature(scalarModel).isPresent();
     }
 
-    Optional<ActionModel> lookupMixinForCompositeValueUpdate(final ScalarModel 
scalarModel) {
+    Optional<ActionModel> lookupMixinForCompositeValueUpdate(final 
UiAttributeWkt scalarModel) {
         return lookupCompositeValueMixinForFeature(scalarModel)
             .flatMap(compositeValueMixinForFeature->
                 toActionModelWithRuleChecking(compositeValueMixinForFeature, 
scalarModel))
             .filter(_Util::guardAgainstInvalidCompositeMixinScenarios);
     }
 
-    Optional<ActionModel> lookupPropertyActionForInlineEdit(final ScalarModel 
scalarModel) {
+    Optional<ActionModel> lookupPropertyActionForInlineEdit(final 
UiAttributeWkt scalarModel) {
         // not editable property, but maybe one of the actions is.
         return scalarModel.getAssociatedActions()
                 .getFirstAssociatedWithInlineAsIfEdit()
                 .flatMap(action->toActionModelWithRuleChecking(action, 
scalarModel));
     }
 
-    Can<ActionModel> associatedActionModels(final ScalarModel scalarModel) {
+    Can<ActionModel> associatedActionModels(final UiAttributeWkt scalarModel) {
         // find associated actions for this scalar property (only properties 
will have any.)
         // convert those actions into UI layer widgets
         return scalarModel.getAssociatedActions()
@@ -94,7 +94,7 @@ class _Util {
                 .collect(Can.toCan());
     }
 
-    IValidator<Object> createValidatorFor(final ScalarModel scalarModel) {
+    IValidator<Object> createValidatorFor(final UiAttributeWkt scalarModel) {
         return new IValidator<Object>() {
             private static final long serialVersionUID = 1L;
             @Override
@@ -111,21 +111,21 @@ class _Util {
 
     // -- HELPER
 
-    private boolean canEnterEditMode(final ScalarModel scalarModel) {
+    private boolean canEnterEditMode(final UiAttributeWkt scalarModel) {
         return scalarModel.isViewingMode()
                 && !scalarModel.disabledReason().isPresent();
     }
 
     private Optional<ActionModel> toActionModelNoRuleChecking(
             final @Nullable ObjectAction action,
-            final ScalarModel scalarModel) {
+            final UiAttributeWkt scalarModel) {
         return Optional.ofNullable(action)
         .map(act->ActionModel.forPropertyOrParameter(act, scalarModel));
     }
 
     private Optional<ActionModel> toActionModelWithRuleChecking(
             final @Nullable ObjectAction action,
-            final ScalarModel scalarModel) {
+            final UiAttributeWkt scalarModel) {
         return toActionModelNoRuleChecking(action, scalarModel)
         .filter(ActionModel::isVisible)
         .filter(ActionModel::isEnabled);
@@ -148,7 +148,7 @@ class _Util {
     //XXX its rather unfortunate, that this method has to deal with 4 
different cases
     private Optional<ManagedObject> recoverProposedValue(
             final Object valueObject,
-            final ScalarModel scalarModel){
+            final UiAttributeWkt scalarModel){
 
         if(valueObject instanceof Collection) {
 
@@ -183,7 +183,7 @@ class _Util {
                         .adapt(valueObject));
     }
 
-    private Optional<ObjectAction> lookupCompositeValueMixinForFeature(final 
ScalarModel scalarModel) {
+    private Optional<ObjectAction> lookupCompositeValueMixinForFeature(final 
UiAttributeWkt scalarModel) {
         var spec = scalarModel.getElementType();
         if(!spec.isValue()) {
             return Optional.empty();
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobOrClobPanelAbstract.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobOrClobPanelAbstract.java
index 486cc960898..5bb9f6ee232 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobOrClobPanelAbstract.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobOrClobPanelAbstract.java
@@ -33,7 +33,7 @@ import org.apache.causeway.applib.value.Blob;
 import org.apache.causeway.applib.value.Clob;
 import org.apache.causeway.applib.value.NamedWithMimeType;
 import org.apache.causeway.viewer.commons.model.components.UiString;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.CompactFragment;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelFormFieldAbstract;
@@ -48,7 +48,7 @@ extends ScalarPanelFormFieldAbstract<T> {
     /** Model that maps to either {@link Blob} or {@link Clob} */
     private IModel<T> unwrapped;
 
-    protected CausewayBlobOrClobPanelAbstract(final String id, final 
ScalarModel scalarModel, final Class<T> type) {
+    protected CausewayBlobOrClobPanelAbstract(final String id, final 
UiAttributeWkt scalarModel, final Class<T> type) {
         super(id, scalarModel, type);
         this.unwrapped = scalarModel.unwrapped(type);
     }
@@ -66,7 +66,7 @@ extends ScalarPanelFormFieldAbstract<T> {
     // generic type mismatch; no issue as long as we don't use conversion
     @SuppressWarnings({ "unchecked", "rawtypes" })
     @Override
-    protected FormComponent createFormComponent(final String id, final 
ScalarModel scalarModel) {
+    protected FormComponent createFormComponent(final String id, final 
UiAttributeWkt scalarModel) {
         var initialCaption = outputFormatAsString();
         var fileUploadField = Wkt.fileUploadField(id, initialCaption, 
fileUploadModel());
         addAcceptFilterTo(fileUploadField);
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobPanel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobPanel.java
index d0cea2f9ad0..3d23cc285e5 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobPanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobPanel.java
@@ -27,7 +27,7 @@ import org.apache.wicket.request.resource.IResource;
 
 import org.apache.causeway.applib.value.Blob;
 import org.apache.causeway.viewer.wicket.model.models.FileUploadModels;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 
 /**
  * Panel for rendering scalars of type {@link 
org.apache.causeway.applib.value.Blob Causeway' applib.Blob}.
@@ -36,7 +36,7 @@ class CausewayBlobPanel extends 
CausewayBlobOrClobPanelAbstract<Blob> {
 
     private static final long serialVersionUID = 1L;
 
-    public CausewayBlobPanel(final String id, final ScalarModel model) {
+    public CausewayBlobPanel(final String id, final UiAttributeWkt model) {
         super(id, model, Blob.class);
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobPanelFactory.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobPanelFactory.java
index 5b58a2352f2..6d86662dc9a 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobPanelFactory.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobPanelFactory.java
@@ -20,7 +20,7 @@ package 
org.apache.causeway.viewer.wicket.ui.components.scalars.blobclob;
 
 import org.apache.wicket.Component;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarTypeConstrainedAbstract;
 
@@ -34,7 +34,7 @@ public class CausewayBlobPanelFactory extends 
ComponentFactoryScalarTypeConstrai
     }
 
     @Override
-    public Component createComponent(final String id, final ScalarModel 
scalarModel) {
+    public Component createComponent(final String id, final UiAttributeWkt 
scalarModel) {
         return new CausewayBlobPanel(id, scalarModel);
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayClobPanel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayClobPanel.java
index 575babbbb54..458d3aef8ff 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayClobPanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayClobPanel.java
@@ -28,7 +28,7 @@ import org.apache.wicket.request.resource.IResource;
 
 import org.apache.causeway.applib.value.Clob;
 import org.apache.causeway.viewer.wicket.model.models.FileUploadModels;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 
 /**
  * Panel for rendering scalars of type {@link Clob}.
@@ -42,7 +42,7 @@ class CausewayClobPanel extends 
CausewayBlobOrClobPanelAbstract<Clob> {
 
     private static final long serialVersionUID = 1L;
 
-    public CausewayClobPanel(final String id, final ScalarModel model) {
+    public CausewayClobPanel(final String id, final UiAttributeWkt model) {
         super(id, model, Clob.class);
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayClobPanelFactory.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayClobPanelFactory.java
index cc6a8521090..2b880d0cfd0 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayClobPanelFactory.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayClobPanelFactory.java
@@ -20,7 +20,7 @@ package 
org.apache.causeway.viewer.wicket.ui.components.scalars.blobclob;
 
 import org.apache.wicket.Component;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarTypeConstrainedAbstract;
 
@@ -34,7 +34,7 @@ public class CausewayClobPanelFactory extends 
ComponentFactoryScalarTypeConstrai
     }
 
     @Override
-    public Component createComponent(final String id, final ScalarModel 
scalarModel) {
+    public Component createComponent(final String id, final UiAttributeWkt 
scalarModel) {
         return new CausewayClobPanel(id, scalarModel);
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/bool/BooleanPanel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/bool/BooleanPanel.java
index 983cac619e2..b8ec8ed0575 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/bool/BooleanPanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/bool/BooleanPanel.java
@@ -26,7 +26,7 @@ import org.apache.wicket.markup.html.form.FormComponent;
 import org.apache.causeway.commons.internal.exceptions._Exceptions;
 import org.apache.causeway.viewer.commons.model.components.UiString;
 import org.apache.causeway.viewer.wicket.model.models.BooleanModel;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.CompactFragment;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.PromptFragment;
@@ -46,7 +46,7 @@ extends ScalarPanelFormFieldAbstract<Boolean> {
 
     private CheckBoxX checkBox;
 
-    public BooleanPanel(final String id, final ScalarModel scalarModel) {
+    public BooleanPanel(final String id, final UiAttributeWkt scalarModel) {
         super(id, scalarModel, Boolean.class);
     }
 
@@ -56,7 +56,7 @@ extends ScalarPanelFormFieldAbstract<Boolean> {
     }
 
     @Override
-    protected FormComponent<Boolean> createFormComponent(final String id, 
final ScalarModel scalarModel) {
+    protected FormComponent<Boolean> createFormComponent(final String id, 
final UiAttributeWkt scalarModel) {
         checkBox = Wkt.checkboxX(
                 id,
                 BooleanModel.forScalarModel(scalarModel),
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/bool/BooleanPanelFactory.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/bool/BooleanPanelFactory.java
index d5f48e67062..fff317ddca2 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/bool/BooleanPanelFactory.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/bool/BooleanPanelFactory.java
@@ -21,7 +21,7 @@ package 
org.apache.causeway.viewer.wicket.ui.components.scalars.bool;
 import org.apache.wicket.Component;
 
 import org.apache.causeway.commons.collections.Can;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarTypeConstrainedAbstract;
 
@@ -35,7 +35,7 @@ public class BooleanPanelFactory extends 
ComponentFactoryScalarTypeConstrainedAb
     }
 
     @Override
-    public Component createComponent(final String id, final ScalarModel 
scalarModel) {
+    public Component createComponent(final String id, final UiAttributeWkt 
scalarModel) {
         return new BooleanPanel(id, scalarModel);
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ChoicesSelect2PanelFactory.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ChoicesSelect2PanelFactory.java
index 5e8fcadacf8..857842fa3fa 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ChoicesSelect2PanelFactory.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ChoicesSelect2PanelFactory.java
@@ -19,7 +19,7 @@
 package org.apache.causeway.viewer.wicket.ui.components.scalars.choices;
 
 import org.apache.causeway.commons.internal.exceptions._Exceptions;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarAbstract;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
 
@@ -30,7 +30,7 @@ extends ComponentFactoryScalarAbstract {
         TITLE_BADGE,
         VALUE_CHOICES,
         OBJECT_CHOICES;
-        static ComponentSort valueOf(final ScalarModel scalarModel) {
+        static ComponentSort valueOf(final UiAttributeWkt scalarModel) {
             if(scalarModel.getElementType().isValue()
                     && scalarModel.getChoiceProviderSort().isChoicesAny()) {
                 return scalarModel.isViewingMode()
@@ -46,7 +46,7 @@ extends ComponentFactoryScalarAbstract {
     }
 
     @Override
-    protected ScalarPanelAbstract createComponent(final String id, final 
ScalarModel scalarModel) {
+    protected ScalarPanelAbstract createComponent(final String id, final 
UiAttributeWkt scalarModel) {
         var componentSort = ComponentSort.valueOf(scalarModel);
         switch(componentSort) {
         case TITLE_BADGE:
@@ -62,7 +62,7 @@ extends ComponentFactoryScalarAbstract {
     }
 
     @Override
-    protected ApplicationAdvice appliesTo(final ScalarModel scalarModel) {
+    protected ApplicationAdvice appliesTo(final UiAttributeWkt scalarModel) {
         return ApplicationAdvice.APPLIES; //XXX depends on registration order, 
can we do better?
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ObjectChoicesSelect2Panel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ObjectChoicesSelect2Panel.java
index b76820d005b..e8768584893 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ObjectChoicesSelect2Panel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ObjectChoicesSelect2Panel.java
@@ -32,7 +32,7 @@ import 
org.apache.causeway.applib.services.placeholder.PlaceholderRenderService.
 import org.apache.causeway.commons.internal.base._Strings;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.CompactFragment;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFrame;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
@@ -60,7 +60,7 @@ implements ChoiceTitleHandler {
     private EntityLinkSimplePanel entityLinkOutputFormat;
     private final boolean isCompactFormat;
 
-    public ObjectChoicesSelect2Panel(final String id, final ScalarModel 
scalarModel) {
+    public ObjectChoicesSelect2Panel(final String id, final UiAttributeWkt 
scalarModel) {
         super(id, scalarModel);
         this.isCompactFormat = scalarModel.getRenderingHint().isInTable();
     }
@@ -82,7 +82,7 @@ implements ChoiceTitleHandler {
     }
 
     @Override
-    protected FormComponent<ManagedObject> createFormComponent(final String 
id, final ScalarModel scalarModel) {
+    protected FormComponent<ManagedObject> createFormComponent(final String 
id, final UiAttributeWkt scalarModel) {
 
         this.entityLink = new 
ChoiceFormComponent(UiComponentType.ENTITY_LINK.getId(), this);
         entityLink.setRequired(scalarModel.isRequired());
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ScalarTitleBadgePanel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ScalarTitleBadgePanel.java
index 7237da125f0..c1efe6d1c5b 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ScalarTitleBadgePanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ScalarTitleBadgePanel.java
@@ -22,7 +22,7 @@ import java.util.EnumSet;
 
 import org.apache.wicket.Component;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.CompactFragment;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldWithValueSemantics;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
@@ -36,7 +36,7 @@ class ScalarTitleBadgePanel<T> extends 
ScalarPanelTextFieldWithValueSemantics<T>
 
     private static final long serialVersionUID = 1L;
 
-    public ScalarTitleBadgePanel(final String id, final ScalarModel 
scalarModel, final Class<T> type) {
+    public ScalarTitleBadgePanel(final String id, final UiAttributeWkt 
scalarModel, final Class<T> type) {
         super(id, scalarModel, type);
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ValueChoicesSelect2Panel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ValueChoicesSelect2Panel.java
index 18a874bddd2..76aa8e9bb94 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ValueChoicesSelect2Panel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ValueChoicesSelect2Panel.java
@@ -25,7 +25,7 @@ import org.apache.wicket.markup.html.form.FormComponent;
 
 import org.apache.causeway.commons.internal.base._Strings;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelSelectAbstract;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelSelectAbstract.ChoiceTitleHandler;
@@ -41,7 +41,7 @@ implements ChoiceTitleHandler {
 
     private final boolean isCompactFormat;
 
-    public ValueChoicesSelect2Panel(final String id, final ScalarModel 
scalarModel) {
+    public ValueChoicesSelect2Panel(final String id, final UiAttributeWkt 
scalarModel) {
         super(id, scalarModel);
         this.isCompactFormat = scalarModel.getRenderingHint().isInTable();
     }
@@ -53,7 +53,7 @@ implements ChoiceTitleHandler {
 
     @Override
     protected FormComponent<ManagedObject> createFormComponent(
-            final String id, final ScalarModel scalarModel) {
+            final String id, final UiAttributeWkt scalarModel) {
         if(select2 == null) {
             this.select2 = createSelect2(id, ChoiceProviderDefault::new);
         } else {
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/composite/CompositeValuePanel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/composite/CompositeValuePanel.java
index c66d396092e..055c1259b03 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/composite/CompositeValuePanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/composite/CompositeValuePanel.java
@@ -24,7 +24,7 @@ import org.apache.wicket.Component;
 import org.apache.wicket.markup.html.form.AbstractTextComponent;
 import org.apache.wicket.markup.html.form.FormComponent;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFrame;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelFormFieldAbstract;
@@ -38,7 +38,7 @@ extends ScalarPanelFormFieldAbstract<T> {
 
     public CompositeValuePanel(
             final String id,
-            final ScalarModel scalarModel,
+            final UiAttributeWkt scalarModel,
             final Class<T> valueType) {
         super(id, scalarModel, valueType);
     }
@@ -61,7 +61,7 @@ extends ScalarPanelFormFieldAbstract<T> {
     }
 
     @Override
-    protected FormComponent<T> createFormComponent(final String id, final 
ScalarModel scalarModel) {
+    protected FormComponent<T> createFormComponent(final String id, final 
UiAttributeWkt scalarModel) {
         // read-only FormComponent, to receive the param/property name label
         return new AbstractTextComponent<T>(id) {
             private static final long serialVersionUID = 1L;
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/TemporalDecompositionModel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/TemporalDecompositionModel.java
index ab0eec9bdda..843812d5c4a 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/TemporalDecompositionModel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/TemporalDecompositionModel.java
@@ -40,7 +40,7 @@ import 
org.apache.causeway.core.metamodel.commons.ViewOrEditMode;
 import org.apache.causeway.core.metamodel.interactions.managed.ManagedValue;
 import org.apache.causeway.core.metamodel.object.MmValueUtils;
 import org.apache.causeway.core.metamodel.spec.feature.ObjectFeature;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.model.value.ConverterBasedOnValueSemantics;
 
 import lombok.AccessLevel;
@@ -58,7 +58,7 @@ public class TemporalDecompositionModel<T> implements 
IConverter<T> {
     private static final long serialVersionUID = 1L;
 
     public static <T extends Temporal> TemporalDecompositionModel<T> 
create(final Class<T> type,
-            final ScalarModel scalarModel,
+            final UiAttributeWkt scalarModel,
             final OffsetCharacteristic offsetCharacteristic,
             final ConverterBasedOnValueSemantics<T> fullConverter) {
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel.java
index 80a76b2c991..96e9fc4652f 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel.java
@@ -24,7 +24,7 @@ import org.apache.wicket.markup.html.basic.Label;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.util.Facets;
 import 
org.apache.causeway.viewer.commons.model.decorators.FormLabelDecorator.FormLabelDecorationModel;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
@@ -35,7 +35,7 @@ import org.apache.causeway.viewer.wicket.ui.util.WktTooltips;
 import 
de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 
 class JavaAwtImagePanel
-extends PanelAbstract<ManagedObject, ScalarModel> {
+extends PanelAbstract<ManagedObject, UiAttributeWkt> {
 
     private static final long serialVersionUID = 1L;
 
@@ -43,7 +43,7 @@ extends PanelAbstract<ManagedObject, ScalarModel> {
     private static final String ID_SCALAR_VALUE = "scalarValue";
     private static final String ID_FEEDBACK = "feedback";
 
-    public JavaAwtImagePanel(final String id, final ScalarModel scalarModel) {
+    public JavaAwtImagePanel(final String id, final UiAttributeWkt 
scalarModel) {
         super(id, scalarModel);
         buildGui();
     }
@@ -88,7 +88,7 @@ extends PanelAbstract<ManagedObject, ScalarModel> {
         return scalarNameLabel;
     }
 
-    protected final ScalarModel scalarModel() {
+    protected final UiAttributeWkt scalarModel() {
         return getModel();
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanelFactory.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanelFactory.java
index ec29858b1b8..92fc859361b 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanelFactory.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanelFactory.java
@@ -22,7 +22,7 @@ import org.apache.wicket.Component;
 
 import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.core.metamodel.valuesemantics.ImageValueSemantics;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarAbstract;
 
 public class JavaAwtImagePanelFactory
@@ -33,12 +33,12 @@ extends ComponentFactoryScalarAbstract {
     }
 
     @Override
-    protected Component createComponent(final String id, final ScalarModel 
scalarModel) {
+    protected Component createComponent(final String id, final UiAttributeWkt 
scalarModel) {
         return new JavaAwtImagePanel(id, scalarModel);
     }
 
     @Override
-    protected ApplicationAdvice appliesTo(final ScalarModel scalarModel) {
+    protected ApplicationAdvice appliesTo(final UiAttributeWkt scalarModel) {
         var typeSpec = scalarModel.getElementType();
         return appliesIf(typeSpec != null
                 && Facets.valueHasSemantics(typeSpec, 
ImageValueSemantics.class));
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/_WktImageUtil.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/_WktImageUtil.java
index 9d05fb60cbd..3912c646186 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/_WktImageUtil.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/_WktImageUtil.java
@@ -34,7 +34,7 @@ import 
org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.object.ManagedObjects;
 import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.core.metamodel.valuesemantics.ImageValueSemantics;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 
 import lombok.NonNull;
 import lombok.experimental.UtilityClass;
@@ -76,7 +76,7 @@ class _WktImageUtil {
 
     public Optional<Image> asWicketImage(
             final @NonNull String id,
-            final @NonNull ScalarModel model) {
+            final @NonNull UiAttributeWkt model) {
 
       final ManagedObject adapter = model.getObject();
       if(ManagedObjects.isNullOrUnspecifiedOrEmpty(adapter)) {
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupPanelFactories.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupPanelFactories.java
index 206c62c4d59..e84cc5979cd 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupPanelFactories.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupPanelFactories.java
@@ -26,7 +26,7 @@ import org.apache.wicket.model.IModel;
 import org.apache.causeway.applib.value.Markup;
 import org.apache.causeway.core.metamodel.object.ManagedObjects;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactoryAbstract;
@@ -59,11 +59,11 @@ public class MarkupPanelFactories {
         }
 
         @Override
-        protected Component createComponent(final String id, final ScalarModel 
scalarModel) {
+        protected Component createComponent(final String id, final 
UiAttributeWkt scalarModel) {
             return new ScalarMarkupPanel<T>(id, scalarModel, valueType, 
this.key());
         }
 
-        protected abstract MarkupComponent newMarkupComponent(String id, 
ScalarModel model);
+        protected abstract MarkupComponent newMarkupComponent(String id, 
UiAttributeWkt model);
 
     }
 
@@ -113,7 +113,7 @@ public class MarkupPanelFactories {
         }
 
         @Override
-        protected MarkupComponent newMarkupComponent(final String id, final 
ScalarModel model) {
+        protected MarkupComponent newMarkupComponent(final String id, final 
UiAttributeWkt model) {
             var markupComponent = new MarkupComponent(id, model);
             markupComponent.setEnabled(false);
             return markupComponent;
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/ScalarMarkupPanel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/ScalarMarkupPanel.java
index 2332741628c..74467757134 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/ScalarMarkupPanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/ScalarMarkupPanel.java
@@ -22,7 +22,7 @@ import java.util.EnumSet;
 
 import org.apache.wicket.Component;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.ui.app.registry.ComponentFactoryKey;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldWithValueSemantics;
 
@@ -37,7 +37,7 @@ extends ScalarPanelTextFieldWithValueSemantics<T> {
 
     public ScalarMarkupPanel(
             final String id,
-            final ScalarModel scalarModel,
+            final UiAttributeWkt scalarModel,
             final Class<T> valueType,
             final ComponentFactoryKey markupComponentFactoryKey) {
         super(id, scalarModel, valueType);
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/passwd/CausewayPasswordPanel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/passwd/CausewayPasswordPanel.java
index 01d1dcf1a73..8bd5679b3bb 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/passwd/CausewayPasswordPanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/passwd/CausewayPasswordPanel.java
@@ -21,7 +21,7 @@ package 
org.apache.causeway.viewer.wicket.ui.components.scalars.passwd;
 import org.apache.wicket.markup.html.form.AbstractTextComponent;
 
 import org.apache.causeway.applib.value.Password;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldWithValueSemantics;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 
@@ -33,7 +33,7 @@ extends ScalarPanelTextFieldWithValueSemantics<Password> {
 
     private static final long serialVersionUID = 1L;
 
-    public CausewayPasswordPanel(final String id, final ScalarModel 
scalarModel) {
+    public CausewayPasswordPanel(final String id, final UiAttributeWkt 
scalarModel) {
         super(id, scalarModel, Password.class);
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/passwd/CausewayPasswordPanelFactory.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/passwd/CausewayPasswordPanelFactory.java
index 8739061cb9a..0fb39375279 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/passwd/CausewayPasswordPanelFactory.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/passwd/CausewayPasswordPanelFactory.java
@@ -20,7 +20,7 @@ package 
org.apache.causeway.viewer.wicket.ui.components.scalars.passwd;
 
 import org.apache.wicket.Component;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarTypeConstrainedAbstract;
 
@@ -34,7 +34,7 @@ public class CausewayPasswordPanelFactory extends 
ComponentFactoryScalarTypeCons
     }
 
     @Override
-    public Component createComponent(final String id, final ScalarModel 
scalarModel) {
+    public Component createComponent(final String id, final UiAttributeWkt 
scalarModel) {
         return new CausewayPasswordPanel(id, scalarModel);
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
index e975ba297b8..b48c2d8cc76 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
@@ -20,7 +20,7 @@ package 
org.apache.causeway.viewer.wicket.ui.components.scalars.string;
 
 import java.util.EnumSet;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldTextualAbstract;
 
 /**
@@ -31,7 +31,7 @@ extends ScalarPanelTextFieldTextualAbstract {
 
     private static final long serialVersionUID = 1L;
 
-    public MultiLineStringPanel(final String id, final ScalarModel 
scalarModel) {
+    public MultiLineStringPanel(final String id, final UiAttributeWkt 
scalarModel) {
         super(id, scalarModel);
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/StringPanel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/StringPanel.java
index fccbcd9ce0f..025331b368d 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/StringPanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/StringPanel.java
@@ -18,7 +18,7 @@
  */
 package org.apache.causeway.viewer.wicket.ui.components.scalars.string;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldTextualAbstract;
 
 /**
@@ -28,7 +28,7 @@ class StringPanel extends ScalarPanelTextFieldTextualAbstract 
{
 
     private static final long serialVersionUID = 1L;
 
-    public StringPanel(final String id, final ScalarModel scalarModel) {
+    public StringPanel(final String id, final UiAttributeWkt scalarModel) {
         super(id, scalarModel);
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/StringPanelFactory.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/StringPanelFactory.java
index 301e5784a30..cde73a21074 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/StringPanelFactory.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/StringPanelFactory.java
@@ -22,7 +22,7 @@ import org.apache.wicket.Component;
 import org.apache.wicket.request.resource.CssResourceReference;
 
 import org.apache.causeway.core.metamodel.util.Facets;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarTypeConstrainedAbstract;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelUtil;
 
@@ -33,7 +33,7 @@ public class StringPanelFactory extends 
ComponentFactoryScalarTypeConstrainedAbs
     }
 
     @Override
-    public Component createComponent(final String id, final ScalarModel 
scalarModel) {
+    public Component createComponent(final String id, final UiAttributeWkt 
scalarModel) {
         return Facets.multilineIsPresent(scalarModel.getMetaModel())
             ? new MultiLineStringPanel(id, scalarModel)
             : new StringPanel(id, scalarModel);
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanel.java
index af28aad31ca..394722c5bd8 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanel.java
@@ -20,7 +20,7 @@ package 
org.apache.causeway.viewer.wicket.ui.components.scalars.value.fallback;
 
 import org.apache.causeway.applib.annotation.Value;
 import org.apache.causeway.applib.value.semantics.Parser;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldTextualAbstract;
 
@@ -37,7 +37,7 @@ extends ScalarPanelTextFieldTextualAbstract {
 
     private static final long serialVersionUID = 1L;
 
-    public ValueFallbackPanel(final String id, final ScalarModel scalarModel) {
+    public ValueFallbackPanel(final String id, final UiAttributeWkt 
scalarModel) {
         super(id, scalarModel);
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanelFactory.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanelFactory.java
index a7f0b2e3656..6805b8f2302 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanelFactory.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanelFactory.java
@@ -20,7 +20,7 @@ package 
org.apache.causeway.viewer.wicket.ui.components.scalars.value.fallback;
 
 import org.apache.wicket.Component;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarAbstract;
 
@@ -36,12 +36,12 @@ extends ComponentFactoryScalarAbstract {
     }
 
     @Override
-    public Component createComponent(final String id, final ScalarModel 
scalarModel) {
+    public Component createComponent(final String id, final UiAttributeWkt 
scalarModel) {
         return new ValueFallbackPanel(id, scalarModel);
     }
 
     @Override
-    protected ApplicationAdvice appliesTo(final ScalarModel scalarModel) {
+    protected ApplicationAdvice appliesTo(final UiAttributeWkt scalarModel) {
         if(!scalarModel.getElementType().isValue()) {
             return ApplicationAdvice.DOES_NOT_APPLY;
         }
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/CausewayToWicketTreeAdapter.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/CausewayToWicketTreeAdapter.java
index a24c02812f9..bb70328d5f8 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/CausewayToWicketTreeAdapter.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/CausewayToWicketTreeAdapter.java
@@ -35,7 +35,7 @@ import org.apache.causeway.applib.graph.tree.TreeNode;
 import org.apache.causeway.core.metamodel.context.HasMetaModelContext;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.object.ManagedObjects;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
 import 
org.apache.causeway.viewer.wicket.ui.components.entity.icontitle.EntityIconAndTitlePanelFactory;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
@@ -55,7 +55,7 @@ class CausewayToWicketTreeAdapter {
     /**
      * @param scalarModel - holder of {@link TreeNode}
      */
-    public static MarkupContainer adapt(final String id, final ScalarModel 
scalarModel) {
+    public static MarkupContainer adapt(final String id, final UiAttributeWkt 
scalarModel) {
         return scalarModel==null
                 || 
ManagedObjects.isNullOrUnspecifiedOrEmpty(scalarModel.getObject())
             ? emptyTreeComponent(id)
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/ParentedTreePanel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/ParentedTreePanel.java
index 3b680db32aa..e3a50a9dc4a 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/ParentedTreePanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/ParentedTreePanel.java
@@ -21,7 +21,7 @@ package org.apache.causeway.viewer.wicket.ui.components.tree;
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FrameFragment;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract2;
 
@@ -33,7 +33,7 @@ extends ScalarPanelAbstract2 {
 
     private static final long serialVersionUID = 1L;
 
-    public ParentedTreePanel(final String id, final ScalarModel scalarModel) {
+    public ParentedTreePanel(final String id, final UiAttributeWkt 
scalarModel) {
         super(id, scalarModel);
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/TreePanelFactories.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/TreePanelFactories.java
index 07d01b85eb7..6b11ff5a634 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/TreePanelFactories.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/TreePanelFactories.java
@@ -22,7 +22,7 @@ import org.apache.wicket.Component;
 import org.apache.wicket.model.IModel;
 
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactoryAbstract;
@@ -42,12 +42,12 @@ public class TreePanelFactories {
         }
 
         @Override
-        protected Component createComponent(final String id, final ScalarModel 
scalarModel) {
+        protected Component createComponent(final String id, final 
UiAttributeWkt scalarModel) {
             return new ParentedTreePanel(id, scalarModel);
         }
 
         @Override
-        protected ApplicationAdvice appliesTo(final ScalarModel scalarModel) {
+        protected ApplicationAdvice appliesTo(final UiAttributeWkt 
scalarModel) {
             
if(!scalarModel.isScalarTypeSubtypeOf(org.apache.causeway.applib.graph.tree.TreeNode.class))
 {
                 return ApplicationAdvice.DOES_NOT_APPLY;
             }
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/unknown/UnknownModelPanel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/unknown/UnknownModelPanel.java
index a9f8b85cb00..3a09d8e736d 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/unknown/UnknownModelPanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/unknown/UnknownModelPanel.java
@@ -22,7 +22,7 @@ import org.apache.wicket.model.IModel;
 
 import org.apache.causeway.commons.internal.base._Casts;
 import org.apache.causeway.core.metamodel.object.ManagedObjects;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.model.models.UiObjectWkt;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
@@ -61,8 +61,8 @@ extends PanelAbstract<Object, IModel<Object>> {
             } else {
                 buf.append("??? objectAdapter is NULL");
             }
-        } else if(model instanceof ScalarModel) {
-            var scalarModel = (ScalarModel) model;
+        } else if(model instanceof UiAttributeWkt) {
+            var scalarModel = (UiAttributeWkt) model;
             var scalarAdapter = scalarModel.getObject();
             if(ManagedObjects.isSpecified(scalarAdapter)) {
                 buf.append(String.format("??? spec=%s, value='%s'",
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/entitysimplelink/EntityLinkSimplePanelFactory.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/entitysimplelink/EntityLinkSimplePanelFactory.java
index 33ba0f1dc72..6c5f64d152c 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/entitysimplelink/EntityLinkSimplePanelFactory.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/entitysimplelink/EntityLinkSimplePanelFactory.java
@@ -23,7 +23,7 @@ import org.apache.wicket.model.IModel;
 
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.model.models.UiObjectWkt;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactoryAbstract;
 
@@ -38,7 +38,7 @@ public class EntityLinkSimplePanelFactory extends 
ComponentFactoryAbstract {
         if (model instanceof UiObjectWkt) {
             return ApplicationAdvice.APPLIES;
         }
-        if (model instanceof ScalarModel) {
+        if (model instanceof UiAttributeWkt) {
             return ApplicationAdvice.APPLIES;
         }
         return ApplicationAdvice.DOES_NOT_APPLY;
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2.java
index 727b0247234..3b614ddb9d1 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2.java
@@ -32,7 +32,7 @@ import org.apache.causeway.commons.functional.Either;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.objectmanager.memento.ObjectMemento;
 import org.apache.causeway.viewer.wicket.model.models.HasCommonContext;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.model.models.ScalarModelWithMultiChoice;
 import 
org.apache.causeway.viewer.wicket.model.models.ScalarModelWithSingleChoice;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarModelChangeDispatcher;
@@ -54,7 +54,7 @@ implements
 
     public static Select2 createSelect2(
             final String id,
-            final ScalarModel scalarModel,
+            final UiAttributeWkt scalarModel,
             final ChoiceProviderAbstract choiceProvider,
             final ScalarModelChangeDispatcher select2ChangeDispatcher) {
         var select2 = new Select2(scalarModel.isSingular()
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
index d94290aed8f..6ae4ed465eb 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
@@ -24,7 +24,7 @@ import org.wicketstuff.select2.Select2Choice;
 import org.apache.causeway.applib.id.HasLogicalType;
 import org.apache.causeway.applib.id.LogicalType;
 import org.apache.causeway.core.metamodel.objectmanager.memento.ObjectMemento;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderAbstract;
 
 import lombok.Getter;
@@ -38,7 +38,7 @@ implements HasLogicalType {
     public static Select2ChoiceExt create(
             final String id,
             final IModel<ObjectMemento> modelObject,
-            final ScalarModel scalarModel,
+            final UiAttributeWkt scalarModel,
             final ChoiceProviderAbstract choiceProvider) {
         return new Select2ChoiceExt(id, modelObject, scalarModel, 
choiceProvider);
     }
@@ -48,7 +48,7 @@ implements HasLogicalType {
     private Select2ChoiceExt(
             final String id,
             final IModel<ObjectMemento> model,
-            final ScalarModel scalarModel,
+            final UiAttributeWkt scalarModel,
             final ChoiceProviderAbstract choiceProvider) {
         super(id, model, choiceProvider);
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
index 24b7120b434..89d993e9519 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
@@ -28,7 +28,7 @@ import org.apache.causeway.applib.id.HasLogicalType;
 import org.apache.causeway.applib.id.LogicalType;
 import org.apache.causeway.commons.internal.base._Casts;
 import org.apache.causeway.core.metamodel.objectmanager.memento.ObjectMemento;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import 
org.apache.causeway.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderAbstract;
 
 import lombok.Getter;
@@ -42,7 +42,7 @@ implements HasLogicalType {
     public static Select2MultiChoiceExt create(
             final String id,
             final IModel<ArrayList<ObjectMemento>> modelObject,
-            final ScalarModel scalarModel,
+            final UiAttributeWkt scalarModel,
             final ChoiceProviderAbstract choiceProvider) {
 
         return new Select2MultiChoiceExt(id, 
_Casts.uncheckedCast(modelObject), scalarModel, choiceProvider);
@@ -53,7 +53,7 @@ implements HasLogicalType {
     Select2MultiChoiceExt(
             final String id,
             final IModel<Collection<ObjectMemento>> model,
-            final ScalarModel scalarModel,
+            final UiAttributeWkt scalarModel,
             final ChoiceProviderAbstract choiceProvider) {
 
         super(id, model, choiceProvider);
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2OnSelect.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2OnSelect.java
index 80d3134172d..216c525fe4f 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2OnSelect.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2OnSelect.java
@@ -43,7 +43,7 @@ import 
org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.object.PackedManagedObject;
 import org.apache.causeway.core.metamodel.objectmanager.memento.ObjectMemento;
 import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.model.util.PageParameterUtils;
 import 
org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarModelChangeDispatcher;
 
@@ -62,7 +62,7 @@ import lombok.RequiredArgsConstructor;
 class Select2OnSelect extends AbstractAjaxBehavior {
 
     private static final long serialVersionUID = 1L;
-    private final ScalarModel scalarModel;
+    private final UiAttributeWkt scalarModel;
     private final ScalarModelChangeDispatcher select2ChangeDispatcher;
 
     private static enum Event {
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstractForScalarModel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstractForScalarModel.java
index 641835ce1ce..4ad50e92325 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstractForScalarModel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstractForScalarModel.java
@@ -20,9 +20,8 @@ package 
org.apache.causeway.viewer.wicket.ui.components.widgets.select2.provider
 
 import org.apache.causeway.commons.collections.Can;
 import org.apache.causeway.core.metamodel.objectmanager.memento.ObjectMemento;
-import org.apache.causeway.viewer.commons.model.scalar.UiScalar;
-import 
org.apache.causeway.viewer.commons.model.scalar.UiScalar.ChoiceProviderSort;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.commons.model.scalar.UiAttribute;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 
 import lombok.Getter;
 import lombok.experimental.Accessors;
@@ -33,13 +32,13 @@ extends ChoiceProviderAbstract {
     private static final long serialVersionUID = 1L;
 
     @Getter @Accessors(fluent = true)
-    private final ScalarModel scalarModel;
-    private final UiScalar.ChoiceProviderSort choiceProviderSort;
+    private final UiAttributeWkt scalarModel;
+    private final UiAttribute.ChoiceProviderSort choiceProviderSort;
 
-    protected ChoiceProviderAbstractForScalarModel(final ScalarModel 
scalarModel) {
+    protected ChoiceProviderAbstractForScalarModel(final UiAttributeWkt 
scalarModel) {
         super();
         this.scalarModel = scalarModel;
-        this.choiceProviderSort = ChoiceProviderSort.valueOf(scalarModel);
+        this.choiceProviderSort = 
UiAttribute.ChoiceProviderSort.valueOf(scalarModel);
     }
 
     @Override
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderDefault.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderDefault.java
index 4c08c9b7134..8fd2bb88076 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderDefault.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderDefault.java
@@ -24,7 +24,7 @@ import 
org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.objectmanager.memento.ObjectMemento;
 import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.viewer.commons.model.scalar.UiParameter;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 
 public class ChoiceProviderDefault
 extends ChoiceProviderAbstractForScalarModel {
@@ -32,7 +32,7 @@ extends ChoiceProviderAbstractForScalarModel {
     private static final long serialVersionUID = 1L;
 
     public ChoiceProviderDefault(
-            final ScalarModel scalarModel) {
+            final UiAttributeWkt scalarModel) {
         super(scalarModel);
     }
 
diff --git 
a/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/registries/components/ComponentFactoryConfigWkt.java
 
b/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/registries/components/ComponentFactoryConfigWkt.java
index 09e70ae4bc8..ba1adbd5893 100644
--- 
a/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/registries/components/ComponentFactoryConfigWkt.java
+++ 
b/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/registries/components/ComponentFactoryConfigWkt.java
@@ -38,7 +38,7 @@ import org.apache.causeway.commons.internal.base._Casts;
 import org.apache.causeway.commons.internal.base._NullSafe;
 import org.apache.causeway.commons.internal.functions._Predicates;
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
 import org.apache.causeway.viewer.wicket.ui.app.registry.ComponentFactoryList;
 import 
org.apache.causeway.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
@@ -297,7 +297,7 @@ public class ComponentFactoryConfigWkt {
         }
 
         @Override
-        public Component createComponent(final String id, final ScalarModel 
scalarModel) {
+        public Component createComponent(final String id, final UiAttributeWkt 
scalarModel) {
             return new ScalarPanelTextFieldWithValueSemantics<T>(id, 
scalarModel, valueTypeClass);
         }
     }
@@ -313,7 +313,7 @@ public class ComponentFactoryConfigWkt {
         }
 
         @Override
-        public Component createComponent(final String id, final ScalarModel 
scalarModel) {
+        public Component createComponent(final String id, final UiAttributeWkt 
scalarModel) {
             return new ScalarPanelTextFieldNumeric<T>(id, scalarModel, 
valueTypeClass);
         }
     }
@@ -331,7 +331,7 @@ public class ComponentFactoryConfigWkt {
         }
 
         @Override
-        public Component createComponent(final String id, final ScalarModel 
scalarModel) {
+        public Component createComponent(final String id, final UiAttributeWkt 
scalarModel) {
             return new ScalarPanelTextFieldWithTemporalPicker<T>(id, 
scalarModel, valueTypeClass);
         }
     }
@@ -349,7 +349,7 @@ public class ComponentFactoryConfigWkt {
         }
 
         @Override
-        public Component createComponent(final String id, final ScalarModel 
scalarModel) {
+        public Component createComponent(final String id, final UiAttributeWkt 
scalarModel) {
             return new CompositeValuePanel<T>(id, scalarModel, valueTypeClass);
         }
     }


Reply via email to