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