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;
+
+}