You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2023/04/04 06:48:07 UTC
[causeway] branch master updated (a55cff2816 -> 2d0d80f6ac)
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/causeway.git
from a55cff2816 Bump font-awesome from 6.3.0 to 6.4.0
new 4dbaa7219a CAUSEWAY-2485: wip on @DomainObjectLayout#bookmarking
new 2d0d80f6ac CAUSEWAY-2485: completes @DomainObjectLayout#bookmarking
The 2 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:
.../src/main/java/demoapp/dom/DemoModuleJpa.java | 4 +++
.../aliased/DomainObjectAliasedPage_lookup.java | 2 +-
.../aliased/DomainObjectAliasedPage_objects.java | 2 +-
.../DomainObjectAutoCompletePage_find.java | 2 +-
.../DomainObjectAutoCompletePage_objects.java | 2 +-
.../bounded/DomainObjectBoundingPage_objects.java | 2 +-
.../bounded/jpa/DomainObjectBoundingPage_find.java | 2 +-
.../editing/DomainObjectEditingPage_objects.java | 2 +-
...ObjectIntrospectionPage_annotationOptional.java | 2 +-
...ObjectIntrospectionPage_annotationRequired.java | 2 +-
...ObjectIntrospectionVm_encapsulationEnabled.java | 2 +-
.../DomainObjectMixinMethodPage_objects.java | 2 +-
.../DomainObjectMixinMethodPage_updateName.java | 4 +--
.../nature/DomainObjectNaturePage_entities.java | 4 +--
.../nature/DomainObjectNaturePage_viewModels.java | 4 +--
.../DomainObjectLayoutBookmarking.java} | 35 ++++++++++++--------
.../DomainObjectLayoutBookmarking.layout.xml} | 9 ++++--
.../DomainObjectLayoutBookmarkingChild.java} | 22 ++++++++++---
.../DomainObjectLayoutBookmarkingChild.layout.xml} | 1 +
...mainObjectLayoutBookmarkingChildRepository.java | 13 +++-----
...ainObjectLayoutBookmarkingPage-description.adoc | 18 +++++++++--
.../DomainObjectLayoutBookmarkingPage.java | 3 +-
.../DomainObjectLayoutBookmarkingPage.layout.xml | 11 ++++++-
...DomainObjectLayoutBookmarkingPage_objects.java} | 11 ++++---
.../DomainObjectLayoutBookmarkingRepository.java | 13 +++-----
.../DomainObjectLayoutBookmarkingSeeding.java} | 9 +++---
...DomainObjectLayoutBookmarking_addChildren.java} | 37 +++++++++++++---------
...jectLayoutBookmarkingChildJpa-description.adoc} | 7 ++--
.../DomainObjectLayoutBookmarkingChildJpa.java} | 27 +++++++++-------
...ainObjectLayoutBookmarkingJpa-description.adoc} | 14 +++++---
.../jpa/DomainObjectLayoutBookmarkingJpa.java} | 33 ++++++++++++++-----
.../DomainObjectLayoutBookmarkingJpaEntities.java} | 23 +++++++-------
32 files changed, 200 insertions(+), 124 deletions(-)
copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObject/aliased/DomainObjectAliased.java => DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking.java} (65%)
copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObject/autoComplete/DomainObjectAutoComplete.layout.xml => DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking.layout.xml} (94%)
copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObject/autoComplete/DomainObjectAutoComplete.java => DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingChild.java} (72%)
copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObject/bounded/DomainObjectBounding.layout.xml => DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingChild.layout.xml} (98%)
copy api/applib/src/main/java/org/apache/causeway/applib/layout/grid/bootstrap/BSRowOwner.java => examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingChildRepository.java (73%)
copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObject/aliased/DomainObjectAliasedPage_objects.java => DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage_objects.java} (60%)
copy api/applib/src/main/java/org/apache/causeway/applib/layout/grid/bootstrap/BSRowOwner.java => examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingRepository.java (76%)
copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObject/bounded/DomainObjectBoundingSeeding.java => DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingSeeding.java} (81%)
copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObject/xxxLifecycleEvent/DomainObjectXxxLifecycleEventPage_deleteEntity.java => DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking_addChildren.java} (55%)
copy examples/demo/domain/src/main/java/demoapp/dom/domain/{actions/ActionLayout/describedAs/ActionLayoutDescribedAsPage-description.adoc => objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingChildJpa-description.adoc} (75%)
copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObject/xxxLifecycleEvent/jpa/DomainObjectXxxLifecycleEventJpa.java => DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingChildJpa.java} (69%)
copy examples/demo/domain/src/main/java/demoapp/dom/domain/{actions/ActionLayout/cssClass/ActionLayoutCssClassPage-description.adoc => objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingJpa-description.adoc} (68%)
copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObject/mixinMethod/jpa/DomainObjectMixinMethodJpa.java => DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingJpa.java} (63%)
copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObject/aliased/jpa/DomainObjectAliasedJpaEntities.java => DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingJpaEntities.java} (57%)
[causeway] 01/02: CAUSEWAY-2485: wip on @DomainObjectLayout#bookmarking
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/causeway.git
commit 4dbaa7219a2b128629dadbe69882ca71641501d4
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Apr 3 22:04:07 2023 +0100
CAUSEWAY-2485: wip on @DomainObjectLayout#bookmarking
---
.../src/main/java/demoapp/dom/DemoModuleJpa.java | 4 ++
.../aliased/DomainObjectAliasedPage_lookup.java | 2 +-
.../aliased/DomainObjectAliasedPage_objects.java | 2 +-
.../DomainObjectAutoCompletePage_find.java | 2 +-
.../DomainObjectAutoCompletePage_objects.java | 2 +-
.../bounded/DomainObjectBoundingPage_objects.java | 2 +-
.../bounded/jpa/DomainObjectBoundingPage_find.java | 2 +-
.../editing/DomainObjectEditingPage_objects.java | 2 +-
...ObjectIntrospectionPage_annotationOptional.java | 2 +-
...ObjectIntrospectionPage_annotationRequired.java | 2 +-
...ObjectIntrospectionVm_encapsulationEnabled.java | 2 +-
.../DomainObjectMixinMethodPage_objects.java | 2 +-
.../DomainObjectMixinMethodPage_updateName.java | 4 +-
.../nature/DomainObjectNaturePage_entities.java | 4 +-
.../nature/DomainObjectNaturePage_viewModels.java | 4 +-
.../bookmarking/DomainObjectLayoutBookmarking.java | 71 +++++++++++++++++++
...ml => DomainObjectLayoutBookmarking.layout.xml} | 51 ++++++++++++--
...ava => DomainObjectLayoutBookmarkingChild.java} | 39 +++++------
... DomainObjectLayoutBookmarkingChild.layout.xml} | 45 ++++++++++--
...mainObjectLayoutBookmarkingChildRepository.java | 28 ++++++++
.../DomainObjectLayoutBookmarkingPage.java | 3 +-
.../DomainObjectLayoutBookmarkingPage.layout.xml | 11 ++-
...DomainObjectLayoutBookmarkingPage_objects.java} | 11 +--
.../DomainObjectLayoutBookmarkingRepository.java | 28 ++++++++
.../DomainObjectLayoutBookmarkingSeeding.java} | 31 +++------
...DomainObjectLayoutBookmarking_addChildren.java} | 37 ++++++----
...bjectLayoutBookmarkingChildJpa-description.adoc | 7 ++
.../jpa/DomainObjectLayoutBookmarkingChildJpa.java | 71 +++++++++++++++++++
...mainObjectLayoutBookmarkingJpa-description.adoc | 7 ++
.../jpa/DomainObjectLayoutBookmarkingJpa.java | 81 ++++++++++++++++++++++
.../DomainObjectLayoutBookmarkingJpaEntities.java | 56 +++++++++++++++
31 files changed, 518 insertions(+), 97 deletions(-)
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java
index d0cd3cee84..f04b4d2cfe 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java
@@ -31,6 +31,8 @@ import demoapp.dom.domain.objects.DomainObject.introspection.encapsulated.jpa.Do
import demoapp.dom.domain.objects.DomainObject.mixinMethod.jpa.DomainObjectMixinMethodJpa;
import demoapp.dom.domain.objects.DomainObject.nature.entity.jpa.DomainObjectNatureJpa;
import demoapp.dom.domain.objects.DomainObject.xxxLifecycleEvent.jpa.DomainObjectXxxLifecycleEventJpa;
+import demoapp.dom.domain.objects.DomainObjectLayout.bookmarking.jpa.DomainObjectLayoutBookmarkingChildJpa;
+import demoapp.dom.domain.objects.DomainObjectLayout.bookmarking.jpa.DomainObjectLayoutBookmarkingJpa;
import demoapp.dom.domain.objects.other.embedded.jpa.NumberConstantJpa;
import demoapp.dom.domain.properties.Property.commandPublishing.jpa.PropertyCommandPublishingJpa;
import demoapp.dom.domain.properties.Property.executionPublishing.jpa.PropertyExecutionPublishingJpa;
@@ -106,6 +108,8 @@ import org.springframework.context.annotation.Profile;
DomainObjectIntrospectionEncapsulatedJpa.class,
DomainObjectMixinMethodJpa.class,
DomainObjectXxxLifecycleEventJpa.class,
+ DomainObjectLayoutBookmarkingJpa.class,
+ DomainObjectLayoutBookmarkingChildJpa.class,
CausewayBlobJpa.class,
CausewayClobJpa.class,
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/aliased/DomainObjectAliasedPage_lookup.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/aliased/DomainObjectAliasedPage_lookup.java
index c9cababc15..aec5e51e17 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/aliased/DomainObjectAliasedPage_lookup.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/aliased/DomainObjectAliasedPage_lookup.java
@@ -20,7 +20,7 @@ import org.apache.causeway.applib.services.bookmark.BookmarkService;
public class DomainObjectAliasedPage_lookup {
@SuppressWarnings("unused")
- private final DomainObjectAliasedPage mixee;
+ private final DomainObjectAliasedPage page;
@MemberSupport
public DomainObjectAliased act(final String bookmark) {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/aliased/DomainObjectAliasedPage_objects.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/aliased/DomainObjectAliasedPage_objects.java
index ca3fa353e8..a675faafe0 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/aliased/DomainObjectAliasedPage_objects.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/aliased/DomainObjectAliasedPage_objects.java
@@ -17,7 +17,7 @@ import org.apache.causeway.applib.annotation.MemberSupport;
public class DomainObjectAliasedPage_objects {
@SuppressWarnings("unused")
- private final DomainObjectAliasedPage mixee;
+ private final DomainObjectAliasedPage page;
@MemberSupport
public List<? extends DomainObjectAliased> coll() {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/autoComplete/DomainObjectAutoCompletePage_find.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/autoComplete/DomainObjectAutoCompletePage_find.java
index c358757868..c45b5decc6 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/autoComplete/DomainObjectAutoCompletePage_find.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/autoComplete/DomainObjectAutoCompletePage_find.java
@@ -12,7 +12,7 @@ import org.apache.causeway.applib.annotation.SemanticsOf;
public class DomainObjectAutoCompletePage_find {
@SuppressWarnings("unused")
- private final DomainObjectAutoCompletePage mixee;
+ private final DomainObjectAutoCompletePage page;
@MemberSupport
public DomainObjectAutoComplete act(final DomainObjectAutoComplete domainObjectAutoComplete) { // <.>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/autoComplete/DomainObjectAutoCompletePage_objects.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/autoComplete/DomainObjectAutoCompletePage_objects.java
index 6ec731ab5c..811ebd8ef7 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/autoComplete/DomainObjectAutoCompletePage_objects.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/autoComplete/DomainObjectAutoCompletePage_objects.java
@@ -17,7 +17,7 @@ import org.apache.causeway.applib.annotation.MemberSupport;
public class DomainObjectAutoCompletePage_objects {
@SuppressWarnings("unused")
- private final DomainObjectAutoCompletePage mixee;
+ private final DomainObjectAutoCompletePage page;
@MemberSupport
public List<? extends DomainObjectAutoComplete> coll() {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/bounded/DomainObjectBoundingPage_objects.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/bounded/DomainObjectBoundingPage_objects.java
index 0e5f51fb77..ce7ae874b2 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/bounded/DomainObjectBoundingPage_objects.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/bounded/DomainObjectBoundingPage_objects.java
@@ -17,7 +17,7 @@ import org.apache.causeway.applib.annotation.MemberSupport;
public class DomainObjectBoundingPage_objects {
@SuppressWarnings("unused")
- private final DomainObjectBoundingPage mixee;
+ private final DomainObjectBoundingPage page;
@MemberSupport
public List<? extends DomainObjectBounding> coll() {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/bounded/jpa/DomainObjectBoundingPage_find.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/bounded/jpa/DomainObjectBoundingPage_find.java
index 37db74a9a0..8c405ee70b 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/bounded/jpa/DomainObjectBoundingPage_find.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/bounded/jpa/DomainObjectBoundingPage_find.java
@@ -15,7 +15,7 @@ import org.springframework.context.annotation.Profile;
public class DomainObjectBoundingPage_find {
@SuppressWarnings("unused")
- private final DomainObjectBoundingPage mixee;
+ private final DomainObjectBoundingPage page;
@MemberSupport
public DomainObjectBoundingJpa act(final DomainObjectBoundingJpa domainObjectBounding) { // <.>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/editing/DomainObjectEditingPage_objects.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/editing/DomainObjectEditingPage_objects.java
index 626c2d79e3..49cbc332f8 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/editing/DomainObjectEditingPage_objects.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/editing/DomainObjectEditingPage_objects.java
@@ -17,7 +17,7 @@ import org.apache.causeway.applib.annotation.MemberSupport;
public class DomainObjectEditingPage_objects {
@SuppressWarnings("unused")
- private final DomainObjectEditingPage mixee;
+ private final DomainObjectEditingPage page;
@MemberSupport
public List<? extends DomainObjectEditing> coll() {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionPage_annotationOptional.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionPage_annotationOptional.java
index d43d2902b7..34aef1ec5f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionPage_annotationOptional.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionPage_annotationOptional.java
@@ -36,7 +36,7 @@ import org.apache.causeway.applib.annotation.MemberSupport;
public class DomainObjectIntrospectionPage_annotationOptional {
@SuppressWarnings("unused")
- private final DomainObjectIntrospectionPage mixee;
+ private final DomainObjectIntrospectionPage page;
@MemberSupport
public List<? extends DomainObjectIntrospectionAnnotOpt> coll() {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionPage_annotationRequired.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionPage_annotationRequired.java
index d464d06a82..664496b417 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionPage_annotationRequired.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionPage_annotationRequired.java
@@ -36,7 +36,7 @@ import org.apache.causeway.applib.annotation.MemberSupport;
public class DomainObjectIntrospectionPage_annotationRequired {
@SuppressWarnings("unused")
- private final DomainObjectIntrospectionPage mixee;
+ private final DomainObjectIntrospectionPage page;
@MemberSupport
public List<? extends DomainObjectIntrospectionAnnotReqd> coll() {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/encapsulated/jpa/DomainObjectIntrospectionVm_encapsulationEnabled.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/encapsulated/jpa/DomainObjectIntrospectionVm_encapsulationEnabled.java
index ebe0cb8795..852b8ecd92 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/encapsulated/jpa/DomainObjectIntrospectionVm_encapsulationEnabled.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/encapsulated/jpa/DomainObjectIntrospectionVm_encapsulationEnabled.java
@@ -38,7 +38,7 @@ import org.springframework.context.annotation.Profile;
public class DomainObjectIntrospectionVm_encapsulationEnabled {
@SuppressWarnings("unused")
- private final DomainObjectIntrospectionPage mixee;
+ private final DomainObjectIntrospectionPage page;
@MemberSupport
public List<DomainObjectIntrospectionEncapsulatedJpa> coll() {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/mixinMethod/DomainObjectMixinMethodPage_objects.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/mixinMethod/DomainObjectMixinMethodPage_objects.java
index d96e1e0558..d94d115e21 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/mixinMethod/DomainObjectMixinMethodPage_objects.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/mixinMethod/DomainObjectMixinMethodPage_objects.java
@@ -20,7 +20,7 @@ public class DomainObjectMixinMethodPage_objects {
// ...
//end::class[]
@SuppressWarnings("unused")
- private final DomainObjectMixinMethodPage mixee;
+ private final DomainObjectMixinMethodPage page;
//tag::class[]
public List<? extends DomainObjectMixinMethod> collection() { // <.>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/mixinMethod/DomainObjectMixinMethodPage_updateName.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/mixinMethod/DomainObjectMixinMethodPage_updateName.java
index 4a7d63c9e5..3db6c50ee2 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/mixinMethod/DomainObjectMixinMethodPage_updateName.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/mixinMethod/DomainObjectMixinMethodPage_updateName.java
@@ -20,7 +20,7 @@ import org.apache.causeway.applib.annotation.DomainObject;
public class DomainObjectMixinMethodPage_updateName {
// ...
//end::class[]
- private final DomainObjectMixinMethodPage mixee;
+ private final DomainObjectMixinMethodPage page;
//tag::class[]
public DomainObjectMixinMethodPage action( // <.>
@@ -30,7 +30,7 @@ public class DomainObjectMixinMethodPage_updateName {
// ...
//end::class[]
object.setName(newName);
- return mixee;
+ return page;
//tag::class[]
}
//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/nature/DomainObjectNaturePage_entities.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/nature/DomainObjectNaturePage_entities.java
index 86c754901e..e3350824cc 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/nature/DomainObjectNaturePage_entities.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/nature/DomainObjectNaturePage_entities.java
@@ -9,15 +9,13 @@ import java.util.List;
import javax.inject.Inject;
import org.apache.causeway.applib.annotation.Collection;
-import org.apache.causeway.applib.annotation.CollectionLayout;
-import org.apache.causeway.applib.annotation.DomainObject;
@Collection()
@RequiredArgsConstructor
public class DomainObjectNaturePage_entities {
@SuppressWarnings("unused")
- private final DomainObjectNaturePage mixee;
+ private final DomainObjectNaturePage page;
public List<? extends DomainObjectNatureEntity> coll() {
return objectRepository.all();
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/nature/DomainObjectNaturePage_viewModels.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/nature/DomainObjectNaturePage_viewModels.java
index e8734ea9e2..e57b6d08c8 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/nature/DomainObjectNaturePage_viewModels.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/nature/DomainObjectNaturePage_viewModels.java
@@ -11,8 +11,6 @@ import java.util.stream.Collectors;
import javax.inject.Inject;
import org.apache.causeway.applib.annotation.Collection;
-import org.apache.causeway.applib.annotation.CollectionLayout;
-import org.apache.causeway.applib.annotation.DomainObject;
//tag::class[]
@Collection()
@@ -21,7 +19,7 @@ public class DomainObjectNaturePage_viewModels {
// ...
//end::class[]
@SuppressWarnings("unused")
- private final DomainObjectNaturePage mixee;
+ private final DomainObjectNaturePage page;
//tag::class[]
public List<DomainObjectNatureViewModel> coll() {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking.java
new file mode 100644
index 0000000000..7e0c1fbb0b
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking.java
@@ -0,0 +1,71 @@
+/*
+ * 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 demoapp.dom.domain.objects.DomainObjectLayout.bookmarking;
+
+import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import demoapp.dom._infra.values.ValueHolder;
+import demoapp.dom.types.Samples;
+import lombok.val;
+
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import javax.inject.Inject;
+
+import org.apache.causeway.applib.annotation.Action;
+import org.apache.causeway.applib.annotation.BookmarkPolicy;
+import org.apache.causeway.applib.annotation.DomainObjectLayout;
+import org.apache.causeway.applib.annotation.SemanticsOf;
+
+@DomainObjectLayout(
+ bookmarking = BookmarkPolicy.AS_ROOT // <.>
+)
+public abstract class DomainObjectLayoutBookmarking
+ implements
+ HasAsciiDocDescription,
+ ValueHolder<String> {
+
+ public String title() {
+ return value();
+ }
+
+ @Override
+ public String value() {
+ return getName();
+ }
+
+ public abstract String getName();
+ public abstract void setName(String value);
+
+ public abstract void addChild(String value);
+
+ @Action
+ public DomainObjectLayoutBookmarking addChildren(int number) {
+ val strings = samples.stream().collect(Collectors.toList());
+ for (int i = 0; i < number; i++) {
+ addChild(strings.get(i));
+ }
+ return this;
+ }
+
+ public abstract Set<? extends DomainObjectLayoutBookmarkingChild> getChildren();
+
+ @Inject Samples<String> samples;
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking.layout.xml
similarity index 60%
copy from examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.layout.xml
copy to examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking.layout.xml
index b4f853de75..11b67b9496 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.layout.xml
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking.layout.xml
@@ -26,22 +26,59 @@
<bs3:row>
<bs3:col span="6">
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
+ <bs3:tabGroup>
+ <bs3:tab name="General">
+ <bs3:row>
+ <bs3:col span="12">
+ <cpt:fieldSet name="General" id="general" >
+ <cpt:property id="name"/>
+ </cpt:fieldSet>
+ </bs3:col>
+ </bs3:row>
+ <bs3:row>
+ <bs3:col span="12">
+ <cpt:collection id="children">
+ <cpt:action id="addChildren"/>
+ </cpt:collection>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ <bs3:tab name="Metadata">
+ <bs3:row>
+ <bs3:col span="12">
+ <cpt:fieldSet name="Metadata" id="metadata" >
+ <cpt:property id="id"/>
+ <cpt:property id="logicalTypeName"/>
+ <cpt:property id="version"/>
+ </cpt:fieldSet>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ <bs3:tab name="Other">
+ <bs3:row>
+ <bs3:col span="12">
+ <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ </bs3:tabGroup>
</bs3:col>
<bs3:col span="6">
<cpt:fieldSet name="Description" id="description" >
<cpt:action id="clearHints" position="PANEL" />
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
<cpt:action id="rebuildMetamodel" position="PANEL"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
+ <cpt:action id="downloadLayout" position="PANEL_DROPDOWN"/>
<cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="recentCommands" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadJdoMetadata" position="PANEL_DROPDOWN"/>
+ <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
+ <cpt:action id="downloadJdoMetamodel" position="PANEL_DROPDOWN"/>
+ <cpt:action id="recentCommands" position="PANEL_DROPDOWN"/>
+ <cpt:action id="recentExecutions" position="PANEL_DROPDOWN"/>
+ <cpt:action id="recentAuditTrailEntries" position="PANEL_DROPDOWN"/>
+ <cpt:action id="impersonateWithRoles" position="PANEL_DROPDOWN"/>
<cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
<cpt:property id="description"/>
</cpt:fieldSet>
- </bs3:col>
- </bs3:row>
+ </bs3:col> </bs3:row>
<bs3:row>
<bs3:col span="12" unreferencedCollections="true"/>
</bs3:row>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingChild.java
similarity index 54%
copy from examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.java
copy to examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingChild.java
index 91192e263e..ab6f12e8df 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingChild.java
@@ -19,35 +19,28 @@
package demoapp.dom.domain.objects.DomainObjectLayout.bookmarking;
import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import demoapp.dom._infra.values.ValueHolder;
-import javax.inject.Named;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
+import org.apache.causeway.applib.annotation.BookmarkPolicy;
+import org.apache.causeway.applib.annotation.DomainObjectLayout;
-import org.apache.causeway.applib.annotation.*;
-
-//tag::class[]
-@XmlRootElement(name = "root")
-@XmlType
-@XmlAccessorType(XmlAccessType.FIELD)
-@Named("demo.DomainObjectLayoutBookmarkingVm")
-@DomainObject(
- nature=Nature.VIEW_MODEL)
@DomainObjectLayout(
- bookmarking = BookmarkPolicy.AS_ROOT // <.>
- )
-public class DomainObjectLayoutBookmarkingPage implements HasAsciiDocDescription {
+ bookmarking = BookmarkPolicy.AS_CHILD // <.>
+)
+public abstract class DomainObjectLayoutBookmarkingChild
+ implements
+ HasAsciiDocDescription,
+ ValueHolder<String> {
- @ObjectSupport public String title() {
- return "DomainObjectLayout#bookmarking";
+ public String title() {
+ return value();
}
- @Action
- public DomainObjectLayoutBookmarkingNestedVm nestedObject() {
- return new DomainObjectLayoutBookmarkingNestedVm(this);
+ @Override
+ public String value() {
+ return getName();
}
+ public abstract String getName();
+ public abstract void setName(String value);
}
-//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingChild.layout.xml
similarity index 62%
copy from examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.layout.xml
copy to examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingChild.layout.xml
index b4f853de75..f924ce56d4 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.layout.xml
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingChild.layout.xml
@@ -26,22 +26,53 @@
<bs3:row>
<bs3:col span="6">
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
+ <bs3:tabGroup>
+ <bs3:tab name="General">
+ <bs3:row>
+ <bs3:col span="12">
+ <cpt:fieldSet name="General" id="general" >
+ <cpt:property id="name"/>
+ <cpt:property id="parent"/>
+ </cpt:fieldSet>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ <bs3:tab name="Metadata">
+ <bs3:row>
+ <bs3:col span="12">
+ <cpt:fieldSet name="Metadata" id="metadata" >
+ <cpt:property id="id"/>
+ <cpt:property id="logicalTypeName"/>
+ <cpt:property id="version"/>
+ </cpt:fieldSet>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ <bs3:tab name="Other">
+ <bs3:row>
+ <bs3:col span="12">
+ <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ </bs3:tabGroup>
</bs3:col>
<bs3:col span="6">
<cpt:fieldSet name="Description" id="description" >
<cpt:action id="clearHints" position="PANEL" />
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
<cpt:action id="rebuildMetamodel" position="PANEL"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
+ <cpt:action id="downloadLayout" position="PANEL_DROPDOWN"/>
<cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="recentCommands" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadJdoMetadata" position="PANEL_DROPDOWN"/>
+ <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
+ <cpt:action id="downloadJdoMetamodel" position="PANEL_DROPDOWN"/>
+ <cpt:action id="recentCommands" position="PANEL_DROPDOWN"/>
+ <cpt:action id="recentExecutions" position="PANEL_DROPDOWN"/>
+ <cpt:action id="recentAuditTrailEntries" position="PANEL_DROPDOWN"/>
+ <cpt:action id="impersonateWithRoles" position="PANEL_DROPDOWN"/>
<cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
<cpt:property id="description"/>
</cpt:fieldSet>
- </bs3:col>
- </bs3:row>
+ </bs3:col> </bs3:row>
<bs3:row>
<bs3:col span="12" unreferencedCollections="true"/>
</bs3:row>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingChildRepository.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingChildRepository.java
new file mode 100644
index 0000000000..163843c5b5
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingChildRepository.java
@@ -0,0 +1,28 @@
+/*
+ * 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 demoapp.dom.domain.objects.DomainObjectLayout.bookmarking;
+
+import demoapp.dom.domain.objects.DomainObjectLayout.bookmarking.DomainObjectLayoutBookmarkingChild;
+
+import java.util.List;
+
+public interface DomainObjectLayoutBookmarkingChildRepository {
+
+ List<? extends DomainObjectLayoutBookmarkingChild> allInstances();
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.java
index 91192e263e..8b9b517c95 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.java
@@ -37,7 +37,7 @@ import org.apache.causeway.applib.annotation.*;
nature=Nature.VIEW_MODEL)
@DomainObjectLayout(
bookmarking = BookmarkPolicy.AS_ROOT // <.>
- )
+)
public class DomainObjectLayoutBookmarkingPage implements HasAsciiDocDescription {
@ObjectSupport public String title() {
@@ -49,5 +49,6 @@ public class DomainObjectLayoutBookmarkingPage implements HasAsciiDocDescription
return new DomainObjectLayoutBookmarkingNestedVm(this);
}
+
}
//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.layout.xml
index b4f853de75..a1b7f8c7a5 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.layout.xml
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage.layout.xml
@@ -26,7 +26,16 @@
<bs3:row>
<bs3:col span="6">
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
+ <bs3:row>
+ <bs3:col span="12">
+ <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
+ </bs3:col>
+ </bs3:row>
+ <bs3:row>
+ <bs3:col span="12">
+ <cpt:collection id="objects"/>
+ </bs3:col>
+ </bs3:row>
</bs3:col>
<bs3:col span="6">
<cpt:fieldSet name="Description" id="description" >
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/aliased/DomainObjectAliasedPage_objects.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage_objects.java
similarity index 60%
copy from examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/aliased/DomainObjectAliasedPage_objects.java
copy to examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage_objects.java
index ca3fa353e8..023e8be3ca 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/aliased/DomainObjectAliasedPage_objects.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage_objects.java
@@ -1,6 +1,7 @@
-package demoapp.dom.domain.objects.DomainObject.aliased;
+package demoapp.dom.domain.objects.DomainObjectLayout.bookmarking;
import demoapp.dom._infra.values.ValueHolderRepository;
+import demoapp.dom.domain.objects.DomainObject.aliased.DomainObjectAliased;
import lombok.RequiredArgsConstructor;
import java.util.List;
@@ -14,16 +15,16 @@ import org.apache.causeway.applib.annotation.MemberSupport;
@Collection()
@CollectionLayout()
@RequiredArgsConstructor
-public class DomainObjectAliasedPage_objects {
+public class DomainObjectLayoutBookmarkingPage_objects {
@SuppressWarnings("unused")
- private final DomainObjectAliasedPage mixee;
+ private final DomainObjectLayoutBookmarkingPage page;
@MemberSupport
- public List<? extends DomainObjectAliased> coll() {
+ public List<? extends DomainObjectLayoutBookmarking> coll() {
return objectRepository.all();
}
- @Inject ValueHolderRepository<String, ? extends DomainObjectAliased> objectRepository;
+ @Inject ValueHolderRepository<String, ? extends DomainObjectLayoutBookmarking> objectRepository;
}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingRepository.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingRepository.java
new file mode 100644
index 0000000000..d1bb1e94f2
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingRepository.java
@@ -0,0 +1,28 @@
+/*
+ * 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 demoapp.dom.domain.objects.DomainObjectLayout.bookmarking;
+
+import demoapp.dom.domain.objects.DomainObject.aliased.DomainObjectAliased;
+
+import java.util.List;
+
+public interface DomainObjectLayoutBookmarkingRepository {
+
+ List<? extends DomainObjectLayoutBookmarking> allInstances();
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionPage_annotationOptional.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingSeeding.java
similarity index 52%
copy from examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionPage_annotationOptional.java
copy to examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingSeeding.java
index d43d2902b7..c8dcfcea3b 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionPage_annotationOptional.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingSeeding.java
@@ -16,33 +16,24 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.domain.objects.DomainObject.introspection;
+package demoapp.dom.domain.objects.DomainObjectLayout.bookmarking;
+import demoapp.dom._infra.seed.SeedServiceAbstract;
import demoapp.dom._infra.values.ValueHolderRepository;
-import demoapp.dom.domain.objects.DomainObject.introspection.annotOpt.DomainObjectIntrospectionAnnotOpt;
-import lombok.RequiredArgsConstructor;
-
-import java.util.List;
+import demoapp.dom.types.Samples;
import javax.inject.Inject;
-import org.apache.causeway.applib.annotation.Collection;
-import org.apache.causeway.applib.annotation.CollectionLayout;
-import org.apache.causeway.applib.annotation.MemberSupport;
-
-@Collection()
-@CollectionLayout()
-@RequiredArgsConstructor
-public class DomainObjectIntrospectionPage_annotationOptional {
+import org.springframework.stereotype.Service;
- @SuppressWarnings("unused")
- private final DomainObjectIntrospectionPage mixee;
+@Service
+public class DomainObjectLayoutBookmarkingSeeding
+extends SeedServiceAbstract {
- @MemberSupport
- public List<? extends DomainObjectIntrospectionAnnotOpt> coll() {
- return entities.all();
+ @Inject
+ public DomainObjectLayoutBookmarkingSeeding(
+ ValueHolderRepository<String, ? extends DomainObjectLayoutBookmarking> entities) {
+ super(entities);
}
- @Inject ValueHolderRepository<String, ? extends DomainObjectIntrospectionAnnotOpt> entities;
-
}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionPage_annotationOptional.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking_addChildren.java
similarity index 51%
copy from examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionPage_annotationOptional.java
copy to examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking_addChildren.java
index d43d2902b7..ec4170aefa 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionPage_annotationOptional.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking_addChildren.java
@@ -16,33 +16,42 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.domain.objects.DomainObject.introspection;
+package demoapp.dom.domain.objects.DomainObjectLayout.bookmarking;
-import demoapp.dom._infra.values.ValueHolderRepository;
-import demoapp.dom.domain.objects.DomainObject.introspection.annotOpt.DomainObjectIntrospectionAnnotOpt;
+import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import demoapp.dom._infra.values.ValueHolder;
+import demoapp.dom.types.Samples;
import lombok.RequiredArgsConstructor;
+import lombok.val;
-import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
import javax.inject.Inject;
-import org.apache.causeway.applib.annotation.Collection;
-import org.apache.causeway.applib.annotation.CollectionLayout;
+import org.apache.causeway.applib.annotation.Action;
+import org.apache.causeway.applib.annotation.BookmarkPolicy;
+import org.apache.causeway.applib.annotation.DomainObjectLayout;
import org.apache.causeway.applib.annotation.MemberSupport;
-@Collection()
-@CollectionLayout()
+@Action
@RequiredArgsConstructor
-public class DomainObjectIntrospectionPage_annotationOptional {
+public class DomainObjectLayoutBookmarking_addChildren {
- @SuppressWarnings("unused")
- private final DomainObjectIntrospectionPage mixee;
+ private final DomainObjectLayoutBookmarking parent;
@MemberSupport
- public List<? extends DomainObjectIntrospectionAnnotOpt> coll() {
- return entities.all();
+ public DomainObjectLayoutBookmarking act(int number) {
+ val strings = samples.stream().collect(Collectors.toList());
+ for (int i = 0; i < number; i++) {
+ parent.addChild(parent.getName() + " - " + strings.get(i));
+ }
+ return parent;
+ }
+ @MemberSupport public int default0Act() {
+ return 3;
}
- @Inject ValueHolderRepository<String, ? extends DomainObjectIntrospectionAnnotOpt> entities;
+ @Inject Samples<String> samples;
}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingChildJpa-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingChildJpa-description.adoc
new file mode 100644
index 0000000000..ffbf0ae9a9
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingChildJpa-description.adoc
@@ -0,0 +1,7 @@
+:Notice: 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 ag [...]
+
+[source,java,indent=0]
+----
+include::DomainObjectLayoutBookmarkingJpa.java[tags=class]
+----
+<.>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingChildJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingChildJpa.java
new file mode 100644
index 0000000000..7ce5db9eeb
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingChildJpa.java
@@ -0,0 +1,71 @@
+/*
+ * 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 demoapp.dom.domain.objects.DomainObjectLayout.bookmarking.jpa;
+
+import demoapp.dom.domain.objects.DomainObjectLayout.bookmarking.DomainObjectLayoutBookmarkingChild;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import javax.inject.Named;
+import javax.persistence.*;
+
+import org.apache.causeway.applib.annotation.DomainObject;
+import org.apache.causeway.applib.annotation.Nature;
+import org.apache.causeway.applib.annotation.Property;
+import org.apache.causeway.persistence.jpa.applib.integration.CausewayEntityListener;
+import org.springframework.context.annotation.Profile;
+
+@Profile("demo-jpa")
+@Entity
+@Table(
+ schema = "demo",
+ name = "DomainObjectLayoutBookmarkingChildJpa"
+)
+@EntityListeners(CausewayEntityListener.class)
+@Named("demo.DomainObjectLayoutBookmarkingChildJpa")
+@NoArgsConstructor
+//tag::class[]
+// ...
+@DomainObject(nature = Nature.ENTITY)
+public class DomainObjectLayoutBookmarkingChildJpa extends DomainObjectLayoutBookmarkingChild {
+ // ...
+//end::class[]
+
+ public DomainObjectLayoutBookmarkingChildJpa(DomainObjectLayoutBookmarkingJpa parent, String value) {
+ setParent(parent);
+ setName(value);
+ }
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ @Property
+ @Getter @Setter
+ private String name;
+
+ @Property
+ @ManyToOne(fetch = FetchType.LAZY)
+ @Getter @Setter
+ private DomainObjectLayoutBookmarkingJpa parent;
+
+//tag::class[]
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingJpa-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingJpa-description.adoc
new file mode 100644
index 0000000000..ffbf0ae9a9
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingJpa-description.adoc
@@ -0,0 +1,7 @@
+:Notice: 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 ag [...]
+
+[source,java,indent=0]
+----
+include::DomainObjectLayoutBookmarkingJpa.java[tags=class]
+----
+<.>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingJpa.java
new file mode 100644
index 0000000000..6fe0b4c6fd
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingJpa.java
@@ -0,0 +1,81 @@
+/*
+ * 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 demoapp.dom.domain.objects.DomainObjectLayout.bookmarking.jpa;
+
+import demoapp.dom.domain.objects.DomainObjectLayout.bookmarking.DomainObjectLayoutBookmarking;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.util.Set;
+import java.util.TreeSet;
+
+import javax.inject.Named;
+import javax.persistence.*;
+
+import org.apache.causeway.applib.annotation.Collection;
+import org.apache.causeway.applib.annotation.DomainObject;
+import org.apache.causeway.applib.annotation.Nature;
+import org.apache.causeway.persistence.jpa.applib.integration.CausewayEntityListener;
+import org.springframework.context.annotation.Profile;
+
+@Profile("demo-jpa")
+@Entity
+@Table(
+ schema = "demo",
+ name = "DomainObjectLayoutBookmarkingJpa"
+)
+@EntityListeners(CausewayEntityListener.class)
+@Named("demo.DomainObjectLayoutBookmarkingJpa")
+@NoArgsConstructor
+//tag::class[]
+// ...
+@DomainObject(nature = Nature.ENTITY)
+public class DomainObjectLayoutBookmarkingJpa extends DomainObjectLayoutBookmarking {
+ // ...
+//end::class[]
+
+ public DomainObjectLayoutBookmarkingJpa(String value) {
+ setName(value);
+ }
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ @Getter @Setter
+ private String name;
+
+ @Collection
+ @OneToMany(
+ mappedBy = "parent",
+ cascade = CascadeType.ALL,
+ orphanRemoval = true
+ )
+ @Getter @Setter
+ private Set<DomainObjectLayoutBookmarkingChildJpa> children = new TreeSet<>();
+
+ @Override
+ public void addChild(String value) {
+ getChildren().add(new DomainObjectLayoutBookmarkingChildJpa(this, value));
+ }
+
+//tag::class[]
+}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingJpaEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingJpaEntities.java
new file mode 100644
index 0000000000..64eab563ab
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingJpaEntities.java
@@ -0,0 +1,56 @@
+/*
+ * 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 demoapp.dom.domain.objects.DomainObjectLayout.bookmarking.jpa;
+
+import demoapp.dom._infra.values.ValueHolderRepository;
+import demoapp.dom.domain.objects.DomainObject.aliased.DomainObjectAliasedRepository;
+import demoapp.dom.domain.objects.DomainObjectLayout.bookmarking.DomainObjectLayoutBookmarking;
+import demoapp.dom.domain.objects.DomainObjectLayout.bookmarking.DomainObjectLayoutBookmarkingRepository;
+
+import java.util.List;
+
+import org.springframework.context.annotation.Profile;
+import org.springframework.stereotype.Service;
+
+@Profile("demo-jpa")
+@Service
+public class DomainObjectLayoutBookmarkingJpaEntities
+extends ValueHolderRepository<String, DomainObjectLayoutBookmarkingJpa> implements DomainObjectLayoutBookmarkingRepository {
+
+ protected DomainObjectLayoutBookmarkingJpaEntities() {
+ super(DomainObjectLayoutBookmarkingJpa.class);
+ }
+
+ @Override
+ protected DomainObjectLayoutBookmarkingJpa newDetachedEntity(String value) {
+ return new DomainObjectLayoutBookmarkingJpa(value);
+ }
+
+ @Override
+ public List<? extends DomainObjectLayoutBookmarking> allInstances() {
+ return all();
+ }
+
+ public List<? extends DomainObjectLayoutBookmarking> allMatches(final String s) {
+ return all();
+ }
+ public List<? extends DomainObjectLayoutBookmarking> allMatches() {
+ return all();
+ }
+}
[causeway] 02/02: CAUSEWAY-2485: completes @DomainObjectLayout#bookmarking
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/causeway.git
commit 2d0d80f6ac4a89cc0d7fbd7e456ed329bba4eb2a
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Apr 4 07:47:42 2023 +0100
CAUSEWAY-2485: completes @DomainObjectLayout#bookmarking
---
.../bookmarking/DomainObjectLayoutBookmarking.java | 25 ++++++++--------------
.../DomainObjectLayoutBookmarkingChild.java | 10 ++++++++-
...ainObjectLayoutBookmarkingPage-description.adoc | 18 ++++++++++++++--
.../DomainObjectLayoutBookmarkingSeeding.java | 2 +-
.../DomainObjectLayoutBookmarking_addChildren.java | 1 -
...bjectLayoutBookmarkingChildJpa-description.adoc | 6 ++++--
...mainObjectLayoutBookmarkingJpa-description.adoc | 13 +++++++++--
7 files changed, 50 insertions(+), 25 deletions(-)
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking.java
index 7e0c1fbb0b..d01a6dcabe 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking.java
@@ -21,26 +21,27 @@ package demoapp.dom.domain.objects.DomainObjectLayout.bookmarking;
import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
import demoapp.dom._infra.values.ValueHolder;
import demoapp.dom.types.Samples;
-import lombok.val;
-import java.util.List;
import java.util.Set;
-import java.util.stream.Collectors;
import javax.inject.Inject;
-import org.apache.causeway.applib.annotation.Action;
import org.apache.causeway.applib.annotation.BookmarkPolicy;
import org.apache.causeway.applib.annotation.DomainObjectLayout;
-import org.apache.causeway.applib.annotation.SemanticsOf;
+//tag::class[]
@DomainObjectLayout(
bookmarking = BookmarkPolicy.AS_ROOT // <.>
)
public abstract class DomainObjectLayoutBookmarking
+//end::class[]
implements
HasAsciiDocDescription,
- ValueHolder<String> {
+ ValueHolder<String>
+//tag::class[]
+{
+ // ...
+//end::class[]
public String title() {
return value();
@@ -56,16 +57,8 @@ public abstract class DomainObjectLayoutBookmarking
public abstract void addChild(String value);
- @Action
- public DomainObjectLayoutBookmarking addChildren(int number) {
- val strings = samples.stream().collect(Collectors.toList());
- for (int i = 0; i < number; i++) {
- addChild(strings.get(i));
- }
- return this;
- }
-
public abstract Set<? extends DomainObjectLayoutBookmarkingChild> getChildren();
- @Inject Samples<String> samples;
+//tag::class[]
}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingChild.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingChild.java
index ab6f12e8df..e0b3f64efb 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingChild.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingChild.java
@@ -24,13 +24,19 @@ import demoapp.dom._infra.values.ValueHolder;
import org.apache.causeway.applib.annotation.BookmarkPolicy;
import org.apache.causeway.applib.annotation.DomainObjectLayout;
+//tag::class[]
@DomainObjectLayout(
bookmarking = BookmarkPolicy.AS_CHILD // <.>
)
public abstract class DomainObjectLayoutBookmarkingChild
+//end::class[]
implements
HasAsciiDocDescription,
- ValueHolder<String> {
+ ValueHolder<String>
+//tag::class[]
+{
+ // ...
+//end::class[]
public String title() {
return value();
@@ -43,4 +49,6 @@ public abstract class DomainObjectLayoutBookmarkingChild
public abstract String getName();
public abstract void setName(String value);
+//tag::class[]
}
+//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage-description.adoc
index 53b9120b54..7c1250959e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingPage-description.adoc
@@ -1,5 +1,19 @@
:Notice: 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 ag [...]
-The `bookmarking` attribute governs whether (and how) this domain object can be bookmarked in the UI.
-The UI has a top left positioned dropdown panel (Bookmark Panel) to show links to recently visited objects.
+Moving the mouse over to the top-left of the page will bring down a set of bookmarks.
+If an object is rendered and the link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/DomainObjectLayout.html#bookmarking[@DomainObjectLayout#bookmarking] is set appropriately, then a link to it will be added automatically to the bookmark list, so that the end-user can easily navigate back to the page later on in their session.
+To make this set of bookmarks more useful, the set of bookmarks can be organised into a tree.
+An object annotated as a link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/BookmarkPolicy.html#as_root[root] bookmark will always be added.
+However an object annotated as a link:https://causeway.apache.org/refguide/2.0.0-SNAPSHOT/applib/index/annotation/BookmarkPolicy.html#as_child[child] bookmark will only be added if its parent object is also bookmarked.
+
+=== How this demo works
+
+On the left hand side is a collection of objects.
+These are all annotated as root bookmarks.
+Navigate into any of them and a bookmark should be added to the bookmark list.
+
+In addition, these "parent" objects have an action "addChildren".
+Call this action and a set of objects will be added.
+These children objects are annotated to use "child" bookmarks.
+Navigate into any child object and their bookmark should be added at the correct place.
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingSeeding.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingSeeding.java
index c8dcfcea3b..dcf5ad1c9e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingSeeding.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingSeeding.java
@@ -20,10 +20,10 @@ package demoapp.dom.domain.objects.DomainObjectLayout.bookmarking;
import demoapp.dom._infra.seed.SeedServiceAbstract;
import demoapp.dom._infra.values.ValueHolderRepository;
-import demoapp.dom.types.Samples;
import javax.inject.Inject;
+import org.apache.causeway.applib.services.xactn.TransactionService;
import org.springframework.stereotype.Service;
@Service
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking_addChildren.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking_addChildren.java
index ec4170aefa..3931d19068 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking_addChildren.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarking_addChildren.java
@@ -52,6 +52,5 @@ public class DomainObjectLayoutBookmarking_addChildren {
return 3;
}
-
@Inject Samples<String> samples;
}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingChildJpa-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingChildJpa-description.adoc
index ffbf0ae9a9..19d333221d 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingChildJpa-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingChildJpa-description.adoc
@@ -1,7 +1,9 @@
:Notice: 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 ag [...]
+This object is annotated with a "child" bookmarking policy, meaning that a link to it will be added to the bookmark panel, but grouped under its parent object's link.
+
[source,java,indent=0]
----
-include::DomainObjectLayoutBookmarkingJpa.java[tags=class]
+include::../DomainObjectLayoutBookmarkingChild.java[tags=class]
----
-<.>
+<.> uses child bookmark policy
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingJpa-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingJpa-description.adoc
index ffbf0ae9a9..94e16d0133 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingJpa-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObjectLayout/bookmarking/jpa/DomainObjectLayoutBookmarkingJpa-description.adoc
@@ -1,7 +1,16 @@
:Notice: 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 ag [...]
+This object is annotated with a "root" bookmarking policy, meaning that it will always be shown in the bookmark panel.
+
[source,java,indent=0]
----
-include::DomainObjectLayoutBookmarkingJpa.java[tags=class]
+include::../DomainObjectLayoutBookmarking.java[tags=class]
----
-<.>
+<.> uses root bookmark policy
+
+
+=== How this demo works
+
+Use the "addChildren" action to add some children, and navigate into them.
+
+Their bookmarks should be grouped under this parent's bookmark.