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/04/06 10:06:24 UTC
[isis] 04/04: ISIS-2340: refactors ActionLinkFactoryForWicket to
store linkId in factory instance
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 f90815b127b6872dced1d51b6a5231e6d4cffe2a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Apr 6 12:06:06 2020 +0200
ISIS-2340: refactors ActionLinkFactoryForWicket to store linkId in
factory instance
---
.../entityactions/EntityActionLinkFactory.java | 16 +++++++---------
.../actionmenu/entityactions/LinkAndLabelUtil.java | 4 ++--
.../actionmenu/serviceactions/CssMenuItem.java | 3 +--
.../serviceactions/ServiceActionLinkFactory.java | 13 +++++++------
.../actionmenu/serviceactions/ServiceAndAction.java | 3 ++-
...toryAbstract.java => ActionLinkFactoryForWicket.java} | 13 +++++++------
6 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
index f7db9aa..92e2a7c 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
@@ -27,40 +27,38 @@ import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.model.models.ToggledMementosProvider;
-import org.apache.isis.viewer.wicket.ui.components.widgets.linkandlabel.ActionLinkFactoryAbstract;
+import org.apache.isis.viewer.wicket.ui.components.widgets.linkandlabel.ActionLinkFactoryForWicket;
import lombok.val;
-public final class EntityActionLinkFactory extends ActionLinkFactoryAbstract {
+public final class EntityActionLinkFactory extends ActionLinkFactoryForWicket {
private static final long serialVersionUID = 1L;
public EntityActionLinkFactory(
+ final String linkId,
final EntityModel entityModel,
final ScalarModel scalarModelForAssociationIfAny) {
- super(entityModel, scalarModelForAssociationIfAny);
+ super(linkId, entityModel, scalarModelForAssociationIfAny);
}
@Override
public LinkAndLabel newLink(
final ObjectAction objectAction,
- final String linkId,
final ToggledMementosProvider toggledMementosProviderIfAny) {
val objectAdapter = this.targetEntityModel.load();
-
-
val isBookmarkable = ManagedObject.isIdentifiable(objectAdapter);
if (!isBookmarkable) {
throw new IllegalArgumentException(String.format(
"Object '%s' is not persistent/bookmarkable.", objectAdapter.titleString(null)));
}
- // previously we computed visibility and enablement here, but
- // this is now done at the point of rendereing
+ // previously we computed visibility and usability here, but
+ // this is now done at the point of rendering
- final AbstractLink link = super.newLink(linkId, objectAction, toggledMementosProviderIfAny);
+ final AbstractLink link = super.newLinkComponent(objectAction, toggledMementosProviderIfAny);
return newLinkAndLabel(objectAdapter, objectAction, link);
}
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 2c88245..2c0ed85 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
@@ -74,12 +74,12 @@ public final class LinkAndLabelUtil {
final ScalarModel scalarModelIfAny,
final ToggledMementosProvider toggledMementosProviderIfAny) {
- val linkFactory = new EntityActionLinkFactory(parentEntityModel, scalarModelIfAny);
+ val linkFactory = new EntityActionLinkFactory(AdditionalLinksPanel.ID_ADDITIONAL_LINK, parentEntityModel, scalarModelIfAny);
return _NullSafe.stream(objectActions)
.map((ObjectAction objectAction) ->
linkFactory.newLink(
- objectAction, AdditionalLinksPanel.ID_ADDITIONAL_LINK, toggledMementosProviderIfAny))
+ objectAction, toggledMementosProviderIfAny))
.filter(_NullSafe::isPresent)
.collect(Collectors.toList());
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
index 3668945..8fbe1d8 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
@@ -31,7 +31,6 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.viewer.common.model.menuitem.MenuItemUiModelAbstract;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.ui.components.actionmenu.CssClassFaBehavior;
-import org.apache.isis.viewer.wicket.ui.pages.PageAbstract;
import org.apache.isis.viewer.wicket.ui.util.Components;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
import org.apache.isis.viewer.wicket.ui.util.Tooltips;
@@ -88,7 +87,7 @@ implements Serializable {
}
// build the link
- val linkAndLabel = actionLinkFactory.newLink(objectAction, PageAbstract.ID_MENU_LINK, null);
+ val linkAndLabel = actionLinkFactory.newLink(objectAction, null);
if (linkAndLabel == null) {
// can only get a null if invisible, so this should not happen given the visibility guard above
return;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionLinkFactory.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionLinkFactory.java
index 95af8a8..f7d4348 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionLinkFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionLinkFactory.java
@@ -25,27 +25,28 @@ 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.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.ToggledMementosProvider;
-import org.apache.isis.viewer.wicket.ui.components.widgets.linkandlabel.ActionLinkFactoryAbstract;
+import org.apache.isis.viewer.wicket.ui.components.widgets.linkandlabel.ActionLinkFactoryForWicket;
import lombok.val;
-class ServiceActionLinkFactory extends ActionLinkFactoryAbstract {
+class ServiceActionLinkFactory extends ActionLinkFactoryForWicket {
private static final long serialVersionUID = 1L;
- ServiceActionLinkFactory(final EntityModel serviceEntityModel) {
- super(serviceEntityModel, null);
+ ServiceActionLinkFactory(
+ final String linkId,
+ final EntityModel serviceEntityModel) {
+ super(linkId, serviceEntityModel, null);
}
@Override
public LinkAndLabel newLink(
final ObjectAction objectAction,
- final String linkId,
final ToggledMementosProvider toggledMementosProviderIfAny) {
val objectAdapter = this.targetEntityModel.load();
- final AbstractLink link = super.newLink(linkId, objectAction, toggledMementosProviderIfAny);
+ final AbstractLink link = super.newLinkComponent(objectAction, toggledMementosProviderIfAny);
return newLinkAndLabel(objectAdapter, objectAction, link);
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java
index 2326d5b..3931b82 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java
@@ -20,6 +20,7 @@ package org.apache.isis.viewer.wicket.ui.components.actionmenu.serviceactions;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
+import org.apache.isis.viewer.wicket.ui.pages.PageAbstract;
class ServiceAndAction {
final String actionName;
@@ -37,7 +38,7 @@ class ServiceAndAction {
this.actionName = actionName;
this.serviceEntityModel = serviceEntityModel;
this.objectAction = objectAction;
- this.linkAndLabelFactory = new ServiceActionLinkFactory(serviceEntityModel);
+ this.linkAndLabelFactory = new ServiceActionLinkFactory(PageAbstract.ID_MENU_LINK, serviceEntityModel);
this.isFirstSection = isFirstSection;
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryForWicket.java
similarity index 98%
rename from viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
rename to viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryForWicket.java
index 8cbae79..a65ca40 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryForWicket.java
@@ -67,29 +67,30 @@ import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
import lombok.val;
-public abstract class ActionLinkFactoryAbstract
+public abstract class ActionLinkFactoryForWicket
implements ActionLinkFactory<LinkAndLabel>, Serializable {
private static final long serialVersionUID = 1L;
+ protected final String linkId;
protected final EntityModel targetEntityModel;
private final ScalarModel scalarModelForAssociationIfAny;
- protected ActionLinkFactoryAbstract(
+ protected ActionLinkFactoryForWicket(
+ final String linkId,
final EntityModel targetEntityModel,
final ScalarModel scalarModelForAssociationIfAny) {
+ this.linkId = linkId;
this.targetEntityModel = targetEntityModel;
this.scalarModelForAssociationIfAny = scalarModelForAssociationIfAny;
}
public abstract LinkAndLabel newLink(
ObjectAction objectAction,
- String linkId,
ToggledMementosProvider toggledMementosProviderIfAny);
- protected ActionLink newLink(
- final String linkId,
+ protected ActionLink newLinkComponent(
final ObjectAction action,
final ToggledMementosProvider toggledMementosProviderIfAny) {
@@ -135,7 +136,7 @@ implements ActionLinkFactory<LinkAndLabel>, Serializable {
}
private ActionPrompt performOnClick(final AjaxRequestTarget target) {
- return ActionLinkFactoryAbstract.this.onClick(this, target);
+ return ActionLinkFactoryForWicket.this.onClick(this, target);
}
};