You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by ah...@apache.org on 2023/06/14 06:22:26 UTC
[causeway] branch master updated: CAUSEWAY-3463: fixes parameter's usability: must be initialized in editing mode
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/master by this push:
new 795bdd9c40 CAUSEWAY-3463: fixes parameter's usability: must be initialized in editing mode
795bdd9c40 is described below
commit 795bdd9c402fa86c09f7083ff161c8f17116d75a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Jun 14 08:22:20 2023 +0200
CAUSEWAY-3463: fixes parameter's usability: must be initialized in
editing mode
---
.../viewer/commons/model/hints/HasRenderingHints.java | 3 +--
.../causeway/viewer/wicket/model/models/ScalarModel.java | 6 ++----
.../viewer/wicket/model/models/ScalarParameterModel.java | 13 +++++--------
.../wicket/ui/components/scalars/ScalarPanelAbstract.java | 5 ++++-
4 files changed, 12 insertions(+), 15 deletions(-)
diff --git a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/hints/HasRenderingHints.java b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/hints/HasRenderingHints.java
index d2d1a802eb..e38cb2277f 100644
--- a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/hints/HasRenderingHints.java
+++ b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/hints/HasRenderingHints.java
@@ -30,8 +30,7 @@ public interface HasRenderingHints {
RenderingHint getRenderingHint();
- ScalarRepresentation getMode();
- @Deprecated// make immutable? - need to recreate any bound UI components anyway
+ ScalarRepresentation getMode(); //TODO[CAUSEWAY-3463] rename
void setMode(ScalarRepresentation mode);
// -- SHORTCUTS
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/ScalarModel.java
index 5dee945cfe..2db07b05b6 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/ScalarModel.java
@@ -73,7 +73,7 @@ implements HasRenderingHints, UiScalar, FormExecutorContext {
@Getter(onMethod_={@Override})
@Setter(onMethod_={@Override})
- private ScalarRepresentation mode;
+ private ScalarRepresentation mode; //TODO[CAUSEWAY-3463] rename to 'ViewOrEditMode'
@Getter(onMethod_={@Override})
private RenderingHint renderingHint;
@@ -188,9 +188,7 @@ implements HasRenderingHints, UiScalar, FormExecutorContext {
requiredType);
return Optional.of(
- new ConverterBasedOnValueSemantics<>(getMetaModel(), isEditMode()
- ? ScalarRepresentation.EDITING
- : ScalarRepresentation.VIEWING));
+ new ConverterBasedOnValueSemantics<>(getMetaModel(), getMode()));
}
// -- PREDICATES
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 b1b59eaec5..082fb6812f 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
@@ -30,7 +30,6 @@ import org.apache.causeway.viewer.wicket.model.models.interaction.act.UiParamete
import lombok.Getter;
import lombok.NonNull;
-import lombok.val;
public class ScalarParameterModel
extends ScalarModel
@@ -39,10 +38,7 @@ implements HasUiParameter {
private static final long serialVersionUID = 1L;
public static ScalarParameterModel wrap(final UiParameterWkt delegate) {
- val viewOrEdit = delegate.disabledReason().isPresent()
- ? ScalarRepresentation.VIEWING
- : ScalarRepresentation.EDITING;
- return new ScalarParameterModel(delegate, viewOrEdit);
+ return new ScalarParameterModel(delegate);
}
@Getter(onMethod_={@Override})
@@ -54,9 +50,10 @@ implements HasUiParameter {
* value (if any) of that action parameter.
*/
private ScalarParameterModel(
- final UiParameterWkt uiParameter,
- final ScalarRepresentation viewOrEdit) {
- super(UiObjectWkt.ofAdapter(uiParameter.getMetaModelContext(), uiParameter.getOwner()), viewOrEdit);
+ final UiParameterWkt uiParameter) {
+ super(
+ UiObjectWkt.ofAdapter(uiParameter.getMetaModelContext(), uiParameter.getOwner()),
+ ScalarRepresentation.EDITING); // always init params in editing mode, decide usability later dynamically
this.uiParameter = uiParameter;
}
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 b10413bfd1..f7dad84a79 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
@@ -135,8 +135,11 @@ implements ScalarModelChangeListener {
return COMPACT;
}
if(scalarModel.isParameter()
+ && !(scalarPanel instanceof ScalarPanelSelectAbstract)
&& scalarModel.disabledReason().isPresent()) {
- // this simple logic only applies for params, as those don't support inline-as-if-edit
+ /* this simple logic only applies for params, as those don't support inline-as-if-edit
+ * however, our select2 component does not allow for dynamic switching of usability,
+ * so it must not be initialized readonly here */
return READONLY;
}
if(scalarModel.isEditMode()) {