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 <ahu...@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>