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:32:10 UTC
[isis] branch master updated: ISIS-2340: refactor: prepare
ActionLinkFactory to be shared among viewers
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
The following commit(s) were added to refs/heads/master by this push:
new 033b88f ISIS-2340: refactor: prepare ActionLinkFactory to be shared among viewers
033b88f is described below
commit 033b88f51dba03ecafc9a40aa09de8493d69de1d
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Apr 6 12:31:59 2020 +0200
ISIS-2340: refactor: prepare ActionLinkFactory to be shared among
viewers
---
.../isis/viewer/common/model/link/ActionLinkFactory.java | 10 +++++++++-
.../isis/viewer/common/model/link/LinkAndLabelUiModel.java | 6 ++++++
.../actionmenu/entityactions/EntityActionLinkFactory.java | 10 ++++------
.../actionmenu/entityactions/LinkAndLabelUtil.java | 9 ++++++---
.../components/actionmenu/serviceactions/CssMenuItem.java | 2 +-
.../actionmenu/serviceactions/ServiceActionLinkFactory.java | 6 ++----
.../widgets/linkandlabel/ActionLinkFactoryForWicket.java | 13 ++++++-------
7 files changed, 34 insertions(+), 22 deletions(-)
diff --git a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/link/ActionLinkFactory.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/link/ActionLinkFactory.java
index 8cf1382..0b835b6 100644
--- a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/link/ActionLinkFactory.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/link/ActionLinkFactory.java
@@ -1,6 +1,14 @@
package org.apache.isis.viewer.common.model.link;
+import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+
+/**
+ *
+ * @since Apr 6, 2020
+ *
+ * @param <T> - link component type, native to the viewer
+ */
public interface ActionLinkFactory<T> {
- //LinkAndLabelUiModel<T> newLink(final ObjectAction objectAction);
+ LinkAndLabelUiModel<T> newLink(ObjectAction objectAction);
}
\ No newline at end of file
diff --git a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/link/LinkAndLabelUiModel.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/link/LinkAndLabelUiModel.java
index f75975b..1960bb3 100644
--- a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/link/LinkAndLabelUiModel.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/link/LinkAndLabelUiModel.java
@@ -23,6 +23,12 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import lombok.Getter;
+/**
+ *
+ * @since Apr 6, 2020
+ *
+ * @param <T> - link component type, native to the viewer
+ */
public class LinkAndLabelUiModel<T> extends LinkAndLabelUiModelAbstract {
private static final long serialVersionUID = 1L;
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 92e2a7c..1c74fc9 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
@@ -38,14 +38,14 @@ public final class EntityActionLinkFactory extends ActionLinkFactoryForWicket {
public EntityActionLinkFactory(
final String linkId,
final EntityModel entityModel,
- final ScalarModel scalarModelForAssociationIfAny) {
- super(linkId, entityModel, scalarModelForAssociationIfAny);
+ final ScalarModel scalarModelForAssociationIfAny,
+ final ToggledMementosProvider toggledMementosProviderIfAny) {
+ super(linkId, entityModel, scalarModelForAssociationIfAny, toggledMementosProviderIfAny);
}
@Override
public LinkAndLabel newLink(
- final ObjectAction objectAction,
- final ToggledMementosProvider toggledMementosProviderIfAny) {
+ final ObjectAction objectAction) {
val objectAdapter = this.targetEntityModel.load();
@@ -64,6 +64,4 @@ public final class EntityActionLinkFactory extends ActionLinkFactoryForWicket {
}
-
-
}
\ No newline at end of file
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 2c0ed85..4ad8d4a 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,15 @@ public final class LinkAndLabelUtil {
final ScalarModel scalarModelIfAny,
final ToggledMementosProvider toggledMementosProviderIfAny) {
- val linkFactory = new EntityActionLinkFactory(AdditionalLinksPanel.ID_ADDITIONAL_LINK, parentEntityModel, scalarModelIfAny);
+ val linkFactory = new EntityActionLinkFactory(
+ AdditionalLinksPanel.ID_ADDITIONAL_LINK,
+ parentEntityModel,
+ scalarModelIfAny,
+ toggledMementosProviderIfAny);
return _NullSafe.stream(objectActions)
.map((ObjectAction objectAction) ->
- linkFactory.newLink(
- objectAction, toggledMementosProviderIfAny))
+ linkFactory.newLink(objectAction))
.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 8fbe1d8..07611ef 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
@@ -87,7 +87,7 @@ implements Serializable {
}
// build the link
- val linkAndLabel = actionLinkFactory.newLink(objectAction, null);
+ val linkAndLabel = actionLinkFactory.newLink(objectAction);
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 f7d4348..a8b3ada 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
@@ -24,7 +24,6 @@ import org.apache.wicket.markup.html.link.AbstractLink;
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.ActionLinkFactoryForWicket;
import lombok.val;
@@ -36,13 +35,12 @@ class ServiceActionLinkFactory extends ActionLinkFactoryForWicket {
ServiceActionLinkFactory(
final String linkId,
final EntityModel serviceEntityModel) {
- super(linkId, serviceEntityModel, null);
+ super(linkId, serviceEntityModel, null, null);
}
@Override
public LinkAndLabel newLink(
- final ObjectAction objectAction,
- final ToggledMementosProvider toggledMementosProviderIfAny) {
+ final ObjectAction objectAction) {
val objectAdapter = this.targetEntityModel.load();
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryForWicket.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryForWicket.java
index a65ca40..10a02d6 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryForWicket.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryForWicket.java
@@ -68,28 +68,27 @@ import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
import lombok.val;
public abstract class ActionLinkFactoryForWicket
-implements ActionLinkFactory<LinkAndLabel>, Serializable {
+implements ActionLinkFactory<AbstractLink>, Serializable {
private static final long serialVersionUID = 1L;
protected final String linkId;
protected final EntityModel targetEntityModel;
- private final ScalarModel scalarModelForAssociationIfAny;
+ protected final ScalarModel scalarModelForAssociationIfAny;
+ protected final ToggledMementosProvider toggledMementosProviderIfAny;
protected ActionLinkFactoryForWicket(
final String linkId,
final EntityModel targetEntityModel,
- final ScalarModel scalarModelForAssociationIfAny) {
+ final ScalarModel scalarModelForAssociationIfAny,
+ final ToggledMementosProvider toggledMementosProviderIfAny) {
this.linkId = linkId;
this.targetEntityModel = targetEntityModel;
this.scalarModelForAssociationIfAny = scalarModelForAssociationIfAny;
+ this.toggledMementosProviderIfAny = toggledMementosProviderIfAny;
}
- public abstract LinkAndLabel newLink(
- ObjectAction objectAction,
- ToggledMementosProvider toggledMementosProviderIfAny);
-
protected ActionLink newLinkComponent(
final ObjectAction action,
final ToggledMementosProvider toggledMementosProviderIfAny) {