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 2024/06/13 13:45:58 UTC
(causeway-app-simpleapp) 01/03: CAUSEWAY-3772: attempt to reproduce
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch CAUSEWAY-3772-jdo
in repository https://gitbox.apache.org/repos/asf/causeway-app-simpleapp.git
commit a1f467320cc6c2fbf25521ee49bcb2d9254bf92a
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Jun 11 11:06:52 2024 +0100
CAUSEWAY-3772: attempt to reproduce
---
.../services/homepage/HomePageViewModel.layout.xml | 3 ++
.../services/homepage/HomePageViewModel_items.java | 31 ++++++++++++
.../services/homepage/SimpleObjectItem.java | 55 ++++++++++++++++++++++
3 files changed, 89 insertions(+)
diff --git a/webapp/src/main/java/domainapp/webapp/application/services/homepage/HomePageViewModel.layout.xml b/webapp/src/main/java/domainapp/webapp/application/services/homepage/HomePageViewModel.layout.xml
index eefb868..4a3b61b 100644
--- a/webapp/src/main/java/domainapp/webapp/application/services/homepage/HomePageViewModel.layout.xml
+++ b/webapp/src/main/java/domainapp/webapp/application/services/homepage/HomePageViewModel.layout.xml
@@ -23,6 +23,9 @@
</bs3:col>
<bs3:col span="6" unreferencedCollections="true">
<bs3:row>
+ <bs3:col span="12">
+ <cpt:collection id="items" defaultView="table"/>
+ </bs3:col>
<bs3:col span="12">
<cpt:collection id="objects" defaultView="table"/>
</bs3:col>
diff --git a/webapp/src/main/java/domainapp/webapp/application/services/homepage/HomePageViewModel_items.java b/webapp/src/main/java/domainapp/webapp/application/services/homepage/HomePageViewModel_items.java
new file mode 100644
index 0000000..dce1080
--- /dev/null
+++ b/webapp/src/main/java/domainapp/webapp/application/services/homepage/HomePageViewModel_items.java
@@ -0,0 +1,31 @@
+package domainapp.webapp.application.services.homepage;
+
+import lombok.RequiredArgsConstructor;
+
+import java.util.List;
+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.MemberSupport;
+
+@Collection
+@CollectionLayout(
+ defaultView = "table",
+ paged = 200
+)
+@RequiredArgsConstructor(onConstructor_ = {@Inject})
+public class HomePageViewModel_items {
+
+ private final HomePageViewModel homePageViewModel;
+
+ @MemberSupport
+ public List<SimpleObjectItem> coll() {
+ return homePageViewModel.getObjects().stream()
+ .map(SimpleObjectItem::new)
+ .collect(Collectors.toList());
+ }
+
+}
diff --git a/webapp/src/main/java/domainapp/webapp/application/services/homepage/SimpleObjectItem.java b/webapp/src/main/java/domainapp/webapp/application/services/homepage/SimpleObjectItem.java
new file mode 100644
index 0000000..0301ab5
--- /dev/null
+++ b/webapp/src/main/java/domainapp/webapp/application/services/homepage/SimpleObjectItem.java
@@ -0,0 +1,55 @@
+package domainapp.webapp.application.services.homepage;
+
+import domainapp.modules.simple.SimpleModule;
+
+import domainapp.modules.simple.dom.so.SimpleObject;
+
+import lombok.AccessLevel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.apache.causeway.applib.annotation.DomainObject;
+import org.apache.causeway.applib.annotation.DomainObjectLayout;
+import org.apache.causeway.applib.annotation.Nature;
+import org.apache.causeway.applib.annotation.Property;
+import org.apache.causeway.applib.annotation.PropertyLayout;
+import org.apache.causeway.applib.services.title.TitleService;
+
+@Named(SimpleModule.NAMESPACE + ".SimpleObjectItem")
+@DomainObject(nature = Nature.VIEW_MODEL)
+@DomainObjectLayout
+@NoArgsConstructor
+@AllArgsConstructor(access = AccessLevel.PACKAGE)
+public class SimpleObjectItem {
+
+
+ @Builder
+ public SimpleObjectItem(
+ final SimpleObject simpleObject) {
+ this.simpleObject = simpleObject;
+ }
+
+ @Property
+ @PropertyLayout(sequence = "1")
+ @Getter @Setter
+ private SimpleObject simpleObject;
+
+ public String title() {
+ return titleService.titleOf(getSimpleObject());
+ }
+
+ @Property()
+ @PropertyLayout(sequence = "1.4")
+ public String getSendTo() {
+ return getSimpleObject().getName();
+ }
+
+ @Inject TitleService titleService;
+
+}