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/07 10:21:54 UTC
[isis] 05/06: ISIS-2340: introduces HasParentUiModel
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 1b7ab67d3b91385b6c3cf5de95908ebbaf8fea8e
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu May 7 11:33:22 2020 +0200
ISIS-2340: introduces HasParentUiModel
---
.../pdfjs/ui/components/PdfJsViewerPanel.java | 2 +-
.../viewer/common/model/HasParentUiModel.java} | 10 ++--
.../model/action/form/ActionFormUiModel.java} | 7 +--
.../{param => form}/PendingParameterManager.java | 2 +-
.../wicket/model/models/ActionArgumentCache.java | 2 +-
.../viewer/wicket/model/models/ActionModel.java | 55 +++-------------------
.../wicket/model/models/FormExecutorContext.java | 3 +-
.../wicket/model/models/PageParameterUtil.java | 50 +++++++++++++++++++-
.../viewer/wicket/model/models/ScalarModel.java | 2 +-
.../wicket/model/models/ScalarParameterModel.java | 6 +--
.../wicket/model/models/ScalarPropertyModel.java | 22 ++++-----
.../wicket/model/models/ActionModelTest.java | 4 +-
.../actionmenu/entityactions/LinkAndLabelUtil.java | 2 +-
.../actionprompt/ActionPromptHeaderPanel.java | 2 +-
.../components/actions/ActionParametersPanel.java | 2 +-
.../ui/components/property/PropertyEditPanel.java | 4 +-
.../property/PropertyFormExecutorStrategy.java | 4 +-
.../PropertyEditPromptHeaderPanel.java | 2 +-
.../ui/components/scalars/ScalarPanelAbstract.java | 2 +-
.../components/scalars/ScalarPanelAbstract2.java | 2 +-
.../wicket/ui/panels/FormExecutorDefault.java | 6 +--
.../wicket/ui/panels/FormExecutorStrategy.java | 5 +-
.../wicket/ui/panels/PromptFormAbstract.java | 5 +-
23 files changed, 104 insertions(+), 97 deletions(-)
diff --git a/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanel.java b/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanel.java
index cc67420..7fc2c9b 100644
--- a/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanel.java
+++ b/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanel.java
@@ -205,7 +205,7 @@ class PdfJsViewerPanel extends ScalarPanelAbstract<ScalarPropertyModel> implemen
val model = getModel();
val propertyId = model.getPropertyMemento().getIdentifier();
- val bookmark = model.getParentEntityModel().getObjectAdapterMemento().asBookmarkIfSupported();
+ val bookmark = model.getParentUiModel().getObjectAdapterMemento().asBookmarkIfSupported();
val objectType = bookmark.getObjectType();
val identifier = bookmark.getIdentifier();
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ParentEntityModelProvider.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/HasParentUiModel.java
similarity index 80%
copy from viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ParentEntityModelProvider.java
copy to viewers/common/src/main/java/org/apache/isis/viewer/common/model/HasParentUiModel.java
index 61f4b6f..4cc135c 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ParentEntityModelProvider.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/HasParentUiModel.java
@@ -16,11 +16,11 @@
* specific language governing permissions and limitations
* under the License.
*/
+package org.apache.isis.viewer.common.model;
-package org.apache.isis.viewer.wicket.model.models;
-
-public interface ParentEntityModelProvider {
-
- EntityModel getParentEntityModel();
+import org.apache.isis.viewer.common.model.object.ObjectUiModel;
+public interface HasParentUiModel<T extends ObjectUiModel> {
+
+ T getParentUiModel();
}
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ParentEntityModelProvider.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/ActionFormUiModel.java
similarity index 85%
rename from viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ParentEntityModelProvider.java
rename to viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/ActionFormUiModel.java
index 61f4b6f..28d551a 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ParentEntityModelProvider.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/ActionFormUiModel.java
@@ -16,11 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
+package org.apache.isis.viewer.common.model.action.form;
-package org.apache.isis.viewer.wicket.model.models;
-
-public interface ParentEntityModelProvider {
-
- EntityModel getParentEntityModel();
+public interface ActionFormUiModel {
}
diff --git a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/param/PendingParameterManager.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/PendingParameterManager.java
similarity index 95%
rename from viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/param/PendingParameterManager.java
rename to viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/PendingParameterManager.java
index 0b371c3..1261ddc 100644
--- a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/param/PendingParameterManager.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/PendingParameterManager.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.common.model.action.param;
+package org.apache.isis.viewer.common.model.action.form;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionArgumentCache.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionArgumentCache.java
index a03977c..2397cca 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionArgumentCache.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionArgumentCache.java
@@ -29,7 +29,7 @@ import org.apache.isis.core.commons.internal.collections._Maps;
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.ObjectActionParameter;
-import org.apache.isis.viewer.common.model.action.param.PendingParameterManager;
+import org.apache.isis.viewer.common.model.action.form.PendingParameterManager;
import org.apache.isis.viewer.wicket.model.mementos.ActionMemento;
import org.apache.isis.viewer.wicket.model.mementos.ActionParameterMemento;
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index 85cbbef..aec362e 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -24,8 +24,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Objects;
-import java.util.Optional;
-import java.util.regex.Pattern;
import java.util.stream.Stream;
import org.apache.wicket.request.IRequestHandler;
@@ -48,8 +46,6 @@ import org.apache.isis.applib.value.LocalResourcePath;
import org.apache.isis.applib.value.NamedWithMimeType;
import org.apache.isis.core.commons.collections.Can;
import org.apache.isis.core.commons.internal.base._NullSafe;
-import org.apache.isis.core.commons.internal.exceptions._Exceptions;
-import org.apache.isis.core.commons.internal.primitives._Ints;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.consent.Consent;
@@ -81,8 +77,6 @@ implements FormExecutorContext {
private static final long serialVersionUID = 1L;
private static final String NULL_ARG = "$nullArg$";
- private static final Pattern KEY_VALUE_PATTERN = Pattern.compile("([^=]+)=(.+)");
-
public ActionModel copy() {
return new ActionModel(this);
@@ -111,39 +105,7 @@ implements FormExecutorContext {
actionModel.setContextArgumentIfPossible(pageParameters);
return actionModel;
}
-
-
-
- @Value(staticConstructor = "of")
- public static class ParamNumAndOidString {
- int paramNum;
- String oidString;
- }
-
- public static Optional<ParamNumAndOidString> parse(final String paramContext) {
- val matcher = KEY_VALUE_PATTERN.matcher(paramContext);
- if (!matcher.matches()) {
- return Optional.empty();
- }
-
- try {
-
- val intLiteral = matcher.group(1);
- val oidStr = matcher.group(2);
-
- val parseResult = _Ints.parseInt(intLiteral, 10);
- if(parseResult.isPresent()) {
- val paramNum = parseResult.getAsInt();
- return Optional.of(ParamNumAndOidString.of(paramNum, oidStr));
- }
-
- } catch (final Exception e) {
- // ignore and fall through
- }
-
- return Optional.empty();
-
- }
+
//////////////////////////////////////////////////
// BookmarkableModel
@@ -253,7 +215,7 @@ implements FormExecutorContext {
}
@Override
- public EntityModel getParentEntityModel() {
+ public EntityModel getParentUiModel() {
return entityModel;
}
@@ -291,17 +253,14 @@ implements FormExecutorContext {
}
private boolean setContextArgumentIfPossible(final PageParameters pageParameters) {
- final String paramContext = PageParameterNames.ACTION_PARAM_CONTEXT.getStringFrom(pageParameters);
- if (paramContext == null) {
+
+ val paramNumAndOidString = PageParameterUtil.parseParamContext(pageParameters)
+ .orElse(null);
+ if(paramNumAndOidString==null) {
return false;
}
-
- val action = actionMemento.getAction(getSpecificationLoader());
-
- val paramNumAndOidString = parse(paramContext)
- .orElseThrow(()->_Exceptions
- .unrecoverableFormatted("failed to parse param context '%s'", paramContext));
+ val action = actionMemento.getAction(getSpecificationLoader());
val actionParamIfAny = action.getParameters().get(paramNumAndOidString.getParamNum());
if(!actionParamIfAny.isPresent()) {
return false;
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/FormExecutorContext.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/FormExecutorContext.java
index f1577b2..faa9409 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/FormExecutorContext.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/FormExecutorContext.java
@@ -20,8 +20,9 @@
package org.apache.isis.viewer.wicket.model.models;
import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.viewer.common.model.HasParentUiModel;
-public interface FormExecutorContext extends ParentEntityModelProvider {
+public interface FormExecutorContext extends HasParentUiModel<EntityModel> {
PromptStyle getPromptStyle();
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/PageParameterUtil.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/PageParameterUtil.java
index b4e7397..85bbc65 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/PageParameterUtil.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/PageParameterUtil.java
@@ -18,20 +18,27 @@
*/
package org.apache.isis.viewer.wicket.model.models;
+import java.util.Optional;
+import java.util.regex.Pattern;
+
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.isis.applib.Identifier;
+import org.apache.isis.core.commons.internal.primitives._Ints;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.viewer.wicket.model.common.PageParametersUtils;
import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
+import lombok.Value;
import lombok.val;
import lombok.experimental.UtilityClass;
@UtilityClass
-class PageParameterUtil {
+
+class PageParameterUtil {
+
/**
* Factory method for creating {@link PageParameters}.
*/
@@ -57,6 +64,47 @@ class PageParameterUtil {
return pageParameters;
}
+
+ @Value(staticConstructor = "of")
+ public static class ParamNumAndOidString {
+ int paramNum;
+ String oidString;
+ }
+
+ public static Optional<ParamNumAndOidString> parseParamContext(PageParameters pageParameters) {
+ final String paramContext = PageParameterNames.ACTION_PARAM_CONTEXT.getStringFrom(pageParameters);
+ if (paramContext == null) {
+ return Optional.empty();
+ }
+ return parseParamContext(paramContext);
+ }
+
+ private static final Pattern KEY_VALUE_PATTERN = Pattern.compile("([^=]+)=(.+)");
+
+ static Optional<ParamNumAndOidString> parseParamContext(final String paramContext) {
+ val matcher = KEY_VALUE_PATTERN.matcher(paramContext);
+ if (!matcher.matches()) {
+ return Optional.empty();
+ }
+
+ try {
+
+ val intLiteral = matcher.group(1);
+ val oidStr = matcher.group(2);
+
+ val parseResult = _Ints.parseInt(intLiteral, 10);
+ if(parseResult.isPresent()) {
+ val paramNum = parseResult.getAsInt();
+ return Optional.of(ParamNumAndOidString.of(paramNum, oidStr));
+ }
+
+ } catch (final Exception e) {
+ // ignore and fall through
+ }
+
+ return Optional.empty();
+
+ }
private static String determineActionId(final ObjectAction objectAction) {
final Identifier identifier = objectAction.getIdentifier();
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 3c03448..0a0f8b1 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
@@ -130,7 +130,7 @@ implements LinksProvider, FormExecutorContext {
}
@Override
- public EntityModel getParentEntityModel() {
+ public EntityModel getParentUiModel() {
return parentEntityModel;
}
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 45486c7..7ed4154 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
@@ -118,7 +118,7 @@ implements ActionArgumentModel {
final ObjectActionParameter parameter = getParameterMemento().getActionParameter(
getSpecificationLoader());
try {
- ManagedObject parentAdapter = getParentEntityModel().load();
+ ManagedObject parentAdapter = getParentUiModel().load();
final String invalidReasonIfAny = parameter.isValid(parentAdapter, proposedPojoAsStr,
InteractionInitiatedBy.USER
);
@@ -133,7 +133,7 @@ implements ActionArgumentModel {
final ObjectActionParameter parameter = getParameterMemento().getActionParameter(
getSpecificationLoader());
try {
- ManagedObject parentAdapter = getParentEntityModel().load();
+ ManagedObject parentAdapter = getParentUiModel().load();
final String invalidReasonIfAny = parameter.isValid(parentAdapter, proposedAdapter.getPojo(),
InteractionInitiatedBy.USER
);
@@ -297,7 +297,7 @@ implements ActionArgumentModel {
public PendingParameterModelHead getPendingParamHead() {
val actionParameter = getParameter();
- val actionOwner = getParentEntityModel().load();
+ val actionOwner = getParentUiModel().load();
return actionParameter.getAction().newPendingParameterModelHead(actionOwner);
}
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 f352888..43b68a4 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
@@ -95,14 +95,14 @@ public class ScalarPropertyModel extends ScalarModel {
@Override
public String getCssClass() {
final String objectSpecId =
- getParentEntityModel().getTypeOfSpecification().getSpecId().asString().replace(".", "-");
+ getParentUiModel().getTypeOfSpecification().getSpecId().asString().replace(".", "-");
final String propertyId = getIdentifier();
return "isis-" + objectSpecId + "-" + propertyId;
}
@Override
public boolean whetherHidden(final Where where) {
- final ManagedObject parentAdapter = getParentEntityModel().load();
+ final ManagedObject parentAdapter = getParentUiModel().load();
final OneToOneAssociation property = getPropertyMemento().getProperty(getSpecificationLoader());
try {
final Consent visibility = property.isVisible(parentAdapter, InteractionInitiatedBy.USER, where);
@@ -114,7 +114,7 @@ public class ScalarPropertyModel extends ScalarModel {
@Override
public String whetherDisabled(final Where where) {
- final ManagedObject parentAdapter = getParentEntityModel().load();
+ final ManagedObject parentAdapter = getParentUiModel().load();
final OneToOneAssociation property = getPropertyMemento().getProperty(getSpecificationLoader());
try {
final Consent usable = property.isUsable(parentAdapter, InteractionInitiatedBy.USER, where);
@@ -132,7 +132,7 @@ public class ScalarPropertyModel extends ScalarModel {
parseableFacet = property.getSpecification().getFacet(ParseableFacet.class);
}
try {
- final ManagedObject parentAdapter = getParentEntityModel().load();
+ final ManagedObject parentAdapter = getParentUiModel().load();
final ManagedObject currentValue = property.get(parentAdapter, InteractionInitiatedBy.USER);
final ManagedObject proposedAdapter =
parseableFacet.parseTextEntry(currentValue, proposedPojoAsStr, InteractionInitiatedBy.USER);
@@ -150,7 +150,7 @@ public class ScalarPropertyModel extends ScalarModel {
@Override
public String validate(final ManagedObject proposedAdapter) {
- final ManagedObject parentAdapter = getParentEntityModel().load();
+ final ManagedObject parentAdapter = getParentUiModel().load();
final OneToOneAssociation property = getPropertyMemento().getProperty(getSpecificationLoader());
try {
final Consent valid = property.isAssociationValid(parentAdapter, proposedAdapter,
@@ -180,7 +180,7 @@ public class ScalarPropertyModel extends ScalarModel {
final PropertyMemento propertyMemento = getPropertyMemento();
final OneToOneAssociation property = propertyMemento
.getProperty(getSpecificationLoader());
- ManagedObject parentAdapter = getParentEntityModel().load();
+ ManagedObject parentAdapter = getParentUiModel().load();
return property.getDefault(parentAdapter);
}
@@ -198,7 +198,7 @@ public class ScalarPropertyModel extends ScalarModel {
final PropertyMemento propertyMemento = getPropertyMemento();
final OneToOneAssociation property = propertyMemento
.getProperty(getSpecificationLoader());
- ManagedObject parentAdapter = getParentEntityModel().load();
+ ManagedObject parentAdapter = getParentUiModel().load();
final Can<ManagedObject> choices = property.getChoices(
parentAdapter,
InteractionInitiatedBy.USER);
@@ -221,7 +221,7 @@ public class ScalarPropertyModel extends ScalarModel {
final PropertyMemento propertyMemento = getPropertyMemento();
final OneToOneAssociation property = propertyMemento.getProperty(getSpecificationLoader());
final ManagedObject parentAdapter =
- getParentEntityModel().load();
+ getParentUiModel().load();
final Can<ManagedObject> choices =
property.getAutoComplete(
parentAdapter,
@@ -284,7 +284,7 @@ public class ScalarPropertyModel extends ScalarModel {
public void reset() {
final OneToOneAssociation property = getPropertyMemento().getProperty(getSpecificationLoader());
- val parentAdapter = getParentEntityModel().load();
+ val parentAdapter = getParentUiModel().load();
setObjectFromPropertyIfVisible(this, property, parentAdapter);
}
@@ -306,7 +306,7 @@ public class ScalarPropertyModel extends ScalarModel {
public String getReasonInvalidIfAny() {
val property = getPropertyMemento().getProperty(getSpecificationLoader());
- val adapter = getParentEntityModel().load();
+ val adapter = getParentUiModel().load();
val associate = getObject();
Consent validity = property.isAssociationValid(adapter, associate, InteractionInitiatedBy.USER);
return validity.isAllowed() ? null : validity.getReason();
@@ -357,7 +357,7 @@ public class ScalarPropertyModel extends ScalarModel {
@Override
protected List<ObjectAction> calcAssociatedActions() {
- final EntityModel parentEntityModel1 = this.getParentEntityModel();
+ final EntityModel parentEntityModel1 = this.getParentUiModel();
final ManagedObject parentAdapter = parentEntityModel1.load();
final OneToOneAssociation oneToOneAssociation =
diff --git a/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/ActionModelTest.java b/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/ActionModelTest.java
index ead634b..86bdffe 100644
--- a/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/ActionModelTest.java
+++ b/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/ActionModelTest.java
@@ -27,13 +27,13 @@ import static org.hamcrest.Matchers.nullValue;
import static org.junit.Assert.assertThat;
import org.apache.isis.core.commons.internal.exceptions._Exceptions;
-import org.apache.isis.viewer.wicket.model.models.ActionModel.ParamNumAndOidString;
+import org.apache.isis.viewer.wicket.model.models.PageParameterUtil.ParamNumAndOidString;
public class ActionModelTest {
@Test
public void whenParseThenParses() throws Exception {
- final ParamNumAndOidString parsed = ActionModel.parse("3=OBJECT_OID:123")
+ final ParamNumAndOidString parsed = PageParameterUtil.parseParamContext("3=OBJECT_OID:123")
.orElseThrow(()->_Exceptions.unrecoverable("parsing failed"));
assertThat(parsed, is(not(nullValue())));
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/LinkAndLabelUtil.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/LinkAndLabelUtil.java
index 586832c..998cb07 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/LinkAndLabelUtil.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/LinkAndLabelUtil.java
@@ -39,7 +39,7 @@ public final class LinkAndLabelUtil {
final ScalarModel scalarModel,
final List<ObjectAction> associatedActions) {
- final EntityModel parentEntityModel = scalarModel.getParentEntityModel();
+ final EntityModel parentEntityModel = scalarModel.getParentUiModel();
return asActionLinksForAdditionalLinksPanel(parentEntityModel, associatedActions, scalarModel);
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptHeaderPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptHeaderPanel.java
index 0d918eb..d4561be 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptHeaderPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptHeaderPanel.java
@@ -41,7 +41,7 @@ public class ActionPromptHeaderPanel extends PanelAbstract<ActionModel> {
_Blackhole.consume(model.getTargetAdapter()); // side-effect: loads the model
- getComponentFactoryRegistry().addOrReplaceComponent(this, ComponentType.ENTITY_ICON_AND_TITLE, model.getParentEntityModel());
+ getComponentFactoryRegistry().addOrReplaceComponent(this, ComponentType.ENTITY_ICON_AND_TITLE, model.getParentUiModel());
final Label label = new Label(ID_ACTION_NAME, new IModel<String>() {
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersPanel.java
index c0bf71a..61328e7 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersPanel.java
@@ -95,7 +95,7 @@ public class ActionParametersPanel extends PanelAbstract<ActionModel> {
getComponentFactoryRegistry().addOrReplaceComponent(this, ComponentType.PARAMETERS, getActionModel());
getComponentFactoryRegistry().addOrReplaceComponent(header, ComponentType.ENTITY_ICON_AND_TITLE, actionModel
- .getParentEntityModel());
+ .getParentUiModel());
final String actionName = getActionModel().getAction().getName();
header.add(new Label(ID_ACTION_NAME, Model.of(actionName)));
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditPanel.java
index 59ead05..e93f2ac 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditPanel.java
@@ -51,7 +51,7 @@ public class PropertyEditPanel extends PanelAbstract<ScalarPropertyModel> {
public PropertyEditPanel(
final String id,
final ScalarPropertyModel scalarModel) {
- super(id, new ScalarPropertyModel(scalarModel.getParentEntityModel(), scalarModel.getPropertyMemento(),
+ super(id, new ScalarPropertyModel(scalarModel.getParentUiModel(), scalarModel.getPropertyMemento(),
EntityModel.Mode.EDIT, EntityModel.RenderingHint.REGULAR));
buildGui(scalarModel);
@@ -83,7 +83,7 @@ public class PropertyEditPanel extends PanelAbstract<ScalarPropertyModel> {
{
getComponentFactoryRegistry().addOrReplaceComponent(this, ComponentType.PROPERTY_EDIT_FORM, getScalarModel());
- getComponentFactoryRegistry().addOrReplaceComponent(header, ComponentType.ENTITY_ICON_AND_TITLE, scalarModel.getParentEntityModel());
+ getComponentFactoryRegistry().addOrReplaceComponent(header, ComponentType.ENTITY_ICON_AND_TITLE, scalarModel.getParentUiModel());
final OneToOneAssociation property = getScalarModel().getPropertyMemento().getProperty(scalarModel.getSpecificationLoader());
final String propertyName = property.getName();
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyFormExecutorStrategy.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyFormExecutorStrategy.java
index 894390d..a88af1e 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyFormExecutorStrategy.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyFormExecutorStrategy.java
@@ -44,7 +44,7 @@ public class PropertyFormExecutorStrategy implements FormExecutorStrategy<Scalar
@Override
public ManagedObject obtainTargetAdapter() {
- return model.getParentEntityModel().load();
+ return model.getParentUiModel().load();
}
@Override
@@ -65,7 +65,7 @@ public class PropertyFormExecutorStrategy implements FormExecutorStrategy<Scalar
val resultAdapter = this.model.applyValue(targetAdapter);
if (resultAdapter != targetAdapter) {
- this.model.getParentEntityModel().setObject(targetAdapter);
+ this.model.getParentUiModel().setObject(targetAdapter);
}
return resultAdapter;
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/propertyheader/PropertyEditPromptHeaderPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/propertyheader/PropertyEditPromptHeaderPanel.java
index 507202c..e7e6768 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/propertyheader/PropertyEditPromptHeaderPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/propertyheader/PropertyEditPromptHeaderPanel.java
@@ -38,7 +38,7 @@ public class PropertyEditPromptHeaderPanel extends PanelAbstract<ScalarPropertyM
public PropertyEditPromptHeaderPanel(String id, final ScalarPropertyModel model) {
super(id, model);
- val targetAdapter = model.getParentEntityModel().load();
+ val targetAdapter = model.getParentUiModel().load();
getComponentFactoryRegistry().addOrReplaceComponent(
this,
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 5d40103..1408c23 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -269,7 +269,7 @@ implements ScalarModelProvider {
ScalarModel model = getModel();
final CssClassFacet facet = model.getFacet(CssClassFacet.class);
if(facet != null) {
- val parentAdapter = model.getParentEntityModel().load();
+ val parentAdapter = model.getParentUiModel().load();
final String cssClass = facet.cssClass(parentAdapter);
CssClassAppender.appendCssClassTo(this, cssClass);
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index 2568281..e047423 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -459,7 +459,7 @@ implements ScalarModelSubscriber2 {
if(facet != null) {
val parentAdapter =
- model.getParentEntityModel().load();
+ model.getParentUiModel().load();
final String cssClass = facet.cssClass(parentAdapter);
CssClassAppender.appendCssClassTo(this, cssClass);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
index a419889..6f659fd 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
@@ -56,12 +56,12 @@ import org.apache.isis.core.security.authentication.AuthenticationSession;
import org.apache.isis.core.security.authentication.MessageBroker;
import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
import org.apache.isis.core.webapp.context.memento.ObjectMemento;
+import org.apache.isis.viewer.common.model.HasParentUiModel;
import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
import org.apache.isis.viewer.wicket.model.models.ActionModel;
import org.apache.isis.viewer.wicket.model.models.BookmarkableModel;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.FormExecutor;
-import org.apache.isis.viewer.wicket.model.models.ParentEntityModelProvider;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisBlobOrClobPanelAbstract;
import org.apache.isis.viewer.wicket.ui.errors.JGrowlUtil;
@@ -72,7 +72,7 @@ import lombok.val;
import lombok.extern.log4j.Log4j2;
@Log4j2
-public final class FormExecutorDefault<M extends BookmarkableModel<ManagedObject> & ParentEntityModelProvider>
+public final class FormExecutorDefault<M extends BookmarkableModel<ManagedObject> & HasParentUiModel<EntityModel>>
implements FormExecutor {
private static final long serialVersionUID = 1L;
@@ -106,7 +106,7 @@ implements FormExecutor {
Command command = null;
ManagedObject targetAdapter = null;
- final EntityModel targetEntityModel = model.getParentEntityModel();
+ final EntityModel targetEntityModel = model.getParentUiModel();
try {
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorStrategy.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorStrategy.java
index 01242cf..633840c 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorStrategy.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorStrategy.java
@@ -21,10 +21,11 @@ package org.apache.isis.viewer.wicket.ui.panels;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.viewer.common.model.HasParentUiModel;
import org.apache.isis.viewer.wicket.model.models.BookmarkableModel;
-import org.apache.isis.viewer.wicket.model.models.ParentEntityModelProvider;
+import org.apache.isis.viewer.wicket.model.models.EntityModel;
-public interface FormExecutorStrategy<M extends BookmarkableModel<ManagedObject> & ParentEntityModelProvider> {
+public interface FormExecutorStrategy<M extends BookmarkableModel<ManagedObject> & HasParentUiModel<EntityModel>> {
M getModel();
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormAbstract.java
index c37833d..c625bef 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormAbstract.java
@@ -40,13 +40,14 @@ import org.apache.wicket.util.string.AppendingStringBuffer;
import org.apache.isis.core.commons.internal.collections._Lists;
import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.viewer.common.model.HasParentUiModel;
import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider;
import org.apache.isis.viewer.wicket.model.models.BookmarkableModel;
+import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.FormExecutor;
import org.apache.isis.viewer.wicket.model.models.FormExecutorContext;
-import org.apache.isis.viewer.wicket.model.models.ParentEntityModelProvider;
import org.apache.isis.viewer.wicket.model.models.ScalarPropertyModel;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarModelSubscriber2;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract2;
@@ -57,7 +58,7 @@ import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
import org.apache.isis.viewer.wicket.ui.util.Components;
public abstract class PromptFormAbstract<T extends BookmarkableModel<ManagedObject>
-& ParentEntityModelProvider
+& HasParentUiModel<EntityModel>
& IModel<ManagedObject>
& FormExecutorContext>
extends FormAbstract<ManagedObject>