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/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 94f222a88f ISIS-3198: simplify scalar model (2)
94f222a88f is described below
commit 94f222a88f4235fa62e12bca59ddb0741cceea4d
Author: Andi Huber <[email protected]>
AuthorDate: Thu Sep 15 13:29:30 2022 +0200
ISIS-3198: simplify scalar model (2)
---
.../isis/viewer/commons/model/scalar/UiScalar.java | 9 ++++++
.../viewer/wicket/model/models/ScalarModel.java | 37 +++-------------------
2 files changed, 14 insertions(+), 32 deletions(-)
diff --git
a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/scalar/UiScalar.java
b/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/scalar/UiScalar.java
index 7db28747ae..368d23644d 100644
---
a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/scalar/UiScalar.java
+++
b/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/scalar/UiScalar.java
@@ -62,6 +62,15 @@ public interface UiScalar extends UiModel,
HasMetaModelContext {
|| getMetaModel().getFeatureType() == FeatureType.COLLECTION;
}
+ default boolean isProperty() {
+ return getMetaModel().getFeatureType().isProperty();
+ }
+
+ default boolean isParameter() {
+ return getMetaModel().getFeatureType().isActionParameter();
+ }
+
+
default Optional<String> getDescribedAs() {
return getMetaModel().getDescription(this::getOwner);
}
diff --git
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index 3b19990877..91062f24f8 100644
---
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -32,7 +32,6 @@ import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.debug._Debug;
import org.apache.isis.commons.internal.debug.xray.XrayUi;
-import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.core.metamodel.commons.ScalarRepresentation;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.interactions.managed.ManagedValue;
@@ -73,15 +72,6 @@ implements HasRenderingHints, UiScalar, LinksProvider,
FormExecutorContext {
private static final long serialVersionUID = 1L;
- private enum EitherParamOrProp {
- PROPERTY,
- PARAMETER;
- }
-
- @Getter @NonNull private final EitherParamOrProp paramOrProp;
- public boolean isProperty() { return paramOrProp ==
EitherParamOrProp.PROPERTY; }
- public boolean isParameter() { return paramOrProp ==
EitherParamOrProp.PARAMETER; }
-
private final UiObjectWkt parentEntityModel;
@Getter(onMethod = @__(@Override))
@@ -99,8 +89,7 @@ implements HasRenderingHints, UiScalar, LinksProvider,
FormExecutorContext {
*/
protected ScalarModel(
final UiObjectWkt parentUiObject) {
- this(EitherParamOrProp.PARAMETER,
- parentUiObject, ScalarRepresentation.EDITING,
RenderingHint.REGULAR);
+ this(parentUiObject, ScalarRepresentation.EDITING,
RenderingHint.REGULAR);
}
/**
@@ -109,21 +98,11 @@ implements HasRenderingHints, UiScalar, LinksProvider,
FormExecutorContext {
* property.
*/
protected ScalarModel(
- final UiObjectWkt parentUiObject,
- final ScalarRepresentation viewOrEdit,
- final UiObject.RenderingHint renderingHint) {
- this(EitherParamOrProp.PROPERTY,
- parentUiObject, viewOrEdit, renderingHint);
- }
-
- private ScalarModel(
- final @NonNull EitherParamOrProp paramOrProp,
final @NonNull UiObjectWkt parentEntityModel,
final @NonNull ScalarRepresentation viewOrEdit,
final @NonNull UiObject.RenderingHint renderingHint) {
super(parentEntityModel); // the so called target model, we are
chaining us to
- this.paramOrProp = paramOrProp;
this.parentEntityModel = parentEntityModel;
this.mode = viewOrEdit;
this.renderingHint = renderingHint;
@@ -131,19 +110,13 @@ implements HasRenderingHints, UiScalar, LinksProvider,
FormExecutorContext {
/**
* This instance is either a {@link ScalarParameterModel} or a {@link
ScalarPropertyModel}.
- * <p>
- * Corresponds to the enum {@link #getParamOrProp()}.
*/
public final Either<ScalarParameterModel, ScalarPropertyModel>
getSpecialization() {
- switch(getParamOrProp()) {
- case PARAMETER: return Either.left((ScalarParameterModel) this);
- case PROPERTY: return Either.right((ScalarPropertyModel) this);
- default:
- throw _Exceptions.unmatchedCase(getParamOrProp());
- }
+ return this.isParameter()
+ ? Either.left((ScalarParameterModel) this)
+ : Either.right((ScalarPropertyModel) this);
}
-
public <T> IModel<T> unwrapped(final Class<T> type) {
return new ScalarUnwrappingModel<T>(type, this);
}
@@ -313,7 +286,7 @@ implements HasRenderingHints, UiScalar, LinksProvider,
FormExecutorContext {
*/
public boolean mustBeEditable() {
return getMode() == ScalarRepresentation.EDITING
- || getParamOrProp() == EitherParamOrProp.PARAMETER
+ || isParameter()
|| hasAssociatedActionWithInlineAsIfEdit();
}