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/07/29 14:13:35 UTC
[isis] 02/03: ISIS-2340: ManagedCollection/Action to hold an
immutable 'Where' field
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
commit 0e5857cfc522684283eb995283cdcbb2ba1a702b
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Jul 29 16:11:05 2020 +0200
ISIS-2340: ManagedCollection/Action to hold an immutable 'Where' field
---
.../interactions/managed/ActionInteraction.java | 6 +-
.../managed/CollectionInteraction.java | 6 +-
.../interactions/managed/ManagedAction.java | 16 ++--
.../interactions/managed/ManagedCollection.java | 16 ++--
.../interactions/managed/ManagedMember.java | 8 +-
.../interactions/managed/ManagedProperty.java | 8 +-
.../interactions/managed/MemberInteraction.java | 13 ++-
.../testdomain/interact/ActionInteractionTest.java | 98 +++++++++++-----------
.../interact/InteractionTestAbstract.java | 8 +-
.../testdomain/interact/NewParameterModelTest.java | 32 +++----
.../interact/PropertyInteractionTest.java | 8 +-
.../interact/ScalarParamNegotiationTest.java | 6 +-
.../javafx/ui/components/object/ObjectViewFx.java | 14 ++--
.../vaadin/ui/components/object/ObjectViewVaa.java | 14 ++--
.../common/model/binding/UiComponentFactory.java | 2 +-
.../model/menu/MenuUiModel_buildMenuItems.java | 5 +-
.../domainobjects/DomainObjectReprRenderer.java | 8 +-
.../domainobjects/ObjectActionReprRenderer.java | 3 +-
.../ObjectCollectionReprRenderer.java | 3 +-
.../ContentNegotiationServiceOrgApacheIsisV1.java | 3 +-
.../resources/DomainObjectResourceServerside.java | 8 +-
.../viewer/resources/DomainResourceHelper.java | 6 +-
.../resources/ObjectAdapterAccessHelper.java | 16 ++--
.../viewer/wicket/model/models/ScalarModel.java | 15 +---
.../wicket/model/models/ScalarParameterModel.java | 18 +---
.../wicket/model/models/ScalarPropertyModel.java | 8 +-
26 files changed, 171 insertions(+), 177 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ActionInteraction.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ActionInteraction.java
index 2091ab8..3670203 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ActionInteraction.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ActionInteraction.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.metamodel.interactions.managed;
import java.util.Optional;
import java.util.function.Function;
+import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.commons.collections.Can;
import org.apache.isis.core.commons.internal.base._Either;
import org.apache.isis.core.commons.internal.exceptions._Exceptions;
@@ -50,9 +51,10 @@ public final class ActionInteraction extends MemberInteraction<ManagedAction, Ac
public static final ActionInteraction start(
@NonNull final ManagedObject owner,
- @NonNull final String memberId) {
+ @NonNull final String memberId,
+ @NonNull final Where where) {
- val managedAction = ManagedAction.lookupAction(owner, memberId);
+ val managedAction = ManagedAction.lookupAction(owner, memberId, where);
final _Either<ManagedAction, InteractionVeto> chain = managedAction.isPresent()
? _Either.left(managedAction.get())
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/CollectionInteraction.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/CollectionInteraction.java
index a06c797..ba7a34a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/CollectionInteraction.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/CollectionInteraction.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.metamodel.interactions.managed;
import java.util.Optional;
import java.util.function.Function;
+import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.commons.internal.base._Either;
import org.apache.isis.core.metamodel.interactions.managed.ManagedMember.MemberType;
import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -32,9 +33,10 @@ public final class CollectionInteraction extends MemberInteraction<ManagedCollec
public static final CollectionInteraction start(
@NonNull final ManagedObject owner,
- @NonNull final String memberId) {
+ @NonNull final String memberId,
+ @NonNull final Where where) {
- val managedCollection = ManagedCollection.lookupCollection(owner, memberId);
+ val managedCollection = ManagedCollection.lookupCollection(owner, memberId, where);
final _Either<ManagedCollection, InteractionVeto> chain = managedCollection.isPresent()
? _Either.left(managedCollection.get())
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedAction.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedAction.java
index 941622e..a632755 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedAction.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedAction.java
@@ -20,6 +20,7 @@ package org.apache.isis.core.metamodel.interactions.managed;
import java.util.Optional;
+import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.services.inject.ServiceInjector;
import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.applib.services.routing.RoutingService;
@@ -43,16 +44,18 @@ public final class ManagedAction extends ManagedMember {
public static final ManagedAction of(
final @NonNull ManagedObject owner,
- final @NonNull ObjectAction action) {
- return new ManagedAction(owner, action);
+ final @NonNull ObjectAction action,
+ final @NonNull Where where) {
+ return new ManagedAction(owner, action, where);
}
public static final Optional<ManagedAction> lookupAction(
@NonNull final ManagedObject owner,
- @NonNull final String memberId) {
+ @NonNull final String memberId,
+ @NonNull final Where where) {
return ManagedMember.<ObjectAction>lookup(owner, MemberType.ACTION, memberId)
- .map(objectAction -> of(owner, objectAction));
+ .map(objectAction -> of(owner, objectAction, where));
}
// -- IMPLEMENTATION
@@ -63,9 +66,10 @@ public final class ManagedAction extends ManagedMember {
private ManagedAction(
final @NonNull ManagedObject owner,
- final @NonNull ObjectAction action) {
+ final @NonNull ObjectAction action,
+ final @NonNull Where where) {
- super(owner);
+ super(owner, where);
this.action = action;
this.interactionHead = action.interactionHead(owner);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedCollection.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedCollection.java
index 6db7b79..d1e2e97 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedCollection.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedCollection.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.metamodel.interactions.managed;
import java.util.Optional;
import java.util.stream.Stream;
+import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facets.collections.CollectionFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -37,16 +38,18 @@ public final class ManagedCollection extends ManagedMember {
public static final ManagedCollection of(
final @NonNull ManagedObject owner,
- final @NonNull OneToManyAssociation collection) {
- return new ManagedCollection(owner, collection);
+ final @NonNull OneToManyAssociation collection,
+ final @NonNull Where where) {
+ return new ManagedCollection(owner, collection, where);
}
public static final Optional<ManagedCollection> lookupCollection(
@NonNull final ManagedObject owner,
- @NonNull final String memberId) {
+ @NonNull final String memberId,
+ @NonNull final Where where) {
return ManagedMember.<OneToManyAssociation>lookup(owner, MemberType.COLLECTION, memberId)
- .map(objectAction -> of(owner, objectAction));
+ .map(objectAction -> of(owner, objectAction, where));
}
// -- IMPLEMENTATION
@@ -55,9 +58,10 @@ public final class ManagedCollection extends ManagedMember {
private ManagedCollection(
final @NonNull ManagedObject owner,
- final @NonNull OneToManyAssociation collection) {
+ final @NonNull OneToManyAssociation collection,
+ final @NonNull Where where) {
- super(owner);
+ super(owner, where);
this.collection = collection;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedMember.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedMember.java
index 4a06c25..7e7d675 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedMember.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedMember.java
@@ -92,6 +92,8 @@ public abstract class ManagedMember implements ManagedFeature {
public ManagedObject getOwner() {
return owner = EntityUtil.reattach(owner);
}
+
+ @Getter @NonNull private final Where where;
/**
* Allows a managed property of a view model to replace its owner with a clone.
@@ -142,8 +144,7 @@ public abstract class ManagedMember implements ManagedFeature {
* @param where
* @return non-empty if hidden
*/
- public Optional<InteractionVeto> checkVisibility(
- @NonNull final Where where) {
+ public Optional<InteractionVeto> checkVisibility() {
try {
val visibilityConsent =
@@ -166,8 +167,7 @@ public abstract class ManagedMember implements ManagedFeature {
* @param where
* @return non-empty if not usable/editable (meaning if read-only)
*/
- public Optional<InteractionVeto> checkUsability(
- @NonNull final Where where) {
+ public Optional<InteractionVeto> checkUsability() {
try {
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 8e51bd8..92d2eda 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
@@ -57,15 +57,13 @@ public final class ManagedProperty extends ManagedMember {
// -- IMPLEMENTATION
@Getter private final OneToOneAssociation property;
- @Getter private final Where where;
private ManagedProperty(
final @NonNull ManagedObject owner,
final @NonNull OneToOneAssociation property,
final @NonNull Where where) {
- super(owner);
+ super(owner, where);
this.property = property;
- this.where = where;
}
@Override
@@ -129,8 +127,8 @@ public final class ManagedProperty extends ManagedMember {
val property = getProperty();
val owner = getOwner();
- return property.isVisible(owner, InteractionInitiatedBy.FRAMEWORK, where).isAllowed()
- && property.isVisible(owner, InteractionInitiatedBy.USER, where).isAllowed()
+ return property.isVisible(owner, InteractionInitiatedBy.FRAMEWORK, getWhere()).isAllowed()
+ && property.isVisible(owner, InteractionInitiatedBy.USER, getWhere()).isAllowed()
? property.get(owner, InteractionInitiatedBy.USER)
: ManagedObject.empty(property.getSpecification());
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/MemberInteraction.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/MemberInteraction.java
index 9d26050..075e715 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/MemberInteraction.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/MemberInteraction.java
@@ -21,7 +21,6 @@ package org.apache.isis.core.metamodel.interactions.managed;
import java.util.Optional;
import java.util.function.Function;
-import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.commons.internal.base._Casts;
import org.apache.isis.core.commons.internal.base._Either;
@@ -44,9 +43,9 @@ public abstract class MemberInteraction<T extends ManagedMember, H extends Membe
this.chain = chain;
}
- public H checkVisibility(@NonNull final Where where) {
+ public H checkVisibility() {
chain = chain.leftRemap(property->{
- val visibilityVeto = property.checkVisibility(where);
+ val visibilityVeto = property.checkVisibility();
return visibilityVeto.isPresent()
? _Either.right(visibilityVeto.get())
: _Either.left(property);
@@ -54,9 +53,9 @@ public abstract class MemberInteraction<T extends ManagedMember, H extends Membe
return _Casts.uncheckedCast(this);
}
- public H checkUsability(@NonNull final Where where) {
+ public H checkUsability() {
chain = chain.leftRemap(property->{
- val usablitiyVeto = property.checkUsability(where);
+ val usablitiyVeto = property.checkUsability();
return usablitiyVeto.isPresent()
? _Either.right(usablitiyVeto.get())
: _Either.left(property);
@@ -70,9 +69,9 @@ public abstract class MemberInteraction<T extends ManagedMember, H extends Membe
* @param intent
* @return self
*/
- public H checkUsability(@NonNull final Where where, @NonNull final AccessIntent intent) {
+ public H checkUsability(@NonNull final AccessIntent intent) {
if(intent.isMutate()) {
- return checkUsability(where);
+ return checkUsability();
}
return _Casts.uncheckedCast(this);
}
diff --git a/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/ActionInteractionTest.java b/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/ActionInteractionTest.java
index a3f624e..e27285e 100644
--- a/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/ActionInteractionTest.java
+++ b/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/ActionInteractionTest.java
@@ -65,24 +65,24 @@ class ActionInteractionTest extends InteractionTestAbstract {
@Test
void actionInteraction_whenEnabled_shouldHaveNoVeto() {
- val managedAction = startActionInteractionOn(InteractionDemo.class, "noArgEnabled")
+ val managedAction = startActionInteractionOn(InteractionDemo.class, "noArgEnabled", Where.OBJECT_FORMS)
.getManagedAction().get(); // should not throw
- assertFalse(managedAction.checkVisibility(Where.OBJECT_FORMS).isPresent()); // is visible
- assertFalse(managedAction.checkUsability(Where.OBJECT_FORMS).isPresent()); // can invoke
+ assertFalse(managedAction.checkVisibility().isPresent()); // is visible
+ assertFalse(managedAction.checkUsability().isPresent()); // can invoke
}
@Test
void actionInteraction_whenDisabled_shouldHaveVeto() {
- val managedAction = startActionInteractionOn(InteractionDemo.class, "noArgDisabled")
+ val managedAction = startActionInteractionOn(InteractionDemo.class, "noArgDisabled", Where.OBJECT_FORMS)
.getManagedAction().get(); // should not throw
- assertFalse(managedAction.checkVisibility(Where.OBJECT_FORMS).isPresent()); // is visible
+ assertFalse(managedAction.checkVisibility().isPresent()); // is visible
// cannot invoke
- val veto = managedAction.checkUsability(Where.OBJECT_FORMS).get(); // should not throw
+ val veto = managedAction.checkUsability().get(); // should not throw
assertNotNull(veto);
assertEquals("Disabled for demonstration.", veto.getReason());
@@ -91,9 +91,9 @@ class ActionInteractionTest extends InteractionTestAbstract {
@Test
void actionInteraction_whenEnabled_shouldProvideProperDecoratorModels() {
- val actionInteraction = startActionInteractionOn(InteractionDemo.class, "noArgEnabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionDemo.class, "noArgEnabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
val disablingUiModel = DisablingUiModel.of(actionInteraction);
assertFalse(disablingUiModel.isPresent());
@@ -102,9 +102,9 @@ class ActionInteractionTest extends InteractionTestAbstract {
@Test
void actionInteraction_whenDisabled_shouldProvideProperDecoratorModels() {
- val actionInteraction = startActionInteractionOn(InteractionDemo.class, "noArgDisabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionDemo.class, "noArgDisabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
val disablingUiModel = DisablingUiModel.of(actionInteraction).get();
assertEquals("Disabled for demonstration.", disablingUiModel.getReason());
@@ -113,9 +113,9 @@ class ActionInteractionTest extends InteractionTestAbstract {
@Test
void actionInteraction_whenEnabled_shouldProvideActionMetadata() {
- val actionInteraction = startActionInteractionOn(InteractionDemo.class, "biArgEnabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionDemo.class, "biArgEnabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
val managedAction = actionInteraction.getManagedAction().get(); // should not throw
val actionMeta = managedAction.getAction();
@@ -126,9 +126,9 @@ class ActionInteractionTest extends InteractionTestAbstract {
@Test
void mixinActionInteraction_whenDisabled_shouldProvideActionMetadata() {
- val actionInteraction = startActionInteractionOn(InteractionDemo.class, "biArgDisabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionDemo.class, "biArgDisabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
assertFalse(actionInteraction.getManagedAction().isPresent()); // since usability should be vetoed
assertTrue(actionInteraction.getMetamodel().isPresent()); // but should always provide access to metamodel
@@ -140,9 +140,9 @@ class ActionInteractionTest extends InteractionTestAbstract {
@Test
void actionInteraction_whenEnabled_shouldAllowInvocation() {
- val actionInteraction = startActionInteractionOn(InteractionDemo.class, "noArgEnabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionDemo.class, "noArgEnabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
val pendingArgs = actionInteraction.startParameterNegotiation().get();
val resultOrVeto = actionInteraction.invokeWith(pendingArgs);
@@ -153,14 +153,14 @@ class ActionInteractionTest extends InteractionTestAbstract {
@Test
void actionInteraction_whenDisabled_shouldVetoInvocation() {
- val actionInteraction = startActionInteractionOn(InteractionDemo.class, "noArgDisabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionDemo.class, "noArgDisabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
assertFalse(actionInteraction.startParameterNegotiation().isPresent());
// even though when assembling valid parameters ...
- val pendingArgs = startActionInteractionOn(InteractionDemo.class, "noArgDisabled")
+ val pendingArgs = startActionInteractionOn(InteractionDemo.class, "noArgDisabled", Where.OBJECT_FORMS)
.startParameterNegotiation().get();
// we should not be able to invoke the action
@@ -172,9 +172,9 @@ class ActionInteractionTest extends InteractionTestAbstract {
@Test
void actionInteraction_withParams_shouldProduceCorrectResult() throws Throwable {
- val actionInteraction = startActionInteractionOn(InteractionDemo.class, "biArgEnabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionDemo.class, "biArgEnabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
val params = Can.of(objectManager.adapt(12), objectManager.adapt(34));
@@ -190,9 +190,9 @@ class ActionInteractionTest extends InteractionTestAbstract {
@Test
void actionInteraction_withTooManyParams_shouldIgnoreOverflow() throws Throwable {
- val actionInteraction = startActionInteractionOn(InteractionDemo.class, "biArgEnabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionDemo.class, "biArgEnabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
val params = Can.of(objectManager.adapt(12), objectManager.adapt(34), objectManager.adapt(99));
@@ -208,9 +208,9 @@ class ActionInteractionTest extends InteractionTestAbstract {
@Test
void actionInteraction_withTooLittleParams_shouldIgnoreUnderflow() {
- val actionInteraction = startActionInteractionOn(InteractionDemo.class, "biArgEnabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionDemo.class, "biArgEnabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
val params = Can.of(objectManager.adapt(12));
@@ -227,9 +227,9 @@ class ActionInteractionTest extends InteractionTestAbstract {
@Test
void actionInteraction_shouldProvideParameterDefaults() {
- val actionInteraction = startActionInteractionOn(InteractionDemo.class, "biArgEnabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionDemo.class, "biArgEnabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
val managedAction = actionInteraction.getManagedAction().get(); // should not throw
val pendingArgs = managedAction.getInteractionHead().defaults();
@@ -246,9 +246,9 @@ class ActionInteractionTest extends InteractionTestAbstract {
@Test
void actionInteraction_whenHavingChoices_shouldProvideProperParameterDefaults() {
- val actionInteraction = startActionInteractionOn(InteractionDemo.class, "multiInt")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionDemo.class, "multiInt", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
val managedAction = actionInteraction.getManagedAction().get(); // should not throw
val pendingArgs = managedAction.getInteractionHead().defaults();
@@ -282,9 +282,9 @@ class ActionInteractionTest extends InteractionTestAbstract {
@Test
void actionInteraction_whenHavingEnumChoices_shouldProvideProperParameterDefaults() {
- val actionInteraction = startActionInteractionOn(InteractionDemo.class, "multiEnum")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionDemo.class, "multiEnum", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
val managedAction = actionInteraction.getManagedAction().get(); // should not throw
val pendingArgs = managedAction.getInteractionHead().defaults();
@@ -318,9 +318,9 @@ class ActionInteractionTest extends InteractionTestAbstract {
@Test
void actionInteraction_shouldProvideChoices() {
- val actionInteraction = startActionInteractionOn(InteractionDemo.class, "biArgEnabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionDemo.class, "biArgEnabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
assertTrue(actionInteraction.getManagedAction().isPresent(), "action is expected to be usable");
@@ -341,9 +341,9 @@ class ActionInteractionTest extends InteractionTestAbstract {
@Test
void actionInteraction_shouldProvideParameterBinding() {
- val actionInteraction = startActionInteractionOn(InteractionDemo.class, "biArgEnabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionDemo.class, "biArgEnabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
assertTrue(actionInteraction.getManagedAction().isPresent(), "action is expected to be usable");
diff --git a/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/InteractionTestAbstract.java b/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/InteractionTestAbstract.java
index e9e05d9..dc67adb 100644
--- a/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/InteractionTestAbstract.java
+++ b/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/InteractionTestAbstract.java
@@ -50,10 +50,10 @@ abstract class InteractionTestAbstract extends IsisIntegrationTestAbstract {
// new javafx.embed.swing.JFXPanel(); // Initializes the JavaFx Platform
// }
- protected ActionInteraction startActionInteractionOn(Class<?> type, String actionId) {
+ protected ActionInteraction startActionInteractionOn(Class<?> type, String actionId, Where where) {
val viewModel = factoryService.viewModel(type);
val managedObject = objectManager.adapt(viewModel);
- return ActionInteraction.start(managedObject, actionId);
+ return ActionInteraction.start(managedObject, actionId, where);
}
protected PropertyInteraction startPropertyInteractionOn(Class<?> type, String propertyId, Where where) {
@@ -62,10 +62,10 @@ abstract class InteractionTestAbstract extends IsisIntegrationTestAbstract {
return PropertyInteraction.start(managedObject, propertyId, where);
}
- protected CollectionInteraction startCollectionInteractionOn(Class<?> type, String collectionId) {
+ protected CollectionInteraction startCollectionInteractionOn(Class<?> type, String collectionId, Where where) {
val viewModel = factoryService.viewModel(type);
val managedObject = objectManager.adapt(viewModel);
- return CollectionInteraction.start(managedObject, collectionId);
+ return CollectionInteraction.start(managedObject, collectionId, where);
}
diff --git a/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/NewParameterModelTest.java b/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/NewParameterModelTest.java
index f790950..dcd02f3 100644
--- a/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/NewParameterModelTest.java
+++ b/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/NewParameterModelTest.java
@@ -76,7 +76,7 @@ class NewParameterModelTest extends InteractionTestAbstract {
@Test
void paramAnnotations_whenNpm_shouldBeRecognized() {
- val param0Metamodel = startActionInteractionOn(InteractionNpmDemo.class, "biArgEnabled")
+ val param0Metamodel = startActionInteractionOn(InteractionNpmDemo.class, "biArgEnabled", Where.OBJECT_FORMS)
.getMetamodel().get().getParameters().getElseFail(0);
// as with first param's @Parameter(maxLength = 2)
@@ -95,9 +95,9 @@ class NewParameterModelTest extends InteractionTestAbstract {
@Test
void actionInteraction_withParams_shouldProduceCorrectResult() throws Throwable {
- val actionInteraction = startActionInteractionOn(InteractionNpmDemo.class, "biArgEnabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionNpmDemo.class, "biArgEnabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
val params = Can.of(objectManager.adapt(12), objectManager.adapt(34));
@@ -113,9 +113,9 @@ class NewParameterModelTest extends InteractionTestAbstract {
@Test
void actionInteraction_withTooManyParams_shouldIgnoreOverflow() throws Throwable {
- val actionInteraction = startActionInteractionOn(InteractionNpmDemo.class, "biArgEnabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionNpmDemo.class, "biArgEnabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
val params = Can.of(objectManager.adapt(12), objectManager.adapt(34), objectManager.adapt(99));
@@ -131,9 +131,9 @@ class NewParameterModelTest extends InteractionTestAbstract {
@Test
void actionInteraction_withTooLittleParams_shouldIgnoreUnderflow() throws Throwable {
- val actionInteraction = startActionInteractionOn(InteractionNpmDemo.class, "biArgEnabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionNpmDemo.class, "biArgEnabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
val params = Can.<ManagedObject>of();
@@ -149,9 +149,9 @@ class NewParameterModelTest extends InteractionTestAbstract {
@Test
void actionInteraction_shouldProvideParameterDefaults() {
- val actionInteraction = startActionInteractionOn(InteractionNpmDemo.class, "biArgEnabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionNpmDemo.class, "biArgEnabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
val managedAction = actionInteraction.getManagedAction().get(); // should not throw
val pendingArgs = managedAction.getInteractionHead().defaults();
@@ -169,9 +169,9 @@ class NewParameterModelTest extends InteractionTestAbstract {
@Test
void actionInteraction_shouldProvideChoices() {
- val actionInteraction = startActionInteractionOn(InteractionNpmDemo.class, "biArgEnabled")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionNpmDemo.class, "biArgEnabled", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
assertTrue(actionInteraction.getManagedAction().isPresent(), "action is expected to be usable");
diff --git a/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/PropertyInteractionTest.java b/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/PropertyInteractionTest.java
index 65b8879..0b0e0da 100644
--- a/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/PropertyInteractionTest.java
+++ b/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/PropertyInteractionTest.java
@@ -61,8 +61,8 @@ class PropertyInteractionTest extends InteractionTestAbstract {
val managedProperty = startPropertyInteractionOn(InteractionDemo.class, "stringMultiline", Where.OBJECT_FORMS)
.getManagedProperty().get(); // should not throw
- assertFalse(managedProperty.checkVisibility(Where.OBJECT_FORMS).isPresent()); // is visible
- assertFalse(managedProperty.checkUsability(Where.OBJECT_FORMS).isPresent()); // can edit
+ assertFalse(managedProperty.checkVisibility().isPresent()); // is visible
+ assertFalse(managedProperty.checkUsability().isPresent()); // can edit
}
@Test
@@ -72,10 +72,10 @@ class PropertyInteractionTest extends InteractionTestAbstract {
.getManagedProperty().get(); // should not throw
- assertFalse(managedProperty.checkVisibility(Where.OBJECT_FORMS).isPresent()); // is visible
+ assertFalse(managedProperty.checkVisibility().isPresent()); // is visible
// verify we cannot edit
- val veto = managedProperty.checkUsability(Where.OBJECT_FORMS).get(); // should not throw
+ val veto = managedProperty.checkUsability().get(); // should not throw
assertNotNull(veto);
assertEquals("Disabled for demonstration.", veto.getReason());
diff --git a/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/ScalarParamNegotiationTest.java b/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/ScalarParamNegotiationTest.java
index ad74c6c..bd9c5e1 100644
--- a/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/ScalarParamNegotiationTest.java
+++ b/examples/smoketests/stable/src/test/java/org/apache/isis/testdomain/interact/ScalarParamNegotiationTest.java
@@ -79,9 +79,9 @@ class ScalarParamNegotiationTest extends InteractionTestAbstract {
@BeforeEach
void setUpSimulatedUi() {
- val actionInteraction = startActionInteractionOn(InteractionDemo.class, "negotiate")
- .checkVisibility(Where.OBJECT_FORMS)
- .checkUsability(Where.OBJECT_FORMS);
+ val actionInteraction = startActionInteractionOn(InteractionDemo.class, "negotiate", Where.OBJECT_FORMS)
+ .checkVisibility()
+ .checkUsability();
assertTrue(actionInteraction.getManagedAction().isPresent(), "action is expected to be usable");
diff --git a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/object/ObjectViewFx.java b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/object/ObjectViewFx.java
index 93d3740..4253f7e 100644
--- a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/object/ObjectViewFx.java
+++ b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/object/ObjectViewFx.java
@@ -163,12 +163,12 @@ public class ObjectViewFx extends VBox {
protected void onAction(Pane container, ActionLayoutData actionData) {
val owner = objectInteractor.getManagedObject();
- val interaction = ActionInteraction.start(owner, actionData.getId());
- interaction.checkVisibility(Where.OBJECT_FORMS)
+ val interaction = ActionInteraction.start(owner, actionData.getId(), Where.OBJECT_FORMS);
+ interaction.checkVisibility()
.getManagedAction()
.ifPresent(managedAction -> {
- interaction.checkUsability(Where.OBJECT_FORMS);
+ interaction.checkUsability();
val uiButton = _fx.add(container,
uiComponentFactory.buttonFor(
@@ -188,11 +188,11 @@ public class ObjectViewFx extends VBox {
val formPane = (FormPane) container;
val interaction = PropertyInteraction.start(owner, propertyData.getId(), Where.OBJECT_FORMS);
- interaction.checkVisibility(Where.OBJECT_FORMS)
+ interaction.checkVisibility()
.getManagedProperty()
.ifPresent(managedProperty -> {
- interaction.checkUsability(Where.OBJECT_FORMS);
+ interaction.checkUsability();
val request = UiComponentFactory.ComponentRequest.of(
managedProperty,
@@ -220,8 +220,8 @@ public class ObjectViewFx extends VBox {
val owner = objectInteractor.getManagedObject();
- CollectionInteraction.start(owner, collectionData.getId())
- .checkVisibility(Where.OBJECT_FORMS)
+ CollectionInteraction.start(owner, collectionData.getId(), Where.OBJECT_FORMS)
+ .checkVisibility()
.getManagedCollection()
.ifPresent(managedCollection -> {
diff --git a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/components/object/ObjectViewVaa.java b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/components/object/ObjectViewVaa.java
index 5830352..d6e5e6c 100644
--- a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/components/object/ObjectViewVaa.java
+++ b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/components/object/ObjectViewVaa.java
@@ -180,12 +180,12 @@ public class ObjectViewVaa extends VerticalLayout {
protected void onAction(HasComponents container, ActionLayoutData actionData) {
val owner = objectInteractor.getManagedObject();
- val interaction = ActionInteraction.start(owner, actionData.getId());
- interaction.checkVisibility(Where.OBJECT_FORMS)
+ val interaction = ActionInteraction.start(owner, actionData.getId(), Where.OBJECT_FORMS);
+ interaction.checkVisibility()
.getManagedAction()
.ifPresent(managedAction -> {
- interaction.checkUsability(Where.OBJECT_FORMS);
+ interaction.checkUsability();
val uiButton = _vaa.add(container,
uiComponentFactory.buttonFor(
@@ -204,11 +204,11 @@ public class ObjectViewVaa extends VerticalLayout {
val owner = objectInteractor.getManagedObject();
val interaction = PropertyInteraction.start(owner, propertyData.getId(), Where.OBJECT_FORMS);
- interaction.checkVisibility(Where.OBJECT_FORMS)
+ interaction.checkVisibility()
.getManagedProperty()
.ifPresent(managedProperty -> {
- interaction.checkUsability(Where.OBJECT_FORMS);
+ interaction.checkUsability();
val uiProperty = _vaa.add(container,
uiComponentFactory.componentFor(
@@ -231,8 +231,8 @@ public class ObjectViewVaa extends VerticalLayout {
val owner = objectInteractor.getManagedObject();
- CollectionInteraction.start(owner, collectionData.getId())
- .checkVisibility(Where.OBJECT_FORMS)
+ CollectionInteraction.start(owner, collectionData.getId(), Where.OBJECT_FORMS)
+ .checkVisibility()
.getManagedCollection()
.ifPresent(managedCollection -> {
_vaa.add(container, new H3(managedCollection.getName()));
diff --git a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/binding/UiComponentFactory.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/binding/UiComponentFactory.java
index 225d72d..af1e2f4 100644
--- a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/binding/UiComponentFactory.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/binding/UiComponentFactory.java
@@ -145,7 +145,7 @@ public interface UiComponentFactory<B, C> {
}
public boolean isReadOnly() {
- return ((ManagedProperty)managedFeature).checkUsability(where).isPresent();
+ return ((ManagedProperty)managedFeature).checkUsability().isPresent();
}
@Deprecated
diff --git a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/menu/MenuUiModel_buildMenuItems.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/menu/MenuUiModel_buildMenuItems.java
index dd5dab3..064c387 100644
--- a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/menu/MenuUiModel_buildMenuItems.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/menu/MenuUiModel_buildMenuItems.java
@@ -64,14 +64,15 @@ final class MenuUiModel_buildMenuItems {
continue;
}
- val managedAction = ManagedAction.lookupAction(serviceAdapter, actionLayoutData.getId())
+ val managedAction = ManagedAction
+ .lookupAction(serviceAdapter, actionLayoutData.getId(), Where.EVERYWHERE)
.orElse(null);
if (managedAction == null) {
log.warn("No such action {}", actionLayoutData.getId());
continue;
}
- val visibilityVeto = managedAction.checkVisibility(Where.EVERYWHERE);
+ val visibilityVeto = managedAction.checkVisibility();
if (visibilityVeto.isPresent()) {
continue;
}
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
index 9417ac1..00bb6cb 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
@@ -365,7 +365,9 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
final ObjectCollectionReprRenderer renderer =
new ObjectCollectionReprRenderer(getResourceContext(), linkFollowerForColl, collection.getId(), collectionRepresentation);
- renderer.with(ManagedCollection.of(objectAdapter, collection)).usingLinkTo(linkToBuilder);
+ val where = resourceContext.getWhere();
+
+ renderer.with(ManagedCollection.of(objectAdapter, collection, where)).usingLinkTo(linkToBuilder);
if(mode.isEventSerialization()) {
renderer.asEventSerialization();
}
@@ -390,7 +392,9 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
new ObjectActionReprRenderer(getResourceContext(), linkFollowSpecs, action.getId(),
JsonRepresentation.newMap());
- renderer.with(ManagedAction.of(objectAdapter, action)).usingLinkTo(linkToBuilder);
+ val where = resourceContext.getWhere();
+
+ renderer.with(ManagedAction.of(objectAdapter, action, where)).usingLinkTo(linkToBuilder);
members.mapPut(action.getId(), renderer.render());
});
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectActionReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectActionReprRenderer.java
index cfb1687..f8d5715 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectActionReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectActionReprRenderer.java
@@ -78,8 +78,9 @@ public class ObjectActionReprRenderer extends AbstractObjectMemberReprRenderer<O
*/
@Override
protected void followDetailsLink(final JsonRepresentation detailsLink) {
+ val where = resourceContext.getWhere();
final ObjectActionReprRenderer renderer = new ObjectActionReprRenderer(getResourceContext(), getLinkFollowSpecs(), null, JsonRepresentation.newMap());
- renderer.with(ManagedAction.of(objectAdapter, objectMember)).usingLinkTo(linkTo).asFollowed();
+ renderer.with(ManagedAction.of(objectAdapter, objectMember, where)).usingLinkTo(linkTo).asFollowed();
detailsLink.mapPut("value", renderer.render());
}
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
index e0c5de0..1fb8c28 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
@@ -138,10 +138,11 @@ public class ObjectCollectionReprRenderer extends AbstractObjectMemberReprRender
*/
@Override
protected void followDetailsLink(final JsonRepresentation detailsLink) {
+ val where = resourceContext.getWhere();
final JsonRepresentation representation = JsonRepresentation.newMap();
final ObjectCollectionReprRenderer renderer = new ObjectCollectionReprRenderer(getResourceContext(), getLinkFollowSpecs(), null,
representation);
- renderer.with(ManagedCollection.of(objectAdapter, objectMember)).asFollowed();
+ renderer.with(ManagedCollection.of(objectAdapter, objectMember, where)).asFollowed();
detailsLink.mapPut("value", renderer.render());
}
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.java
index fdb9ca9..b1bac9f 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.java
@@ -323,9 +323,8 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
if (!visibilityConsent.isAllowed()) {
return;
}
-
- val managedCollection = ManagedCollection.of(owner, collection);
+ val managedCollection = ManagedCollection.of(owner, collection, where);
appendCollectionTo(resourceContext, managedCollection, collectionRepresentation, suppression);
});
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java
index 07f67cc..ceac803 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java
@@ -453,8 +453,8 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
val objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
PropertyInteraction.start(objectAdapter, propertyId, resourceContext.getWhere())
- .checkVisibility(resourceContext.getWhere())
- .checkUsability(resourceContext.getWhere(), AccessIntent.MUTATE)
+ .checkVisibility()
+ .checkUsability(AccessIntent.MUTATE)
.modifyProperty(property->{
val proposedNewValue = new JsonParserHelper(resourceContext, property.getSpecification())
.parseAsMapWithSingleValue(Util.asStringUtf8(body));
@@ -485,8 +485,8 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
val objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
PropertyInteraction.start(objectAdapter, propertyId, resourceContext.getWhere())
- .checkVisibility(resourceContext.getWhere())
- .checkUsability(resourceContext.getWhere(), AccessIntent.MUTATE)
+ .checkVisibility()
+ .checkUsability(AccessIntent.MUTATE)
.modifyProperty(property->null)
.validateElseThrow(InteractionFailureHandler::onFailure);
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainResourceHelper.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainResourceHelper.java
index 37bc759..ef14dbb 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainResourceHelper.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainResourceHelper.java
@@ -205,9 +205,9 @@ class DomainResourceHelper {
val where = resourceContext.getWhere();
// lombok issue, needs explicit cast here
- val actionInteraction = (ActionInteraction) ActionInteraction.start(objectAdapter, actionId)
- .checkVisibility(where)
- .checkUsability(where, intent)
+ val actionInteraction = (ActionInteraction) ActionInteraction.start(objectAdapter, actionId, where)
+ .checkVisibility()
+ .checkUsability(intent)
.checkSemanticConstraint(semanticConstraint);
val pendingArgs = actionInteraction.startParameterNegotiation().orElse(null);
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ObjectAdapterAccessHelper.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ObjectAdapterAccessHelper.java
index 2f03f5d..c5040c2 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ObjectAdapterAccessHelper.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ObjectAdapterAccessHelper.java
@@ -57,9 +57,9 @@ public class ObjectAdapterAccessHelper {
@NonNull final SemanticConstraint semanticConstraint) {
return ActionInteraction
- .start(managedObject, actionId)
- .checkVisibility(where)
- .checkUsability(where, AccessIntent.MUTATE)
+ .start(managedObject, actionId, where)
+ .checkVisibility()
+ .checkUsability(AccessIntent.MUTATE)
.checkSemanticConstraint(semanticConstraint)
.getManagedActionElseThrow(InteractionFailureHandler::onFailure);
}
@@ -70,8 +70,8 @@ public class ObjectAdapterAccessHelper {
return PropertyInteraction
.start(managedObject, propertyId, where)
- .checkVisibility(where)
- .checkUsability(where, intent)
+ .checkVisibility()
+ .checkUsability(intent)
.getManagedPropertyElseThrow(InteractionFailureHandler::onFailure);
}
@@ -81,9 +81,9 @@ public class ObjectAdapterAccessHelper {
@NonNull final AccessIntent intent) {
return CollectionInteraction
- .start(managedObject, collectionId)
- .checkVisibility(where)
- .checkUsability(where, intent)
+ .start(managedObject, collectionId, where)
+ .checkVisibility()
+ .checkUsability(intent)
.getManagedCollectionElseThrow(InteractionFailureHandler::onFailure);
}
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 97a97d9..fa35355 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
@@ -23,7 +23,6 @@ import java.util.List;
import java.util.Optional;
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._NullSafe;
import org.apache.isis.core.commons.internal.collections._Lists;
@@ -199,19 +198,9 @@ implements HasRenderingHints, ScalarUiModel, LinksProvider, FormExecutorContext
setObject(adapter);
}
- public boolean whetherHidden() {
- final Where where = getRenderingHint().asWhere();
- return whetherHidden(where);
- }
-
- protected abstract boolean whetherHidden(Where where);
-
- public String whetherDisabled() {
- final Where where = getRenderingHint().asWhere();
- return whetherDisabled(where);
- }
+ public abstract boolean whetherHidden();
- protected abstract String whetherDisabled(Where where);
+ public abstract String whetherDisabled();
public abstract String validate(ManagedObject proposedAdapter);
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 bf701df..f76fee9 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
@@ -74,21 +74,11 @@ implements ParameterUiModel {
public ManagedAction getManagedAction() {
if(managedAction==null) {
val actionOwner = getParentUiModel().load();
- managedAction = ManagedAction.of(actionOwner, getMetaModel().getAction());
+ // TODO 'where' is not used until whetherDisabled and whetherHidden are implemented
+ managedAction = ManagedAction.of(actionOwner, getMetaModel().getAction(), Where.ANYWHERE);
}
return managedAction;
}
-
-// private transient ManagedParameter managedParameter;
-//
-// public ManagedParameter getManagedParameter() {
-// if(managedParameter==null) {
-// val parameter = getMetaModel();
-// managedParameter = getManagedAction().managedParameter(parameter.getNumber());
-// }
-// return managedParameter;
-// }
-
@Override
public ObjectSpecification getScalarTypeSpec() {
@@ -106,13 +96,13 @@ implements ParameterUiModel {
}
@Override
- public String whetherDisabled(Where where) {
+ public String whetherDisabled() {
// always enabled TODO this is not true
return null;
}
@Override
- public boolean whetherHidden(Where where) {
+ public boolean whetherHidden() {
// always enabled TODO this is not true
return false;
}
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 f77293a..dc2ae69 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
@@ -104,16 +104,16 @@ implements PropertyUiModel {
}
@Override
- public boolean whetherHidden(final Where where) {
+ public boolean whetherHidden() {
return getManagedProperty()
- .checkVisibility(where)
+ .checkVisibility()
.isPresent();
}
@Override
- public String whetherDisabled(final Where where) {
+ public String whetherDisabled() {
return getManagedProperty()
- .checkUsability(where)
+ .checkUsability()
.map(InteractionVeto::getReason)
.orElse(null);
}