ISIS-537: removed defunct/commented out code and unused parameters. Also, since an ActionPrompt is always available (from the page), this change in effect deprecates/obsoletes the support for non-modal dialogs for action parameter forms.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/803159fe Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/803159fe Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/803159fe Branch: refs/heads/master Commit: 803159fe3751440e9ebc5eddd8498409a74c0f27 Parents: 9de5ba8 Author: Dan Haywood <[email protected]> Authored: Tue Nov 25 07:53:02 2014 +0000 Committer: Dan Haywood <[email protected]> Committed: Tue Nov 25 07:53:02 2014 +0000 ---------------------------------------------------------------------- .../viewer/wicket/model/models/ActionModel.java | 12 -- .../additionallinks/EntityActionUtil.java | 9 +- .../cssmenu/AppActionsCssMenuLinkFactory.java | 6 +- .../components/collection/CollectionPanel.html | 1 - .../components/collection/CollectionPanel.java | 31 +--- .../collection/bulk/BulkActionsLinkFactory.java | 4 +- .../entity/EntityActionLinkFactory.java | 5 +- .../entity/properties/EntityPropertiesForm.java | 1 - .../components/scalars/ScalarPanelAbstract.java | 2 +- .../StandaloneCollectionPanel.java | 2 +- .../widgets/cssmenu/ActionLinkFactory.java | 4 +- .../cssmenu/ActionLinkFactoryAbstract.java | 173 ++++++++----------- .../components/widgets/cssmenu/CssMenuItem.java | 6 +- 13 files changed, 82 insertions(+), 174 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/isis/blob/803159fe/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java index 13401c2..3243340 100644 --- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java +++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java @@ -524,18 +524,6 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> { // ////////////////////////////////////// -// private ActionPrompt actionPrompt; -// -// public void setActionPrompt(ActionPrompt actionPrompt) { -// this.actionPrompt = actionPrompt; -// } -// -// public ActionPrompt getActionPrompt() { -// return actionPrompt; -// } - - // ////////////////////////////////////// - public static RecoverableException getApplicationExceptionIfAny(Exception ex) { Iterable<RecoverableException> appEx = Iterables.filter(Throwables.getCausalChain(ex), RecoverableException.class); Iterator<RecoverableException> iterator = appEx.iterator(); http://git-wip-us.apache.org/repos/asf/isis/blob/803159fe/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java index 993e699..3dc5598 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java @@ -23,7 +23,6 @@ import java.util.Comparator; import java.util.List; import com.google.common.base.Function; import com.google.common.collect.Lists; -import org.apache.wicket.Component; import org.apache.wicket.Session; import org.apache.isis.applib.annotation.Where; import org.apache.isis.applib.filter.Filter; @@ -43,7 +42,6 @@ import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation; import org.apache.isis.core.runtime.system.DeploymentType; import org.apache.isis.viewer.wicket.model.links.LinkAndLabel; import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento; -import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider; import org.apache.isis.viewer.wicket.model.models.EntityModel; import org.apache.isis.viewer.wicket.model.models.ScalarModel; import org.apache.isis.viewer.wicket.ui.components.entity.EntityActionLinkFactory; @@ -57,7 +55,6 @@ public final class EntityActionUtil { public static void appendAdditionalLinksForAssociation( final ScalarModel scalarModel, - final Component owningComponent, final DeploymentType deploymentType, final String id, final List<LinkAndLabel> entityActionLinks) { @@ -68,14 +65,11 @@ public final class EntityActionUtil { final ObjectAdapterMemento parentMemento = scalarModel.getParentObjectAdapterMemento(); final EntityModel parentEntityModel = new EntityModel(parentMemento); - //final ActionPromptProvider actionPromptProvider = ActionPromptProvider.Util.getFrom(owningComponent); - final ActionPromptProvider actionPromptProvider = null; final OneToOneAssociation oneToOneAssociation = scalarModel.getPropertyMemento().getProperty(); appendAdditionalLinksForAssociation( parentEntityModel, oneToOneAssociation, - actionPromptProvider, deploymentType, id, entityActionLinks); @@ -84,7 +78,6 @@ public final class EntityActionUtil { public static void appendAdditionalLinksForAssociation( final EntityModel entityModel, final ObjectAssociation association, - final ActionPromptProvider actionPromptProvider, final DeploymentType deploymentType, final String linkId, final List<LinkAndLabel> entityActionLinks) { @@ -113,7 +106,7 @@ public final class EntityActionUtil { @Override public LinkAndLabel apply(ObjectAction objectAction) { - return linkFactory.newLink(adapterMemento, objectAction, linkId, actionPromptProvider); + return linkFactory.newLink(adapterMemento, objectAction, linkId); } }); entityActionLinks.addAll(linkAndLabels); http://git-wip-us.apache.org/repos/asf/isis/blob/803159fe/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java index 3394097..c25d0dc 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java @@ -26,7 +26,6 @@ import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChec import org.apache.isis.core.metamodel.spec.feature.ObjectAction; import org.apache.isis.viewer.wicket.model.links.LinkAndLabel; import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento; -import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider; import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.ActionLinkFactoryAbstract; class AppActionsCssMenuLinkFactory extends ActionLinkFactoryAbstract { @@ -37,12 +36,11 @@ class AppActionsCssMenuLinkFactory extends ActionLinkFactoryAbstract { public LinkAndLabel newLink( final ObjectAdapterMemento adapterMemento, final ObjectAction action, - final String linkId, - final ActionPromptProvider actionPromptProvider) { + final String linkId) { ObjectAdapter objectAdapter = adapterMemento.getObjectAdapter(ConcurrencyChecking.NO_CHECK); - final AbstractLink link = newLink(linkId, objectAdapter, action, actionPromptProvider); + final AbstractLink link = newLink(linkId, objectAdapter, action); return newLinkAndLabel(action, link, null); } http://git-wip-us.apache.org/repos/asf/isis/blob/803159fe/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.html ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.html index 4921aeb..569d0a6 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.html +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.html @@ -27,7 +27,6 @@ <div class="collectionPanel collectionNameAndContentsComponentType"> <div class="collectionContents" wicket:id="collectionContents"></div> <span wicket:id="feedback"></span> - <div xxwicket:id="actionPromptModalWindow"></div> </div> </wicket:panel> </body> http://git-wip-us.apache.org/repos/asf/isis/blob/803159fe/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java index b6eb312..2f116f9 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java @@ -30,8 +30,6 @@ import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation; import org.apache.isis.core.runtime.system.DeploymentType; import org.apache.isis.core.runtime.system.context.IsisContext; import org.apache.isis.viewer.wicket.model.links.LinkAndLabel; -import org.apache.isis.viewer.wicket.model.models.ActionPrompt; -import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider; import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel; import org.apache.isis.viewer.wicket.model.models.EntityModel; import org.apache.isis.viewer.wicket.ui.ComponentType; @@ -45,13 +43,12 @@ import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract; * Panel for rendering entity collection; analogous to (any concrete subclass * of) {@link ScalarPanelAbstract}. */ -public class CollectionPanel extends PanelAbstract<EntityCollectionModel> implements ActionPromptProvider, CollectionSelectorProvider { +public class CollectionPanel extends PanelAbstract<EntityCollectionModel> implements CollectionSelectorProvider { private static final long serialVersionUID = 1L; private static final String ID_FEEDBACK = "feedback"; - private static final String ID_ACTION_PROMPT_MODAL_WINDOW = "actionPromptModalWindow"; private Component collectionContents; @@ -79,13 +76,9 @@ public class CollectionPanel extends PanelAbstract<EntityCollectionModel> implem final OneToManyAssociation otma) { super(id, collectionModel); - //addActionPromptModalWindow(); - final List<LinkAndLabel> entityActionLinks = Lists.newArrayList(); - //EntityActionUtil.appendAdditionalLinksForAssociation(entityModel, otma, this, getDeploymentType(), "additionalLink", entityActionLinks); -// EntityActionUtil.appendAdditionalLinksForAssociation(entityModel, otma, ActionPromptProvider.Util.getFrom(this), getDeploymentType(), "additionalLink", entityActionLinks); - EntityActionUtil.appendAdditionalLinksForAssociation(entityModel, otma, null, getDeploymentType(), "additionalLink", entityActionLinks); + EntityActionUtil.appendAdditionalLinksForAssociation(entityModel, otma, getDeploymentType(), "additionalLink", entityActionLinks); collectionModel.addEntityActions(entityActionLinks); } @@ -122,26 +115,6 @@ public class CollectionPanel extends PanelAbstract<EntityCollectionModel> implem //endregion - //region > ActionPromptModalWindowProvider - - @Override - public ActionPrompt getActionPrompt() { - return ActionPromptProvider.Util.getFrom(this).getActionPrompt(); - } - -// private ActionPromptModalWindow actionPromptModalWindow; -// @Override -// public ActionPromptModalWindow getActionPrompt() { -// return ActionPromptModalWindow.getActionPromptModalWindowIfEnabled(actionPromptModalWindow); -// } -// -// private void addActionPromptModalWindow() { -// this.actionPromptModalWindow = ActionPromptModalWindow.newModalWindow(ID_ACTION_PROMPT_MODAL_WINDOW); -// addOrReplace(actionPromptModalWindow); -// } - - //endregion - //region > dependencies http://git-wip-us.apache.org/repos/asf/isis/blob/803159fe/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java index 1a59172..1627c6d 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java @@ -44,7 +44,6 @@ import org.apache.isis.viewer.wicket.model.links.LinkAndLabel; import org.apache.isis.viewer.wicket.model.mementos.ActionMemento; import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento; import org.apache.isis.viewer.wicket.model.models.ActionModel; -import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider; import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel; import org.apache.isis.viewer.wicket.ui.actionresponse.ActionResultResponse; import org.apache.isis.viewer.wicket.ui.actionresponse.ActionResultResponseType; @@ -72,8 +71,7 @@ public final class BulkActionsLinkFactory implements ActionLinkFactory { public LinkAndLabel newLink( final ObjectAdapterMemento objectAdapterMemento, final ObjectAction objectAction, - final String linkId, - final ActionPromptProvider actionPromptProvider) { + final String linkId) { final ActionMemento actionMemento = new ActionMemento(objectAction); final AbstractLink link = new Link<Object>(linkId) { http://git-wip-us.apache.org/repos/asf/isis/blob/803159fe/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java index 7cd57d6..cfafab7 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java @@ -49,8 +49,7 @@ public final class EntityActionLinkFactory extends ActionLinkFactoryAbstract { public LinkAndLabel newLink( final ObjectAdapterMemento adapterMemento, final ObjectAction action, - final String linkId, - final ActionPromptProvider actionPromptProvider) { + final String linkId) { final ObjectAdapter adapter = adapterMemento.getObjectAdapter(ConcurrencyChecking.NO_CHECK); @@ -68,7 +67,7 @@ public final class EntityActionLinkFactory extends ActionLinkFactoryAbstract { } - final AbstractLink link = newLink(linkId, adapter, action, actionPromptProvider); + final AbstractLink link = newLink(linkId, adapter, action); final Consent usability = action.isUsable(session, adapter, Where.OBJECT_FORMS); final String disabledReasonIfAny = usability.getReason(); http://git-wip-us.apache.org/repos/asf/isis/blob/803159fe/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java index ae5e862..c666314 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java @@ -261,7 +261,6 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements EntityActionUtil.appendAdditionalLinksForAssociation( entityModel, otoa, - this, getDeploymentType(), ID_ADDITIONAL_LINK, entityActions); http://git-wip-us.apache.org/repos/asf/isis/blob/803159fe/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java index b8acec6..66b07c2 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java @@ -294,7 +294,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp // find the links... final List<LinkAndLabel> entityActions = Lists.newArrayList(); - EntityActionUtil.appendAdditionalLinksForAssociation(this.scalarModel, this, getDeploymentType(), ID_ADDITIONAL_LINK, entityActions); + EntityActionUtil.appendAdditionalLinksForAssociation(this.scalarModel, getDeploymentType(), ID_ADDITIONAL_LINK, entityActions); // ... and add them to the panel AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS, entityActions); } http://git-wip-us.apache.org/repos/asf/isis/blob/803159fe/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java index 2677297..279588f 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java @@ -163,7 +163,7 @@ public class StandaloneCollectionPanel extends PanelAbstract<EntityCollectionMod List<LinkAndLabel> links = Lists.transform(bulkActions, new Function<ObjectAction, LinkAndLabel>(){ @Override public LinkAndLabel apply(ObjectAction objectAction) { - return linkFactory.newLink(null, objectAction, ID_ADDITIONAL_LINK, StandaloneCollectionPanel.this); + return linkFactory.newLink(null, objectAction, ID_ADDITIONAL_LINK); } }); http://git-wip-us.apache.org/repos/asf/isis/blob/803159fe/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactory.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactory.java index c1bf6bd..9e3ca0a 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactory.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactory.java @@ -23,13 +23,11 @@ import java.io.Serializable; import org.apache.isis.core.metamodel.spec.feature.ObjectAction; import org.apache.isis.viewer.wicket.model.links.LinkAndLabel; import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento; -import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider; public interface ActionLinkFactory extends Serializable { LinkAndLabel newLink( final ObjectAdapterMemento adapter, final ObjectAction noAction, - final String linkId, - final ActionPromptProvider actionPromptProvider); + final String linkId); } http://git-wip-us.apache.org/repos/asf/isis/blob/803159fe/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactoryAbstract.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactoryAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactoryAbstract.java index 50c3478..5e41856 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactoryAbstract.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactoryAbstract.java @@ -23,7 +23,6 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons; import org.apache.wicket.Application; import org.apache.wicket.Component; -import org.apache.wicket.Page; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; import org.apache.wicket.ajax.markup.html.AjaxLink; @@ -34,13 +33,10 @@ import org.apache.wicket.markup.html.form.FormComponent; import org.apache.wicket.markup.html.link.AbstractLink; import org.apache.wicket.model.Model; import org.apache.wicket.request.IRequestHandler; -import org.apache.wicket.request.mapper.parameter.PageParameters; import org.apache.wicket.util.visit.IVisit; import org.apache.wicket.util.visit.IVisitor; import org.apache.isis.applib.RecoverableException; -import org.apache.isis.applib.annotation.ActionSemantics; import org.apache.isis.core.metamodel.adapter.ObjectAdapter; -import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking; import org.apache.isis.core.metamodel.spec.ObjectSpecification; import org.apache.isis.core.metamodel.spec.feature.ObjectAction; import org.apache.isis.core.runtime.system.context.IsisContext; @@ -48,7 +44,6 @@ import org.apache.isis.viewer.wicket.model.links.LinkAndLabel; import org.apache.isis.viewer.wicket.model.models.ActionModel; import org.apache.isis.viewer.wicket.model.models.ActionPrompt; import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider; -import org.apache.isis.viewer.wicket.model.models.PageType; import org.apache.isis.viewer.wicket.ui.ComponentType; import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry; import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor; @@ -58,9 +53,7 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract; import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.AjaxDeferredBehaviour.OpenUrlStrategy; import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry; import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistryAccessor; -import org.apache.isis.viewer.wicket.ui.pages.actionprompt.ActionPromptPage; import org.apache.isis.viewer.wicket.ui.util.CssClassAppender; -import org.apache.isis.viewer.wicket.ui.util.Links; public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory { @@ -75,130 +68,100 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory { } /** - * Either creates a link for the action be rendered in a {@link ModalWindow}, or (if none can be - * {@link ActionPromptProvider#getActionPrompt() provided}, or creates a link to - * the {@link ActionPromptPage} (ie the {@link PageClassRegistry registered page} for - * {@link PageType#ACTION_PROMPT action}s). - * - * <p> - * If the action's {@link ObjectAction#getSemantics() semantics} are {@link ActionSemantics.Of#SAFE safe}, then - * concurrency checking is disabled; otherwise it is enforced. + * Either creates a link for the action be rendered in a {@link ModalWindow}. */ protected AbstractLink newLink( final String linkId, final ObjectAdapter objectAdapter, - final ObjectAction action, - final ActionPromptProvider actionPromptProvider) { + final ObjectAction action) { - //final ActionPrompt actionPrompt = actionPromptProvider.getActionPrompt(); - //if(actionPrompt != null) { + final ActionModel actionModel = ActionModel.create(objectAdapter, action); - if(true) { - final ActionModel actionModel = ActionModel.create(objectAdapter, action); - //actionModel.setActionPrompt(actionPrompt); - - final AjaxDeferredBehaviour ajaxDeferredBehaviour = determineDeferredBehaviour(action, actionModel); + final AjaxDeferredBehaviour ajaxDeferredBehaviour = determineDeferredBehaviour(action, actionModel); - final AbstractLink link = new AjaxLink<Object>(linkId) { - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { + final AbstractLink link = new AjaxLink<Object>(linkId) { + private static final long serialVersionUID = 1L; - final ActionPrompt actionPrompt = ActionPromptProvider.Util.getFrom(getPage()).getActionPrompt(); - if(ajaxDeferredBehaviour != null) { - ajaxDeferredBehaviour.initiate(target); - } else { - ActionPromptHeaderPanel titlePanel = new ActionPromptHeaderPanel(actionPrompt.getTitleId(), actionModel); - final ActionPanel actionPanel = - (ActionPanel) getComponentFactoryRegistry().createComponent( - ComponentType.ACTION_PROMPT, actionPrompt.getContentId(), actionModel); + @Override + public void onClick(AjaxRequestTarget target) { - actionPanel.setShowHeader(false); + final ActionPrompt actionPrompt = ActionPromptProvider.Util.getFrom(getPage()).getActionPrompt(); + if(ajaxDeferredBehaviour != null) { + ajaxDeferredBehaviour.initiate(target); + } else { + ActionPromptHeaderPanel titlePanel = new ActionPromptHeaderPanel(actionPrompt.getTitleId(), actionModel); + final ActionPanel actionPanel = + (ActionPanel) getComponentFactoryRegistry().createComponent( + ComponentType.ACTION_PROMPT, actionPrompt.getContentId(), actionModel); - actionPrompt.setTitle(titlePanel, target); - actionPrompt.setPanel(actionPanel, target); - actionPanel.setActionPrompt(actionPrompt); - actionPrompt.showPrompt(target); + actionPanel.setShowHeader(false); - focusOnFirstParameter(target, actionPanel); - } + actionPrompt.setTitle(titlePanel, target); + actionPrompt.setPanel(actionPanel, target); + actionPanel.setActionPrompt(actionPrompt); + actionPrompt.showPrompt(target); + + focusOnFirstParameter(target, actionPanel); } + } + + private void focusOnFirstParameter(AjaxRequestTarget target, ActionPanel actionPanel) { - private void focusOnFirstParameter(AjaxRequestTarget target, ActionPanel actionPanel) { - - // first, force all parameters to build themselves... - actionPanel.visitChildren(new IVisitor<Component, Component>() { - @Override - public void component(Component object, IVisit<Component> visit) { - if (object instanceof ScalarPanelAbstract) { - ScalarPanelAbstract spa = (ScalarPanelAbstract) object; - spa.forceBuildGui(); - visit.dontGoDeeper(); - } + // first, force all parameters to build themselves... + actionPanel.visitChildren(new IVisitor<Component, Component>() { + @Override + public void component(Component object, IVisit<Component> visit) { + if (object instanceof ScalarPanelAbstract) { + ScalarPanelAbstract spa = (ScalarPanelAbstract) object; + spa.forceBuildGui(); + visit.dontGoDeeper(); } - }); - - // second, go searching for the first <input> in the action panel. - final Component actionPanelFirstParam = actionPanel.visitChildren(new IVisitor<Component, Component>() { - @Override - public void component(Component object, IVisit<Component> visit) { - if (object instanceof FormComponent && - !"scalarIfCompact".equals(object.getId()) && - object.getOutputMarkupId()) { - // there are components for 'compact' and 'regular'; we want the 'regular' one - // also double check that has outputMarkupId enabled (prereq for setting focus) - visit.stop(object); - } + } + }); + + // second, go searching for the first <input> in the action panel. + final Component actionPanelFirstParam = actionPanel.visitChildren(new IVisitor<Component, Component>() { + @Override + public void component(Component object, IVisit<Component> visit) { + if (object instanceof FormComponent && + !"scalarIfCompact".equals(object.getId()) && + object.getOutputMarkupId()) { + // there are components for 'compact' and 'regular'; we want the 'regular' one + // also double check that has outputMarkupId enabled (prereq for setting focus) + visit.stop(object); } - }); - - // third, if found then use Wicket API to focus on this component - if(actionPanelFirstParam != null) { - target.focusComponent(actionPanelFirstParam); } - } + }); - @Override - protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { - super.updateAjaxAttributes(attributes); - - // allow the event to bubble so the menu is hidden after click on an item - attributes.setEventPropagation(AjaxRequestAttributes.EventPropagation.BUBBLE); + // third, if found then use Wicket API to focus on this component + if(actionPanelFirstParam != null) { + target.focusComponent(actionPanelFirstParam); } + } - @Override - protected void onComponentTag(ComponentTag tag) { - super.onComponentTag(tag); - - Buttons.fixDisabledState(this, tag); - } - }; + @Override + protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { + super.updateAjaxAttributes(attributes); - if(ajaxDeferredBehaviour != null) { - link.add(ajaxDeferredBehaviour); + // allow the event to bubble so the menu is hidden after click on an item + attributes.setEventPropagation(AjaxRequestAttributes.EventPropagation.BUBBLE); } - link.add(new CssClassAppender("noVeil")); + @Override + protected void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); - return link; - - } else { - - // use the action semantics to determine whether invoking this action will require a concurrency check or not - // if it's "safe", then we'll just continue without any checking. - final ConcurrencyChecking concurrencyChecking = ConcurrencyChecking.concurrencyCheckingFor(action.getSemantics()); - final PageParameters pageParameters = ActionModel.createPageParameters(objectAdapter, action, concurrencyChecking); - final Class<? extends Page> pageClass = getPageClassRegistry().getPageClass(PageType.ACTION_PROMPT); - AbstractLink link = Links.newBookmarkablePageLink(linkId, pageParameters, pageClass); - - // special case handling if this a no-arg action is returning a URL - if(action.getParameterCount()==0) { - addTargetBlankIfActionReturnsUrl(link, action); + Buttons.fixDisabledState(this, tag); } + }; - return link; + if(ajaxDeferredBehaviour != null) { + link.add(ajaxDeferredBehaviour); } + + link.add(new CssClassAppender("noVeil")); + + return link; } private static AjaxDeferredBehaviour determineDeferredBehaviour(final ObjectAction action, final ActionModel actionModel) { http://git-wip-us.apache.org/repos/asf/isis/blob/803159fe/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java index 12ea621..b57c630 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java @@ -314,8 +314,8 @@ public class CssMenuItem implements Serializable { // build the link final LinkAndLabel linkAndLabel = cssMenuContext.getCssMenuLinkFactory().newLink( - targetAdapterMemento, objectAction, PageAbstract.ID_MENU_LINK, - cssMenuContext.getActionPromptProvider()); + targetAdapterMemento, objectAction, PageAbstract.ID_MENU_LINK + ); if(linkAndLabel==null) { // can only get a null if invisible, so this should not happen given guard above return null; @@ -393,7 +393,7 @@ public class CssMenuItem implements Serializable { final ObjectAction objectAction, final CssMenuBuilder.CssMenuContext cssMenuContext) { - final LinkAndLabel linkAndLabel = cssMenuContext.getCssMenuLinkFactory().newLink(null, objectAction, PageAbstract.ID_MENU_LINK, cssMenuContext.getActionPromptProvider()); + final LinkAndLabel linkAndLabel = cssMenuContext.getCssMenuLinkFactory().newLink(null, objectAction, PageAbstract.ID_MENU_LINK); final AbstractLink link = linkAndLabel.getLink(); final String actionLabel = linkAndLabel.getLabel();
