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 2019/01/11 09:32:15 UTC

[isis] branch master updated (4539f97 -> 26c2e61)

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git.


    from 4539f97  ISIS-2081: fixes npe with ActionLayout#redirect for property edits.
     new d4224c6  ISIS-2078: correctly honours promptStyle for menu items (service actions), and adds a new config property for the default dialogMode if set to DIALOG.
     new 362a98c  ISIS-2079: repositions Object_rebuildMetaModel on panel (not as dropdown)
     new 26c2e61  ISIS-2072: renames SimpleObjectMenu to SimpleObjects

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../rgant/_rgant-ActionLayout_promptStyle.adoc     |  9 +++++++-
 .../ugvw/_ugvw_configuration-properties.adoc       | 11 ++++++++--
 .../services/layout/Object_rebuildMetamodel.java   |  2 +-
 .../PromptStyleFacetForActionLayoutAnnotation.java |  2 ++
 ...romptStyleFacetForPropertyLayoutAnnotation.java |  2 ++
 .../propertylayout/PropertyLayoutFacetFactory.java |  8 +++++++
 .../viewer/wicket/model/models/ActionModel.java    |  8 +++++++
 .../wicket/model/models/ActionPromptProvider.java  |  5 ++++-
 .../components/scalars/ScalarPanelAbstract2.java   |  9 +++++++-
 .../linkandlabel/ActionLinkFactoryAbstract.java    |  9 +++++++-
 .../isis/viewer/wicket/ui/pages/PageAbstract.java  | 25 ++++++++++++++++------
 .../application/manifest/menubars.layout.xml       |  6 +++---
 .../modules/simple/dom/impl/SimpleObjects.java     |  7 +++---
 ...IntegTest.java => SimpleObjects_IntegTest.java} | 11 +++++-----
 ...eObjectMenuGlue.java => SimpleObjectsGlue.java} |  2 +-
 15 files changed, 90 insertions(+), 26 deletions(-)
 rename example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/{SimpleObjectMenu_IntegTest.java => SimpleObjects_IntegTest.java} (94%)
 rename example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/specglue/{SimpleObjectMenuGlue.java => SimpleObjectsGlue.java} (96%)


[isis] 02/03: ISIS-2079: repositions Object_rebuildMetaModel on panel (not as dropdown)

Posted by da...@apache.org.
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 362a98c3211afbd44f7295694bacf0157fb78de9
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 11 09:26:58 2019 +0000

    ISIS-2079: repositions Object_rebuildMetaModel on panel (not as dropdown)
---
 .../org/apache/isis/applib/services/layout/Object_rebuildMetamodel.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_rebuildMetamodel.java b/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_rebuildMetamodel.java
index f730751..193f850 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_rebuildMetamodel.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_rebuildMetamodel.java
@@ -46,7 +46,7 @@ public class Object_rebuildMetamodel {
     @ActionLayout(
             contributed = Contributed.AS_ACTION,
             cssClassFa = "fa-refresh",
-            position = ActionLayout.Position.PANEL_DROPDOWN
+            position = ActionLayout.Position.PANEL
     )
     @MemberOrder(name = "datanucleusIdLong", sequence = "800.1")
     public Object act() {


[isis] 01/03: ISIS-2078: correctly honours promptStyle for menu items (service actions), and adds a new config property for the default dialogMode if set to DIALOG.

Posted by da...@apache.org.
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 d4224c655fcec26b0e63eb32afd87c02e8b504f4
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 11 09:26:25 2019 +0000

    ISIS-2078: correctly honours promptStyle for menu items (service actions), and adds a new config property for the default dialogMode if set to DIALOG.
    
    ...so that entities can use sidebar by default, but services/menus can use modal dialog, say.
---
 .../rgant/_rgant-ActionLayout_promptStyle.adoc     |  9 +++++++-
 .../ugvw/_ugvw_configuration-properties.adoc       | 11 ++++++++--
 .../PromptStyleFacetForActionLayoutAnnotation.java |  2 ++
 ...romptStyleFacetForPropertyLayoutAnnotation.java |  2 ++
 .../propertylayout/PropertyLayoutFacetFactory.java |  8 +++++++
 .../viewer/wicket/model/models/ActionModel.java    |  8 +++++++
 .../wicket/model/models/ActionPromptProvider.java  |  5 ++++-
 .../components/scalars/ScalarPanelAbstract2.java   |  9 +++++++-
 .../linkandlabel/ActionLinkFactoryAbstract.java    |  9 +++++++-
 .../isis/viewer/wicket/ui/pages/PageAbstract.java  | 25 ++++++++++++++++------
 10 files changed, 75 insertions(+), 13 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-ActionLayout_promptStyle.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-ActionLayout_promptStyle.adoc
index 513295e..ffd7079 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-ActionLayout_promptStyle.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-ActionLayout_promptStyle.adoc
@@ -10,10 +10,17 @@ For more on sidebar vs modal dialogs, see xref:../ugvw/ugvw.adoc#_ugvw_features_
 
 The prompt style is influenced by two xref:../ugvw/ugvw.adoc#_ugvw_configuration-properties[configuration properties]:
 
-* if the `promptStyle()` attribute is set to `DIALOG`, then the `isis.viewer.wicket.dialogMode` configuration is used to determine whether to render using a modal dialog or a sidebar.
+* if the `promptStyle()` attribute is set to `DIALOG`, then a configuration property is used to determine whether to render using a modal dialog or a sidebar:
+
+** `isis.viewer.wicket.dialogMode` if the action is for a domain object (entity or view model)
 +
 If the configuration property is not set, then sidebar is used.
 
+** `isis.viewer.wicket.dialogModeForMenu` if the action is for a domain service
++
+If the configuration property is not set, then modal is used.
+
+
 * If the attribute is not set at all, then the `isis.viewer.wicket.promptStyle` configuration property is used to specify the preferred prompt style.
 +
 If the configuration property is not set, then an inline prompt is used.
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
index 624fb39..e170a1d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
@@ -544,11 +544,18 @@ Note that `inline_as_if_edit` does not make sense for a configuration property d
 `dialogMode`
 | `sidebar`,`modal` +
 (`_sidebar_`)
-| Whether action prompts with a style of `DIALOG` - as in, `@ActionLayout(promptStyle="DIALOG")` - should be rendered using a sidebar or alternatively in a modal dialog box.
+| Whether an action on a domain object (entity or view model) which prompts with a style of `DIALOG` - as in, `@ActionLayout(promptStyle="DIALOG")` - should be rendered using a sidebar or alternatively in a modal dialog box.
+
+See the discussion on the xref:../ugvw/ugvw.adoc#_ugvw_features_sidebar-vs-modal-dialogs[sidebar vs modal dialogs] feature for further details.
+
+|`isis.viewer.wicket.` +
+`dialogModeForMenu`
+| `sidebar`,`modal` +
+(`_sidebar_`)
+| Whether an action for a domain service should be rendered using a sidebar or alternatively in a modal dialog box.
 
 See the discussion on the xref:../ugvw/ugvw.adoc#_ugvw_features_sidebar-vs-modal-dialogs[sidebar vs modal dialogs] feature for further details.
 
-p
 
 
 |===
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/PromptStyleFacetForActionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/PromptStyleFacetForActionLayoutAnnotation.java
index d4d553e..478351c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/PromptStyleFacetForActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/PromptStyleFacetForActionLayoutAnnotation.java
@@ -58,6 +58,8 @@ public class PromptStyleFacetForActionLayoutAnnotation extends PromptStyleFacetA
 
             switch (promptStyle) {
                 case DIALOG:
+                case DIALOG_MODAL:
+                case DIALOG_SIDEBAR:
                 case INLINE:
                 case INLINE_AS_IF_EDIT:
                     return new PromptStyleFacetForActionLayoutAnnotation(promptStyle, holder);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PromptStyleFacetForPropertyLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PromptStyleFacetForPropertyLayoutAnnotation.java
index bb67b98..0171ef5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PromptStyleFacetForPropertyLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PromptStyleFacetForPropertyLayoutAnnotation.java
@@ -58,6 +58,8 @@ public class PromptStyleFacetForPropertyLayoutAnnotation extends PromptStyleFace
 
             switch (promptStyle) {
                 case DIALOG:
+                case DIALOG_MODAL:
+                case DIALOG_SIDEBAR:
                 case INLINE:
                     return new PromptStyleFacetForPropertyLayoutAnnotation(promptStyle, holder);
                 case INLINE_AS_IF_EDIT:
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PropertyLayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PropertyLayoutFacetFactory.java
index 229a7c4..ce07843 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PropertyLayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PropertyLayoutFacetFactory.java
@@ -95,6 +95,14 @@ public class PropertyLayoutFacetFactory extends FacetFactoryAbstract implements
     }
 
     void processPromptStyle(final FacetHolder holder, final Properties properties, final PropertyLayout propertyLayout) {
+
+        if(holder instanceof FacetedMethod) {
+            final FacetedMethod facetedMethod = (FacetedMethod) holder;
+            if(facetedMethod.getFeatureType() != FeatureType.PROPERTY) {
+                return;
+            }
+        }
+
         PromptStyleFacet promptStyleFacet = PromptStyleFacetOnPropertyFromLayoutProperties
                 .create(properties, holder);
         if(promptStyleFacet == null) {
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index 6f12439..9b04433 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -659,6 +659,14 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> implements For
         if(objectActionOwner.isService()) {
             // tried to move this test into PromptStyleFacetFallback,
             // however it's not that easy to lookup the owning type
+            final PromptStyleFacet facet = getFacet(PromptStyleFacet.class);
+            if (facet != null) {
+                final PromptStyle promptStyle = facet.value();
+                if (promptStyle.isDialog()) {
+                    // could be specified explicitly.
+                    return promptStyle;
+                }
+            }
             return PromptStyle.DIALOG;
         }
         if(objectAction.getParameterCount() == 0) {
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionPromptProvider.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionPromptProvider.java
index c35c675..0d6c119 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionPromptProvider.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionPromptProvider.java
@@ -21,6 +21,7 @@ import org.apache.wicket.Page;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 
 import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.services.metamodel.MetaModelService2;
 
 public interface ActionPromptProvider {
 
@@ -44,6 +45,8 @@ public interface ActionPromptProvider {
         }
     }
 
-    public ActionPrompt getActionPrompt(final PromptStyle promptStyle);
+    public ActionPrompt getActionPrompt(
+            final PromptStyle promptStyle,
+            final MetaModelService2.Sort sort);
     void closePrompt(final AjaxRequestTarget target);
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index 3bcb55e..47aefc1 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -43,12 +43,14 @@ import org.apache.wicket.model.Model;
 
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.services.metamodel.MetaModelService2;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 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;
@@ -701,8 +703,13 @@ public abstract class ScalarPanelAbstract2 extends PanelAbstract<ScalarModel> im
             editProperty.add(new AjaxEventBehavior("click") {
                 protected void onEvent(AjaxRequestTarget target) {
 
+                    final ObjectSpecification specification = scalarModel.getObject().getSpecification();
+                    final MetaModelService2 metaModelService2 = getIsisSessionFactory().getServicesInjector()
+                            .lookupService(MetaModelService2.class);
+                    final MetaModelService2.Sort sort = metaModelService2.sortOf(specification.getCorrespondingClass());
+
                     final ActionPrompt prompt = ActionPromptProvider.Util
-                            .getFrom(ScalarPanelAbstract2.this).getActionPrompt(promptStyle);
+                            .getFrom(ScalarPanelAbstract2.this).getActionPrompt(promptStyle, sort);
 
                     PropertyEditPromptHeaderPanel titlePanel = new PropertyEditPromptHeaderPanel(prompt.getTitleId(),
                             ScalarPanelAbstract2.this.scalarModel);
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
index 0650b00..4cd00b6 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
@@ -37,9 +37,11 @@ import org.apache.wicket.model.AbstractReadOnlyModel;
 import org.apache.wicket.request.cycle.RequestCycle;
 
 import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.services.metamodel.MetaModelService2;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.postprocessors.param.ActionParameterDefaultsFacetFromAssociatedCollection;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.runtime.system.context.IsisContext;
@@ -168,7 +170,12 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
 
         if(inlinePromptContext == null || promptStyle.isDialog()) {
             final ActionPromptProvider promptProvider = ActionPromptProvider.Util.getFrom(actionLink.getPage());
-            final ActionPrompt prompt = promptProvider.getActionPrompt(promptStyle);
+            final ObjectSpecification specification = actionModel.getTargetAdapter().getSpecification();
+
+            final MetaModelService2 metaModelService2 = getIsisSessionFactory().getServicesInjector()
+                    .lookupService(MetaModelService2.class);
+            final MetaModelService2.Sort sort = metaModelService2.sortOf(specification.getCorrespondingClass());
+            final ActionPrompt prompt = promptProvider.getActionPrompt(promptStyle, sort);
 
 
             //
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index ffef9e0..90a1b4e 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
@@ -64,6 +64,7 @@ import org.slf4j.LoggerFactory;
 import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerComposite;
+import org.apache.isis.applib.services.metamodel.MetaModelService2;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.config.ConfigPropertyEnum;
 import org.apache.isis.core.commons.config.IsisConfiguration;
@@ -113,6 +114,8 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
     
     public static final ConfigPropertyEnum<DialogMode> CONFIG_DIALOG_MODE =
             new ConfigPropertyEnum<>("isis.viewer.wicket.dialogMode", DialogMode.SIDEBAR);
+    public static final ConfigPropertyEnum<DialogMode> CONFIG_DIALOG_MODE_FOR_MENUS =
+            new ConfigPropertyEnum<>("isis.viewer.wicket.dialogModeForMenu", DialogMode.MODAL);
 
     /**
      * @see <a href="http://github.com/brandonaaron/livequery">livequery</a>
@@ -465,26 +468,34 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
     private ActionPromptModalWindow actionPromptModalWindow;
     private ActionPromptSidebar actionPromptSidebar;
 
-    public ActionPrompt getActionPrompt(final PromptStyle promptStyle) {
+    public ActionPrompt getActionPrompt(
+            final PromptStyle promptStyle,
+            final MetaModelService2.Sort sort) {
+
         switch (promptStyle) {
         case AS_CONFIGURED:
         case DIALOG:
         case INLINE:
         case INLINE_AS_IF_EDIT:
         default:
-            final DialogMode dialogMode = CONFIG_DIALOG_MODE.from(getConfiguration());
+            final ConfigPropertyEnum<DialogMode> configProp =
+                    sort == MetaModelService2.Sort.DOMAIN_SERVICE
+                            ? CONFIG_DIALOG_MODE_FOR_MENUS
+                            : CONFIG_DIALOG_MODE;
+            final DialogMode dialogMode = configProp.from(getConfiguration());
             switch (dialogMode) {
-                case SIDEBAR:
-                    return actionPromptSidebar;
-                case MODAL:
-                default:
-                    return actionPromptModalWindow;
+            case SIDEBAR:
+                return actionPromptSidebar;
+            case MODAL:
+            default:
+                return actionPromptModalWindow;
             }
         case DIALOG_SIDEBAR:
             return actionPromptSidebar;
         case DIALOG_MODAL:
             return actionPromptModalWindow;
         }
+
     }
 
     @Override


[isis] 03/03: ISIS-2072: renames SimpleObjectMenu to SimpleObjects

Posted by da...@apache.org.
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 26c2e61e49fd2bb769549e545d9e7c1c2d6a5902
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 11 09:28:06 2019 +0000

    ISIS-2072: renames SimpleObjectMenu to SimpleObjects
---
 .../java/domainapp/application/manifest/menubars.layout.xml   |  6 +++---
 .../java/domainapp/modules/simple/dom/impl/SimpleObjects.java |  7 ++++---
 ...ObjectMenu_IntegTest.java => SimpleObjects_IntegTest.java} | 11 ++++++-----
 .../{SimpleObjectMenuGlue.java => SimpleObjectsGlue.java}     |  2 +-
 4 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/menubars.layout.xml b/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/menubars.layout.xml
index a2fe922..5b80dc9 100644
--- a/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/menubars.layout.xml
+++ b/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/menubars.layout.xml
@@ -22,13 +22,13 @@
         <mb3:menu>
             <mb3:named>Simple Objects</mb3:named>
             <mb3:section>
-                <mb3:serviceAction objectType="simple.SimpleObjectMenu" id="create">
+                <mb3:serviceAction objectType="simple.SimpleObjects" id="create">
                     <cpt:named>Create</cpt:named>
                 </mb3:serviceAction>
-                <mb3:serviceAction objectType="simple.SimpleObjectMenu" id="findByName">
+                <mb3:serviceAction objectType="simple.SimpleObjects" id="findByName">
                     <cpt:named>Find By Name</cpt:named>
                 </mb3:serviceAction>
-                <mb3:serviceAction objectType="simple.SimpleObjectMenu" id="listAll">
+                <mb3:serviceAction objectType="simple.SimpleObjects" id="listAll">
                     <cpt:named>List All</cpt:named>
                 </mb3:serviceAction>
             </mb3:section>
diff --git a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
index 5aa77cf..3695151 100644
--- a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
+++ b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
@@ -31,6 +31,7 @@ import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
 import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
@@ -38,11 +39,10 @@ import org.apache.isis.applib.services.repository.RepositoryService;
 
 @DomainService(
         nature = NatureOfService.VIEW_MENU_ONLY,
-        objectType = "simple.SimpleObjectMenu",
+        objectType = "simple.SimpleObjects",
         repositoryFor = SimpleObject.class
 )
 @DomainServiceLayout(
-        named = "Simple Objects",
         menuOrder = "10"
 )
 public class SimpleObjects {
@@ -56,7 +56,7 @@ public class SimpleObjects {
 
 
     @Action(semantics = SemanticsOf.SAFE)
-    @ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT)
+    @ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT, promptStyle = PromptStyle.DIALOG_SIDEBAR)
     @MemberOrder(sequence = "2")
     public List<SimpleObject> findByName(
             @ParameterLayout(named="Name")
@@ -93,6 +93,7 @@ public class SimpleObjects {
 
     public static class CreateDomainEvent extends ActionDomainEvent<SimpleObjects> {}
     @Action(domainEvent = CreateDomainEvent.class)
+    @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
     @MemberOrder(sequence = "3")
     public SimpleObject create(
             @ParameterLayout(named="Name")
diff --git a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjectMenu_IntegTest.java b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
similarity index 94%
rename from example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjectMenu_IntegTest.java
rename to example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
index 02ab891..4300580 100644
--- a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjectMenu_IntegTest.java
+++ b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
@@ -36,9 +36,12 @@ import domainapp.modules.simple.fixture.SimpleObject_persona;
 import domainapp.modules.simple.integtests.SimpleModuleIntegTestAbstract;
 import static org.assertj.core.api.Assertions.assertThat;
 
-public class SimpleObjectMenu_IntegTest extends SimpleModuleIntegTestAbstract {
+public class SimpleObjects_IntegTest extends SimpleModuleIntegTestAbstract {
 
-    public static class ListAll extends SimpleObjectMenu_IntegTest {
+    @Inject
+    SimpleObjects menu;
+
+    public static class ListAll extends SimpleObjects_IntegTest {
 
         @Test
         public void happyCase() {
@@ -65,7 +68,7 @@ public class SimpleObjectMenu_IntegTest extends SimpleModuleIntegTestAbstract {
         }
     }
 
-    public static class Create extends SimpleObjectMenu_IntegTest {
+    public static class Create extends SimpleObjects_IntegTest {
 
         @Test
         public void happyCase() {
@@ -113,7 +116,5 @@ public class SimpleObjectMenu_IntegTest extends SimpleModuleIntegTestAbstract {
         }
     }
 
-    @Inject
-    SimpleObjects menu;
 
 }
\ No newline at end of file
diff --git a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/specglue/SimpleObjectMenuGlue.java b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/specglue/SimpleObjectsGlue.java
similarity index 96%
rename from example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/specglue/SimpleObjectMenuGlue.java
rename to example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/specglue/SimpleObjectsGlue.java
index cfa78b7..cba8ae0 100644
--- a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/specglue/SimpleObjectMenuGlue.java
+++ b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/specglue/SimpleObjectsGlue.java
@@ -30,7 +30,7 @@ import domainapp.modules.simple.dom.impl.SimpleObjects;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 
-public class SimpleObjectMenuGlue extends CukeGlueAbstract2 {
+public class SimpleObjectsGlue extends CukeGlueAbstract2 {
 
     @Given("^there are.* (\\d+) simple objects$")
     public void there_are_N_simple_objects(int n) throws Throwable {