You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/12/15 17:36:27 UTC
[isis] 01/04: ISIS-1765: fixes issue where non-referenced action
was associated with a different menubar to the menubar of the owning
service
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit b24b2fe8b7eb6c20025cfbe254d73abf00a41772
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Dec 15 17:25:12 2017 +0000
ISIS-1765: fixes issue where non-referenced action was associated with a different menubar to the menubar of the owning service
resulting in an NPE
---
.../apache/isis/viewer/wicket/model/models/ServiceActionsModel.java | 3 ++-
.../ui/components/actionmenu/serviceactions/ServiceActionUtil.java | 5 ++++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ServiceActionsModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ServiceActionsModel.java
index d0bcc36..666b690 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ServiceActionsModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ServiceActionsModel.java
@@ -61,7 +61,8 @@ public class ServiceActionsModel extends ModelAbstract<List<ObjectAdapter>> {
public boolean apply(ObjectAdapter input) {
final DomainServiceLayoutFacet facet = input.getSpecification().getFacet
(DomainServiceLayoutFacet.class);
- return facet != null && facet.getMenuBar() == menuBar;
+ return (facet != null && facet.getMenuBar() == menuBar) ||
+ (facet == null && menuBar == DomainServiceLayout.MenuBar.PRIMARY);
}
};
}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
index c7736a6..0ba7e42 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
@@ -49,6 +49,7 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.services.ServicesInjector;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.runtime.system.IsisSystem;
+import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
import org.apache.isis.core.runtime.system.session.IsisSessionFactoryBuilder;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
@@ -206,7 +207,9 @@ public final class ServiceActionUtil {
// TODO: remove hard-coded dependency on BS3
final BS3MenuBar menuBar = (BS3MenuBar) menuBars.menuBarFor(serviceActionsModel.getMenuBar());
- final List<ObjectAdapter> serviceAdapters = serviceActionsModel.getObject();
+ // we no longer use ServiceActionsModel#getObject() because the model only holds the services for the
+ // menuBar in question, whereas the "Other" menu may reference a service which is defined for some other menubar
+ final List<ObjectAdapter> serviceAdapters = IsisContext.getSessionFactory().getCurrentSession().getPersistenceSession().getServices();
final ImmutableMap<ObjectAdapter, String> oidByServiceAdapter = FluentIterable.from(serviceAdapters)
.toMap(new Function<ObjectAdapter, String>() {
@Override
--
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.