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 e0514428dcd CAUSEWAY-3861: fixes action's multiselect param when 
required but empty, is still accepted (Wicket Viewer Select2)
e0514428dcd is described below

commit e0514428dcd75a421733bbf8b2dd55aaf29eb1cb
Author: Andi Huber <[email protected]>
AuthorDate: Tue Feb 25 23:00:19 2025 +0100

    CAUSEWAY-3861: fixes action's multiselect param when required but empty,
    is still accepted (Wicket Viewer Select2)
---
 .../ui/components/attributes/choices/AttributePanelWithSelect.java  | 2 +-
 .../viewer/wicket/ui/components/widgets/select2/MultiChoice.java    | 6 ++++--
 .../viewer/wicket/ui/components/widgets/select2/Select2.java        | 4 ++--
 .../viewer/wicket/ui/components/widgets/select2/SingleChoice.java   | 1 +
 4 files changed, 8 insertions(+), 5 deletions(-)

diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/attributes/choices/AttributePanelWithSelect.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/attributes/choices/AttributePanelWithSelect.java
index 7746db9bddd..a708a9adf12 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/attributes/choices/AttributePanelWithSelect.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/attributes/choices/AttributePanelWithSelect.java
@@ -79,7 +79,7 @@ protected final boolean hasAnyChoices() {
     }
 
     public final boolean checkSelect2Required() {
-        return select2.isRequired();
+        return select2.checkRequired();
     }
 
     @Override
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/MultiChoice.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/MultiChoice.java
index 6197d252f3b..ff37d9723ee 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/MultiChoice.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/MultiChoice.java
@@ -45,14 +45,14 @@ record MultiChoice(
                 private static final long serialVersionUID = 1L;
                 private boolean workaround;
 
-                // -- bug in wicket 8.8.0
+                // -- bug in wicket-stuff
                 @Override public void updateModel() {
                     workaround = true;
                     super.updateModel();
                     workaround = false;
                 }
                 @Override public Collection<ObjectMemento> getModelObject() {
-                    var modelObj = getModelObject();
+                    var modelObj = super.getModelObject();
                     if(workaround) {
                         return modelObj==null
                                 ? null
@@ -63,6 +63,8 @@ record MultiChoice(
                 // --
 
             });
+
+        component().setRequired(attributeModel.isRequired());
     }
 
     @Override
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 2bc4f757295..2b77b6b1d5e 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
@@ -91,8 +91,8 @@ default void clearInput() {
         component().clearInput();
     }
 
-    default boolean isRequired() {
-        return component().isRequired();
+    default boolean checkRequired() {
+        return component().checkRequired();
     }
 
     default void setMutable(final boolean mutability) {
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/SingleChoice.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/SingleChoice.java
index c84408c06c7..3a26d65a560 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/SingleChoice.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/SingleChoice.java
@@ -35,6 +35,7 @@ record SingleChoice(Select2Choice<ObjectMemento> component)
             final UiAttributeWkt attributeModel,
             final ChoiceProvider choiceProvider) {
         this(new Select2Choice<>(id, model, 
choiceProvider.toSelect2ChoiceProvider()));
+        component().setRequired(attributeModel.isRequired());
     }
 
     @Override

Reply via email to