You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/05/14 10:52:49 UTC
[isis] branch master updated: ISIS-2340: moving more logic to
common UI Model and meta-model (3)
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 a3396b2 ISIS-2340: moving more logic to common UI Model and meta-model (3)
a3396b2 is described below
commit a3396b2601e9b1da058790dd506ec9c34eec7c34
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu May 14 12:52:33 2020 +0200
ISIS-2340: moving more logic to common UI Model and meta-model (3)
---
.../interactions/managed/ManagedProperty.java | 10 +++++----
.../viewer/wicket/model/models/ScalarModel.java | 13 +++++++-----
.../wicket/model/models/ScalarParameterModel.java | 14 +++----------
.../wicket/model/models/ScalarPropertyModel.java | 24 +++++++---------------
4 files changed, 24 insertions(+), 37 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedProperty.java
index 9d25a32..b86c12f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedProperty.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedProperty.java
@@ -22,9 +22,11 @@ import java.util.Optional;
import javax.annotation.Nullable;
+import org.apache.isis.core.commons.collections.Can;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.consent.Veto;
import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import lombok.Getter;
@@ -71,6 +73,10 @@ public final class ManagedProperty extends ManagedMember {
return MemberType.PROPERTY;
}
+ public Can<ObjectAction> getAssociatedActions() {
+ return Can.ofCollection(ObjectAction.Util.findForAssociation(getOwner(), getProperty()));
+ }
+
// -- INTERACTION
public Optional<InteractionVeto> checkValidity(ManagedObject proposedNewValue) {
@@ -114,10 +120,6 @@ public final class ManagedProperty extends ManagedMember {
return Optional.ofNullable(property.get(getOwner()))
.orElse(ManagedObject.of(property.getSpecification(), null));
}
-
-
-
-
}
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 f0cd494..7d15091 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
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.isis.applib.annotation.PromptStyle;
import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.core.commons.collections.Can;
import org.apache.isis.core.commons.internal.base._Casts;
import org.apache.isis.core.commons.internal.base._NullSafe;
import org.apache.isis.core.commons.internal.collections._Lists;
@@ -263,7 +264,9 @@ implements ScalarUiModel, LinksProvider, FormExecutorContext {
public abstract String getCssClass();
- public abstract <T extends Facet> T getFacet(Class<T> facetType);
+ public final <T extends Facet> T getFacet(final Class<T> facetType) {
+ return getMetaModel().getFacet(facetType);
+ }
/**
* Additional links to render (if any)
@@ -395,8 +398,8 @@ implements ScalarUiModel, LinksProvider, FormExecutorContext {
private final ObjectAction firstAssociatedWithInlineAsIfEdit;
private final List<ObjectAction> remainingAssociated;
- AssociatedActions(final List<ObjectAction> allAssociated) {
- final List<ObjectAction> temp = _Lists.newArrayList(allAssociated);
+ AssociatedActions(final Can<ObjectAction> allAssociated) {
+ final List<ObjectAction> temp = allAssociated.toList();
this.firstAssociatedWithInlineAsIfEdit = firstAssociatedActionWithInlineAsIfEdit(allAssociated);
if(this.firstAssociatedWithInlineAsIfEdit != null) {
temp.remove(firstAssociatedWithInlineAsIfEdit);
@@ -414,7 +417,7 @@ implements ScalarUiModel, LinksProvider, FormExecutorContext {
return firstAssociatedWithInlineAsIfEdit != null;
}
- private static ObjectAction firstAssociatedActionWithInlineAsIfEdit(final List<ObjectAction> objectActions) {
+ private static ObjectAction firstAssociatedActionWithInlineAsIfEdit(final Can<ObjectAction> objectActions) {
for (ObjectAction objectAction : objectActions) {
final PromptStyle promptStyle = ObjectAction.Util.promptStyleFor(objectAction);
if(promptStyle.isInlineAsIfEdit()) {
@@ -470,7 +473,7 @@ implements ScalarUiModel, LinksProvider, FormExecutorContext {
return associatedActions;
}
- protected abstract List<ObjectAction> calcAssociatedActions();
+ protected abstract Can<ObjectAction> calcAssociatedActions();
public final boolean hasAssociatedActionWithInlineAsIfEdit() {
return getAssociatedActions().hasAssociatedActionWithInlineAsIfEdit();
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarParameterModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarParameterModel.java
index 1176320..4794e97 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarParameterModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarParameterModel.java
@@ -18,12 +18,9 @@
*/
package org.apache.isis.viewer.wicket.model.models;
-import java.util.Collections;
-import java.util.List;
-
import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.core.commons.collections.Can;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.interactions.managed.ManagedAction;
import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -139,11 +136,6 @@ implements ParameterUiModel {
}
@Override
- public <T extends Facet> T getFacet(final Class<T> facetType) {
- return getMetaModel().getFacet(facetType);
- }
-
- @Override
public ManagedObject load() {
val objectAdapter = loadFromSuper();
@@ -161,8 +153,8 @@ implements ParameterUiModel {
}
@Override
- protected List<ObjectAction> calcAssociatedActions() {
- return Collections.emptyList();
+ protected Can<ObjectAction> calcAssociatedActions() {
+ return Can.empty();
}
@Override
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarPropertyModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarPropertyModel.java
index ab28cbd..f970c58 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarPropertyModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarPropertyModel.java
@@ -18,12 +18,9 @@
*/
package org.apache.isis.viewer.wicket.model.models;
-import java.util.List;
-
import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.commons.collections.Can;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.core.metamodel.interactions.managed.InteractionVeto;
import org.apache.isis.core.metamodel.interactions.managed.ManagedProperty;
@@ -101,7 +98,7 @@ implements PropertyUiModel {
public String getIdentifier() {
return getMetaModel().getIdentifier().toNameIdentityString();
}
-
+
@Override
public String getCssClass() {
return getMetaModel().getCssClass("isis-");
@@ -130,11 +127,6 @@ implements PropertyUiModel {
.orElse(null);
}
- @Override
- public <T extends Facet> T getFacet(final Class<T> facetType) {
- return getMetaModel().getFacet(facetType);
- }
-
public void reset() {
val parentAdapter = getParentUiModel().load();
setObjectFromPropertyIfVisible(this, getMetaModel(), parentAdapter);
@@ -156,16 +148,15 @@ implements PropertyUiModel {
}
public String getReasonInvalidIfAny() {
- val adapter = getParentUiModel().load();
val associate = getObject();
- Consent validity = getMetaModel().isAssociationValid(adapter, associate, InteractionInitiatedBy.USER);
- return validity.isAllowed() ? null : validity.getReason();
+ return validate(associate);
}
/**
* Apply changes to the underlying adapter (possibly returning a new adapter).
*
- * @return adapter, which may be different from the original (if a {@link ViewModelFacet#isCloneable(Object) cloneable} view model, for example.
+ * @return adapter, which may be different from the original
+ * (if a {@link ViewModelFacet#isCloneable(Object) cloneable} view model, for example.
*/
public ManagedObject applyValue(ManagedObject adapter) {
val property = getMetaModel();
@@ -178,9 +169,8 @@ implements PropertyUiModel {
}
@Override
- protected List<ObjectAction> calcAssociatedActions() {
- val parentAdapter = getParentUiModel().load();
- return ObjectAction.Util.findForAssociation(parentAdapter, getMetaModel());
+ protected Can<ObjectAction> calcAssociatedActions() {
+ return getManagedProperty().getAssociatedActions();
}
// -- HELPER