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);
             }
 
         };