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 10:16:48 UTC

[isis] branch v2 updated (14ac71b -> 1dd23cb)

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

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


    from 14ac71b  Merge branch 'master' into v2
     add 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.
     add 362a98c  ISIS-2079: repositions Object_rebuildMetaModel on panel (not as dropdown)
     add 26c2e61  ISIS-2072: renames SimpleObjectMenu to SimpleObjects
     new 8d31dc7  Merge branch 'master' into v2
     add 6dc4124  ISIS-2082: removes some unnecessary annotations in SimpleObjects
     new 2f3e4f8  Merge branch 'master' into v2
     add c79b2bb  ISIS-2082: further tidy up of archetypes
     new 1dd23cb  Merge branch 'master' into v2

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 ++++-
 .../mixins/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   | 10 ++++-
 .../linkandlabel/ActionLinkFactoryAbstract.java    |  9 +++-
 .../isis/viewer/wicket/ui/pages/PageAbstract.java  | 25 +++++++----
 .../java/domainapp/dom/impl/HelloWorldObjects.java |  8 ++--
 .../manifest/isis-non-changing.properties          |  7 +++-
 .../application/manifest/menubars.layout.xml       |  6 +--
 .../modules/simple/dom/impl/SimpleObjects.java     | 48 ++++++++--------------
 ...IntegTest.java => SimpleObjects_IntegTest.java} | 11 ++---
 ...eObjectMenuGlue.java => SimpleObjectsGlue.java} |  2 +-
 17 files changed, 114 insertions(+), 59 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: Merge branch 'master' into v2

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 2f3e4f8977e552a3cb61a87465e90b1b71fd487f
Merge: 8d31dc7 6dc4124
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 11 10:00:01 2019 +0000

    Merge branch 'master' into v2

 .../java/domainapp/dom/impl/HelloWorldObjects.java |  7 ++--
 .../manifest/isis-non-changing.properties          |  7 +++-
 .../modules/simple/dom/impl/SimpleObjects.java     | 45 ++++++++--------------
 3 files changed, 25 insertions(+), 34 deletions(-)

diff --cc example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
index f46a77a,4dd70f4..28e1e7d
--- a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
+++ b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
@@@ -20,19 -20,21 +20,21 @@@ package domainapp.dom.impl
  
  import java.util.List;
  
 -import org.datanucleus.query.typesafe.TypesafeQuery;
 +import javax.jdo.JDOQLTypedQuery;
  
  import org.apache.isis.applib.annotation.Action;
+ import org.apache.isis.applib.annotation.ActionLayout;
  import org.apache.isis.applib.annotation.DomainService;
  import org.apache.isis.applib.annotation.MemberOrder;
  import org.apache.isis.applib.annotation.NatureOfService;
 -import org.apache.isis.applib.annotation.Parameter;
 -import org.apache.isis.applib.annotation.ParameterLayout;
+ import org.apache.isis.applib.annotation.PromptStyle;
  import org.apache.isis.applib.annotation.RestrictTo;
  import org.apache.isis.applib.annotation.SemanticsOf;
 -import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
 +import org.apache.isis.applib.services.jdosupport.IsisJdoSupport_v3_2;
  import org.apache.isis.applib.services.repository.RepositoryService;
  
 +import domainapp.dom.types.Name;
 +
  @DomainService(
          nature = NatureOfService.VIEW_MENU_ONLY,
          objectType = "helloworld.HelloWorldObjects"
@@@ -40,17 -42,21 +42,17 @@@
  public class HelloWorldObjects {
  
      @Action(semantics = SemanticsOf.NON_IDEMPOTENT)
-     @MemberOrder(sequence = "1")
+     @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
      public HelloWorldObject create(
 -            @Parameter(maxLength = 40)
 -            @ParameterLayout(named = "Name")
 -            final String name) {
 +            @Name final String name) {
          return repositoryService.persist(new HelloWorldObject(name));
      }
  
      @Action(semantics = SemanticsOf.SAFE)
-     @MemberOrder(sequence = "2")
+     @ActionLayout(promptStyle = PromptStyle.DIALOG_SIDEBAR)
      public List<HelloWorldObject> findByName(
 -            @Parameter(maxLength = 40)
 -            @ParameterLayout(named = "Name")
 -            final String name) {
 -        TypesafeQuery<HelloWorldObject> q = isisJdoSupport.newTypesafeQuery(HelloWorldObject.class);
 +            @Name final String name) {
 +    	JDOQLTypedQuery<HelloWorldObject> q = isisJdoSupport.newTypesafeQuery(HelloWorldObject.class);
          final QHelloWorldObject cand = QHelloWorldObject.candidate();
          q = q.filter(
                  cand.name.indexOf(q.stringParameter("name")).ne(-1)
@@@ -60,7 -66,7 +62,6 @@@
      }
  
      @Action(semantics = SemanticsOf.SAFE, restrictTo = RestrictTo.PROTOTYPING)
--    @MemberOrder(sequence = "3")
      public List<HelloWorldObject> listAll() {
          return repositoryService.allInstances(HelloWorldObject.class);
      }
diff --cc example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
index aca31d4,940997e..953317f
--- 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
@@@ -26,43 -26,34 +26,36 @@@ import org.apache.isis.applib.annotatio
  import org.apache.isis.applib.annotation.ActionLayout;
  import org.apache.isis.applib.annotation.BookmarkPolicy;
  import org.apache.isis.applib.annotation.DomainService;
- import org.apache.isis.applib.annotation.DomainServiceLayout;
- import org.apache.isis.applib.annotation.MemberOrder;
  import org.apache.isis.applib.annotation.NatureOfService;
- import org.apache.isis.applib.annotation.Programmatic;
 -import org.apache.isis.applib.annotation.ParameterLayout;
  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;
 +import org.apache.isis.applib.events.domain.ActionDomainEvent;
 +import org.apache.isis.applib.services.jdosupport.IsisJdoSupport_v3_2;
  import org.apache.isis.applib.services.repository.RepositoryService;
  
 +import domainapp.modules.simple.dom.types.Name;
 +
  @DomainService(
          nature = NatureOfService.VIEW_MENU_ONLY,
-         objectType = "simple.SimpleObjects",
-         repositoryFor = SimpleObject.class
- )
- @DomainServiceLayout(
-         menuOrder = "10"
+         objectType = "simple.SimpleObjects"
  )
  public class SimpleObjects {
  
--    @Action(semantics = SemanticsOf.SAFE)
--    @ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT)
-     @MemberOrder(sequence = "1")
--    public List<SimpleObject> listAll() {
--        return repositoryService.allInstances(SimpleObject.class);
++    public static class CreateDomainEvent extends ActionDomainEvent<SimpleObjects> {}
++    @Action(domainEvent = CreateDomainEvent.class)
++    @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
++    public SimpleObject create(
++            @Name final String name
++    ) {
++        return repositoryService.persist(new SimpleObject(name));
      }
  
--
      @Action(semantics = SemanticsOf.SAFE)
      @ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT, promptStyle = PromptStyle.DIALOG_SIDEBAR)
-     @MemberOrder(sequence = "2")
      public List<SimpleObject> findByName(
 -            @ParameterLayout(named="Name")
 -            final String name
 +            @Name final String name
      ) {
-     	JDOQLTypedQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
 -        TypesafeQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
++        JDOQLTypedQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
          final QSimpleObject cand = QSimpleObject.candidate();
          q = q.filter(
                  cand.name.indexOf(q.stringParameter("name")).ne(-1)
@@@ -71,20 -62,8 +64,8 @@@
                  .executeList();
      }
  
-     public static class CreateDomainEvent extends ActionDomainEvent<SimpleObjects> {}
-     @Action(domainEvent = CreateDomainEvent.class)
-     @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
-     @MemberOrder(sequence = "3")
-     public SimpleObject create(
-             @Name final String name
-     ) {
-         return repositoryService.persist(new SimpleObject(name));
-     }
- 
- 
-     @Programmatic
      public SimpleObject findByNameExact(final String name) {
 -        TypesafeQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
 +    	JDOQLTypedQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
          final QSimpleObject cand = QSimpleObject.candidate();
          q = q.filter(
                  cand.name.eq(q.stringParameter("name"))
@@@ -93,16 -72,23 +74,20 @@@
                  .executeUnique();
      }
  
-     @Programmatic
++    @Action(semantics = SemanticsOf.SAFE)
++    @ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT)
++    public List<SimpleObject> listAll() {
++        return repositoryService.allInstances(SimpleObject.class);
++    }
++
      public void ping() {
 -        TypesafeQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
 +        JDOQLTypedQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
          final QSimpleObject candidate = QSimpleObject.candidate();
          q.range(0,2);
          q.orderBy(candidate.name.asc());
          q.executeList();
      }
  
 -    public static class CreateDomainEvent extends ActionDomainEvent<SimpleObjects> {}
 -    @Action(domainEvent = CreateDomainEvent.class)
 -    @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
 -    public SimpleObject create(
 -            @ParameterLayout(named="Name")
 -            final String name) {
 -        return repositoryService.persist(new SimpleObject(name));
 -    }
--
      @javax.inject.Inject
      RepositoryService repositoryService;
  


[isis] 01/03: Merge branch 'master' into v2

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 8d31dc7983b4b7238edb5fe9c64761e8df6accfa
Merge: 14ac71b 26c2e61
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 11 09:49:32 2019 +0000

    Merge branch 'master' into v2

 .../rgant/_rgant-ActionLayout_promptStyle.adoc     |  9 +++++++-
 .../ugvw/_ugvw_configuration-properties.adoc       | 11 ++++++++--
 .../mixins/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   | 10 ++++++++-
 .../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, 91 insertions(+), 26 deletions(-)

diff --cc core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_rebuildMetamodel.java
index c3375a9,0000000..e442bee
mode 100644,000000..100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_rebuildMetamodel.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_rebuildMetamodel.java
@@@ -1,64 -1,0 +1,64 @@@
 +/**
 + *  Licensed to the Apache Software Foundation (ASF) under one or more
 + *  contributor license agreements.  See the NOTICE file distributed with
 + *  this work for additional information regarding copyright ownership.
 + *  The ASF licenses this file to You under the Apache License, Version 2.0
 + *  (the "License"); you may not use this file except in compliance with
 + *  the License.  You may obtain a copy of the License at
 + *
 + *     http://www.apache.org/licenses/LICENSE-2.0
 + *
 + *  Unless required by applicable law or agreed to in writing, software
 + *  distributed under the License is distributed on an "AS IS" BASIS,
 + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + *  See the License for the specific language governing permissions and
 + *  limitations under the License.
 + */
 +package org.apache.isis.applib.mixins.layout;
 +
 +import org.apache.isis.applib.annotation.Action;
 +import org.apache.isis.applib.annotation.ActionLayout;
 +import org.apache.isis.applib.annotation.CommandPersistence;
 +import org.apache.isis.applib.annotation.Contributed;
 +import org.apache.isis.applib.annotation.MemberOrder;
 +import org.apache.isis.applib.annotation.Mixin;
 +import org.apache.isis.applib.annotation.RestrictTo;
 +import org.apache.isis.applib.annotation.SemanticsOf;
 +import org.apache.isis.applib.services.metamodel.MetaModelService;
 +
 +@Mixin(method="act")
 +public class Object_rebuildMetamodel {
 +
 +    private final Object object;
 +
 +    public Object_rebuildMetamodel(final Object object) {
 +        this.object = object;
 +    }
 +
 +    public static class ActionDomainEvent
 +    extends org.apache.isis.applib.IsisApplibModule.ActionDomainEvent<Object_rebuildMetamodel> {
 +        private static final long serialVersionUID = 1L;
 +    }
 +
 +    @Action(
 +            domainEvent = ActionDomainEvent.class,
 +            semantics = SemanticsOf.IDEMPOTENT,
 +            commandPersistence = CommandPersistence.NOT_PERSISTED,
 +            restrictTo = RestrictTo.PROTOTYPING
 +            )
 +    @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() {
 +        metaModelService.rebuild(object.getClass());
 +        return object;
 +    }
 +
 +    @javax.inject.Inject
 +    MetaModelService metaModelService;
 +
 +
 +}
diff --cc core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/PromptStyleFacetForActionLayoutAnnotation.java
index 875a1bd,478351c..0549373
--- 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
@@@ -45,33 -45,37 +45,35 @@@ public class PromptStyleFacetForActionL
              final IsisConfiguration configuration,
              final FacetHolder holder) {
  
 -        PromptStyle promptStyle = actionLayout != null? actionLayout.promptStyle() : null;
 +        return actionLayouts.stream()
 +                .map(ActionLayout::promptStyle)
 +                .filter(promptStyle -> promptStyle != PromptStyle.NOT_SPECIFIED)
 +                .findFirst()
 +                .map(promptStyle -> {
  
 -        if(promptStyle == null) {
 -            if (holder.containsDoOpNotDerivedFacet(PromptStyleFacet.class)) {
 -                // do not replace
 -                return null;
 -            }
 +                    switch (promptStyle) {
 +                    case DIALOG:
++                    case DIALOG_MODAL:
++                    case DIALOG_SIDEBAR:
 +                    case INLINE:
 +                    case INLINE_AS_IF_EDIT:
 +                        return new PromptStyleFacetForActionLayoutAnnotation(promptStyle, holder);
  
 -            return new PromptStyleFacetFallBackToInline(holder);
 -        } else {
 +                    case AS_CONFIGURED:
  
 -            switch (promptStyle) {
 -                case DIALOG:
 -                case DIALOG_MODAL:
 -                case DIALOG_SIDEBAR:
 -                case INLINE:
 -                case INLINE_AS_IF_EDIT:
 -                    return new PromptStyleFacetForActionLayoutAnnotation(promptStyle, holder);
 +                        // do not replace
 +                        if (holder.containsDoOpFacet(PromptStyleFacet.class)) {
 +                            return null;
 +                        }
  
 -                case AS_CONFIGURED:
 +                        promptStyle = PromptStyleConfiguration.parse(configuration);
 +                        return new PromptStyleFacetAsConfigured(promptStyle, holder);
  
 -                    // do not replace
 -                    if (holder.containsDoOpFacet(PromptStyleFacet.class)) {
 -                        return null;
 -                    }
 -
 -                    promptStyle = PromptStyleConfiguration.parse(configuration);
 -                    return new PromptStyleFacetAsConfigured(promptStyle, holder);
 -
 -                default:
  
 +                    }
 +                    throw new IllegalStateException("promptStyle '" + promptStyle + "' not recognised");
 +                })
 +                .orElseGet(() -> {
                      // do not replace
                      if (holder.containsDoOpFacet(PromptStyleFacet.class)) {
                          return null;
diff --cc core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PromptStyleFacetForPropertyLayoutAnnotation.java
index c4f2708,0171ef5..d661065
--- 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
@@@ -45,33 -45,37 +45,35 @@@ public class PromptStyleFacetForPropert
              final IsisConfiguration configuration,
              final FacetHolder holder) {
  
 -        PromptStyle promptStyle = propertyLayout != null? propertyLayout.promptStyle() : null;
 -
 -        if(promptStyle == null) {
 -            if (holder.containsDoOpFacet(PromptStyleFacet.class)) {
 -                // do not replace
 -                return null;
 -            }
 -
 -            return new PromptStyleFacetFallBackToInline(holder);
 -        } else {
 -
 -            switch (promptStyle) {
 -                case DIALOG:
 -                case DIALOG_MODAL:
 -                case DIALOG_SIDEBAR:
 -                case INLINE:
 -                    return new PromptStyleFacetForPropertyLayoutAnnotation(promptStyle, holder);
 -                case INLINE_AS_IF_EDIT:
 -                    return new PromptStyleFacetForPropertyLayoutAnnotation(PromptStyle.INLINE, holder);
 -
 -                case AS_CONFIGURED:
 -
 -                    // do not replace
 -                    if (holder.containsDoOpFacet(PromptStyleFacet.class)) {
 -                        return null;
 +        return propertyLayouts.stream()
 +                .map(PropertyLayout::promptStyle)
 +                .filter(promptStyle -> promptStyle != PromptStyle.NOT_SPECIFIED)
 +                .findFirst()
 +                .map(promptStyle -> {
 +
 +                    switch (promptStyle) {
 +                    case DIALOG:
++                    case DIALOG_MODAL:
++                    case DIALOG_SIDEBAR:
 +                    case INLINE:
 +                        return new PromptStyleFacetForPropertyLayoutAnnotation(promptStyle, holder);
 +                    case INLINE_AS_IF_EDIT:
 +                        return new PromptStyleFacetForPropertyLayoutAnnotation(PromptStyle.INLINE, holder);
 +
 +                    case AS_CONFIGURED:
 +
 +                        // do not replace
 +                        if (holder.containsDoOpFacet(PromptStyleFacet.class)) {
 +                            return null;
 +                        }
 +
 +                        promptStyle = PromptStyleConfiguration.parse(configuration);
 +                        return new PromptStyleFacetAsConfigured(promptStyle, holder);
 +                    default:
                      }
 -
 -                    promptStyle = PromptStyleConfiguration.parse(configuration);
 -                    return new PromptStyleFacetAsConfigured(promptStyle, holder);
 -
 -                default:
 +                    throw new IllegalStateException("promptStyle '" + promptStyle + "' not recognised");
 +                })
 +                .orElseGet(() -> {
  
                      // do not replace
                      if (holder.containsDoOpFacet(PromptStyleFacet.class)) {
diff --cc core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PropertyLayoutFacetFactory.java
index 4cfb2d2,ce07843..2f41c62
--- 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
@@@ -86,9 -94,21 +86,17 @@@ public class PropertyLayoutFacetFactor
          FacetUtil.addFacet(describedAsFacet);
      }
  
 -    void processPromptStyle(final FacetHolder holder, final Properties properties, final PropertyLayout propertyLayout) {
 +    void processPromptStyle(final FacetHolder holder, final List<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) {
 -            promptStyleFacet = PromptStyleFacetForPropertyLayoutAnnotation
 -                    .create(propertyLayout, getConfiguration(), holder);
 -        }
 +        PromptStyleFacet promptStyleFacet = PromptStyleFacetForPropertyLayoutAnnotation
 +                .create(propertyLayout, getConfiguration(), holder);
  
          FacetUtil.addFacet(promptStyleFacet);
      }
diff --cc core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionPromptProvider.java
index c35c675,0d6c119..5fc6fcf
--- 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 +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;
++import org.apache.isis.applib.services.metamodel.MetaModelService;
  
  public interface ActionPromptProvider {
  
@@@ -44,6 -45,8 +45,8 @@@
          }
      }
  
-     public ActionPrompt getActionPrompt(final PromptStyle promptStyle);
+     public ActionPrompt getActionPrompt(
+             final PromptStyle promptStyle,
 -            final MetaModelService2.Sort sort);
++            final MetaModelService.Sort sort);
      void closePrompt(final AjaxRequestTarget target);
  }
diff --cc core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index 1a41513,47aefc1..10b81cf
--- 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
@@@ -40,10 -43,9 +40,11 @@@ 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.applib.services.metamodel.MetaModelService;
 +import org.apache.isis.commons.internal.base._Strings;
 +import org.apache.isis.commons.internal.collections._Lists;
  import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 -import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 +import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
  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;
@@@ -73,6 -76,6 +75,7 @@@ import org.apache.isis.viewer.wicket.ui
  
  import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
  
++
  public abstract class ScalarPanelAbstract2 extends PanelAbstract<ScalarModel> implements ScalarModelSubscriber2 {
  
      private static final long serialVersionUID = 1L;
@@@ -714,16 -701,15 +717,21 @@@
              scalarIfRegularFormGroup.addOrReplace(editProperty);
  
              editProperty.add(new AjaxEventBehavior("click") {
 +                /**
 +                 *
 +                 */
 +                private static final long serialVersionUID = -3561635292986591682L;
 +
 +                @Override
                  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 MetaModelService metaModelService = getIsisSessionFactory().getServicesInjector()
++                            .lookupServiceElseFail(MetaModelService.class);
++                    final MetaModelService.Sort sort = metaModelService.sortOf(specification.getCorrespondingClass(), MetaModelService.Mode.RELAXED);
+ 
                      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 --cc core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
index e04bd6a,4cd00b6..8de064c
--- 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
@@@ -32,11 -37,11 +32,13 @@@ import org.apache.wicket.model.Abstract
  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.commons.internal.base._NullSafe;
 +import org.apache.isis.commons.internal.collections._Lists;
++import org.apache.isis.applib.services.metamodel.MetaModelService;
  import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 -import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 +import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
  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;
@@@ -164,7 -170,12 +166,12 @@@ public abstract class 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 MetaModelService metaModelService = getIsisSessionFactory().getServicesInjector()
++                    .lookupServiceElseFail(MetaModelService.class);
++            final MetaModelService.Sort sort = metaModelService.sortOf(specification.getCorrespondingClass(), MetaModelService.Mode.RELAXED);
+             final ActionPrompt prompt = promptProvider.getActionPrompt(promptStyle, sort);
  
  
              //
diff --cc core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index 479991c,90a1b4e..c23abeb
--- 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
@@@ -65,8 -64,10 +65,9 @@@ 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;
 +import org.apache.isis.config.IsisConfiguration;
 +import org.apache.isis.config.property.ConfigPropertyEnum;
++import org.apache.isis.applib.services.metamodel.MetaModelService;
  import org.apache.isis.core.metamodel.services.ServicesInjector;
  import org.apache.isis.core.runtime.system.context.IsisContext;
  import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
@@@ -466,20 -468,27 +469,27 @@@ public abstract class PageAbstract exte
      private ActionPromptModalWindow actionPromptModalWindow;
      private ActionPromptSidebar actionPromptSidebar;
  
-     public ActionPrompt getActionPrompt(final PromptStyle promptStyle) {
+     public ActionPrompt getActionPrompt(
+             final PromptStyle promptStyle,
 -            final MetaModelService2.Sort sort) {
++            final MetaModelService.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
++                    sort == MetaModelService.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;
diff --cc example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
index b05be1b,3695151..aca31d4
--- 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
@@@ -29,17 -29,17 +29,18 @@@ import org.apache.isis.applib.annotatio
  import org.apache.isis.applib.annotation.DomainServiceLayout;
  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;
 +import org.apache.isis.applib.events.domain.ActionDomainEvent;
 +import org.apache.isis.applib.services.jdosupport.IsisJdoSupport_v3_2;
  import org.apache.isis.applib.services.repository.RepositoryService;
  
 +import domainapp.modules.simple.dom.types.Name;
 +
  @DomainService(
          nature = NatureOfService.VIEW_MENU_ONLY,
-         objectType = "simple.SimpleObjectMenu",
+         objectType = "simple.SimpleObjects",
          repositoryFor = SimpleObject.class
  )
  @DomainServiceLayout(
@@@ -57,12 -56,13 +57,12 @@@ 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")
 -            final String name
 +            @Name final String name
      ) {
 -        TypesafeQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
 +    	JDOQLTypedQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
          final QSimpleObject cand = QSimpleObject.candidate();
          q = q.filter(
                  cand.name.indexOf(q.stringParameter("name")).ne(-1)
@@@ -71,19 -71,9 +71,20 @@@
                  .executeList();
      }
  
 +    public static class CreateDomainEvent extends ActionDomainEvent<SimpleObjects> {}
 +    @Action(domainEvent = CreateDomainEvent.class)
++    @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
 +    @MemberOrder(sequence = "3")
 +    public SimpleObject create(
 +            @Name final String name
 +    ) {
 +        return repositoryService.persist(new SimpleObject(name));
 +    }
 +
 +
      @Programmatic
      public SimpleObject findByNameExact(final String name) {
 -        TypesafeQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
 +    	JDOQLTypedQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
          final QSimpleObject cand = QSimpleObject.candidate();
          q = q.filter(
                  cand.name.eq(q.stringParameter("name"))
diff --cc example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
index 158ae05,4300580..d1c6e0a
--- a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
+++ b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
@@@ -38,10 -34,14 +38,13 @@@ import domainapp.modules.simple.dom.imp
  import domainapp.modules.simple.dom.impl.SimpleObjects;
  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() {


[isis] 03/03: Merge branch 'master' into v2

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 1dd23cb9f41fdebe3bae57437708f68f54106f70
Merge: 2f3e4f8 c79b2bb
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 11 10:01:14 2019 +0000

    Merge branch 'master' into v2
    
    # Conflicts:
    #	example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java

 .../helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java   | 1 -
 1 file changed, 1 deletion(-)

diff --cc example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
index 28e1e7d,4e5824a..2f259bd
--- a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
+++ b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
@@@ -25,8 -25,9 +25,7 @@@ import javax.jdo.JDOQLTypedQuery
  import org.apache.isis.applib.annotation.Action;
  import org.apache.isis.applib.annotation.ActionLayout;
  import org.apache.isis.applib.annotation.DomainService;
- import org.apache.isis.applib.annotation.MemberOrder;
  import org.apache.isis.applib.annotation.NatureOfService;
 -import org.apache.isis.applib.annotation.Parameter;
 -import org.apache.isis.applib.annotation.ParameterLayout;
  import org.apache.isis.applib.annotation.PromptStyle;
  import org.apache.isis.applib.annotation.RestrictTo;
  import org.apache.isis.applib.annotation.SemanticsOf;