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;