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

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


The following commit(s) were added to refs/heads/main by this push:
     new ac86f6cfb1b CAUSEWAY-3859: Java record refactoring (part 50)
ac86f6cfb1b is described below

commit ac86f6cfb1bfe4f6a4fa500aef89b16c57082d69
Author: Andi Huber <[email protected]>
AuthorDate: Wed Feb 26 11:15:56 2025 +0100

    CAUSEWAY-3859: Java record refactoring (part 50)
---
 .../applib/services/menu/model/NavbarSection.java   |  3 ++-
 .../viewer/wicket/model/models/AboutModel.java      | 12 ++++++------
 .../wicket/model/models/ServiceActionsModel.java    | 21 ++++++---------------
 .../viewer/wicket/model/models/ValueModel.java      | 12 ++----------
 .../viewer/wicket/model/models/WelcomeModel.java    | 14 +++++++++-----
 .../ui/components/about/AboutPanelFactory.java      |  2 +-
 .../present/ajaxtable/columns/PluralColumn.java     |  2 +-
 .../present/ajaxtable/columns/TitleColumn.java      |  2 +-
 .../wicket/ui/components/welcome/WelcomePanel.java  |  7 ++-----
 .../ui/components/welcome/WelcomePanelFactory.java  |  2 +-
 .../viewer/wicket/ui/exec/MediatorFactory.java      |  2 +-
 11 files changed, 32 insertions(+), 47 deletions(-)

diff --git 
a/viewers/commons/applib/src/main/java/org/apache/causeway/viewer/commons/applib/services/menu/model/NavbarSection.java
 
b/viewers/commons/applib/src/main/java/org/apache/causeway/viewer/commons/applib/services/menu/model/NavbarSection.java
index 435acd27105..735c37d7b47 100644
--- 
a/viewers/commons/applib/src/main/java/org/apache/causeway/viewer/commons/applib/services/menu/model/NavbarSection.java
+++ 
b/viewers/commons/applib/src/main/java/org/apache/causeway/viewer/commons/applib/services/menu/model/NavbarSection.java
@@ -18,6 +18,7 @@
  */
 package org.apache.causeway.viewer.commons.applib.services.menu.model;
 
+import java.io.Serializable;
 import java.util.Locale;
 
 import org.jspecify.annotations.Nullable;
@@ -28,7 +29,7 @@
 
 public record NavbarSection(
         DomainServiceLayout.MenuBar menuBarSelect,
-        Can<MenuDropdown> topLevelEntries) {
+        Can<MenuDropdown> topLevelEntries) implements Serializable {
 
     public String cssClass() {
         return menuBarSelect.name().toLowerCase(Locale.ENGLISH);
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/AboutModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/AboutModel.java
index 99aa5e3ceda..6a10f9a7ec9 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/AboutModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/AboutModel.java
@@ -18,19 +18,19 @@
  */
 package org.apache.causeway.viewer.wicket.model.models;
 
+import org.apache.wicket.model.IModel;
+
 import org.apache.causeway.core.config.CausewayConfiguration;
 
 /**
  * Model providing welcome text.
  */
-public final class AboutModel
-extends ModelAbstract<CausewayConfiguration.Viewer.Common.Application> {
-
-    private static final long serialVersionUID = 1L;
+public record AboutModel(CausewayConfiguration.Viewer.Common.Application 
applicationSettings)
+implements IModel<CausewayConfiguration.Viewer.Common.Application> {
 
     @Override
-    protected CausewayConfiguration.Viewer.Common.Application load() {
-        return getApplicationSettings();
+    public CausewayConfiguration.Viewer.Common.Application getObject() {
+        return applicationSettings();
     }
 
 }
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ServiceActionsModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ServiceActionsModel.java
index bb1fed771a8..7aba8fe7807 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ServiceActionsModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ServiceActionsModel.java
@@ -18,28 +18,19 @@
  */
 package org.apache.causeway.viewer.wicket.model.models;
 
+import org.apache.wicket.model.IModel;
+
 import 
org.apache.causeway.viewer.commons.applib.services.menu.model.NavbarSection;
 /**
  * Backing model for actions of application services menu bar (typically, as
  * displayed along the top or side of the page).
  */
-public class ServiceActionsModel extends ModelAbstract<NavbarSection> {
-
-    private static final long serialVersionUID = 1L;
-
-    private final NavbarSection navBarSection;
-
-    /**
-     * @param navBarSection - may be null in special case of rendering the 
tertiary menu on the error page.
-     */
-    public ServiceActionsModel(
-            final NavbarSection navBarSection) {
-
-        this.navBarSection = navBarSection;
-    }
+public record ServiceActionsModel(
+    /** may be null in special case of rendering the tertiary menu on the 
error page */
+    NavbarSection navBarSection) implements IModel<NavbarSection> {
 
     @Override
-    protected NavbarSection load() {
+    public NavbarSection getObject() {
         return navBarSection;
     }
 
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ValueModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ValueModel.java
index 998522b8bcd..cac69b5b187 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ValueModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ValueModel.java
@@ -28,24 +28,16 @@
 /**
  * Represents a standalone value (used for standalone value page).
  */
-public class ValueModel
+public final class ValueModel
 extends ModelAbstract<ManagedObject> {
 
     private static final long serialVersionUID = 1L;
 
-    // -- FACTORIES
-
-    public static ValueModel of(
-            final @NonNull ObjectMember objectMember,
-            final @NonNull ManagedObject valueAdapter) {
-        return new ValueModel(objectMember, valueAdapter);
-    }
-
     // --
 
     private final ObjectMemento adapterMemento;
 
-    private ValueModel(
+    public ValueModel(
             final @NonNull ObjectMember objectMember,
             final @NonNull ManagedObject valueAdapter) {
         super();
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/WelcomeModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/WelcomeModel.java
index 42fb3a99832..02d544d120a 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/WelcomeModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/WelcomeModel.java
@@ -18,19 +18,23 @@
  */
 package org.apache.causeway.viewer.wicket.model.models;
 
+import org.apache.wicket.model.IModel;
+
 import org.apache.causeway.core.config.CausewayConfiguration;
 
 /**
  * Model providing welcome text.
  */
-public class WelcomeModel
-extends ModelAbstract<CausewayConfiguration.Viewer.Wicket.Welcome> {
+public record WelcomeModel(String welcomeText)
+implements IModel<String> {
 
-    private static final long serialVersionUID = 1L;
+    public WelcomeModel(final CausewayConfiguration config) {
+        this(config.getViewer().getWicket().getWelcome().getText());
+    }
 
     @Override
-    protected CausewayConfiguration.Viewer.Wicket.Welcome load() {
-        return getWicketViewerSettings().getWelcome();
+    public String getObject() {
+        return welcomeText;
     }
 
 }
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/about/AboutPanelFactory.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/about/AboutPanelFactory.java
index 6ae006c9237..63521cd8cae 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/about/AboutPanelFactory.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/about/AboutPanelFactory.java
@@ -42,7 +42,7 @@ public ApplicationAdvice appliesTo(final IModel<?> model) {
 
     @Override
     public Component createComponent(final String id, final IModel<?> model) {
-        return new AboutPanel(id, new AboutModel());
+        return new AboutPanel(id, new 
AboutModel(getMetaModelContext().getApplicationSettings()));
     }
 
 }
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collection/present/ajaxtable/columns/PluralColumn.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collection/present/ajaxtable/columns/PluralColumn.java
index 4badce9f3c1..c4828839f91 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collection/present/ajaxtable/columns/PluralColumn.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collection/present/ajaxtable/columns/PluralColumn.java
@@ -112,7 +112,7 @@ private Component createCellElementComponent(
             final String componentId, final DataColumn dataColumn, final 
ManagedObject cellElement) {
 
         if(ManagedObjects.isValue(cellElement)) {
-            var valueModel = ValueModel.of(dataColumn.associationMetaModel(), 
cellElement);
+            var valueModel = new ValueModel(dataColumn.associationMetaModel(), 
cellElement);
             var componentFactory = findComponentFactory(UiComponentType.VALUE, 
valueModel);
             return componentFactory.createComponent(componentId, valueModel);
         }
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collection/present/ajaxtable/columns/TitleColumn.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collection/present/ajaxtable/columns/TitleColumn.java
index a2959dda94c..ef8abfc36f6 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collection/present/ajaxtable/columns/TitleColumn.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collection/present/ajaxtable/columns/TitleColumn.java
@@ -60,7 +60,7 @@ protected Component createCellComponent(
 
         if(ManagedObjects.isValue(rowElement)) {
             var objectMember = dataRow.parentTable().getMetaModel();
-            var valueModel = ValueModel.of(objectMember, rowElement);
+            var valueModel = new ValueModel(objectMember, rowElement);
             var componentFactory = findComponentFactory(UiComponentType.VALUE, 
valueModel);
             return componentFactory.createComponent(componentId, valueModel);
         }
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/welcome/WelcomePanel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/welcome/WelcomePanel.java
index f247e9d4455..27fe1a33fce 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/welcome/WelcomePanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/welcome/WelcomePanel.java
@@ -18,9 +18,6 @@
  */
 package org.apache.causeway.viewer.wicket.ui.components.welcome;
 
-import org.apache.wicket.model.LambdaModel;
-
-import org.apache.causeway.core.config.CausewayConfiguration;
 import org.apache.causeway.viewer.wicket.model.models.WelcomeModel;
 import org.apache.causeway.viewer.wicket.ui.pages.home.HomePage;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelAbstract;
@@ -31,7 +28,7 @@
  * {@link HomePage}).
  */
 class WelcomePanel
-extends PanelAbstract<CausewayConfiguration.Viewer.Wicket.Welcome, 
WelcomeModel> {
+extends PanelAbstract<String, WelcomeModel> {
 
     private static final long serialVersionUID = 1L;
 
@@ -39,7 +36,7 @@ class WelcomePanel
 
     public WelcomePanel(final String id, final WelcomeModel welcomeModel) {
         super(id, welcomeModel);
-        Wkt.labelAdd(this, ID_MESSAGE, 
LambdaModel.of(()->welcomeModel.getObject().getText()))
+        Wkt.labelAdd(this, ID_MESSAGE, welcomeModel)
             // safe to not escape, welcome message is read from file (part of 
deployed WAR)
             .setEscapeModelStrings(false);
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/welcome/WelcomePanelFactory.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/welcome/WelcomePanelFactory.java
index 9f26ec75762..ff58df20778 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/welcome/WelcomePanelFactory.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/welcome/WelcomePanelFactory.java
@@ -42,7 +42,7 @@ public ApplicationAdvice appliesTo(final IModel<?> model) {
 
     @Override
     public Component createComponent(final String id, final IModel<?> model) {
-        return new WelcomePanel(id, new WelcomeModel());
+        return new WelcomePanel(id, new 
WelcomeModel(getMetaModelContext().getConfiguration()));
     }
 
 }
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/exec/MediatorFactory.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/exec/MediatorFactory.java
index aee2d74b7e8..08d5a0b09fa 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/exec/MediatorFactory.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/exec/MediatorFactory.java
@@ -130,7 +130,7 @@ private Mediator actionResultResponse(
             return Mediator.toPage(pageRedirectRequest);
         }
         case VALUE: {
-            var valueModel = ValueModel.of(actionModel.getAction(), 
resultAdapter);
+            var valueModel = new ValueModel(actionModel.getAction(), 
resultAdapter);
             valueModel.setActionHint(actionModel);
             var valuePage = new ValuePage(valueModel);
             var pageRedirectRequest = 
PageRedirectRequest.forPage(ValuePage.class, valuePage);

Reply via email to