You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by jd...@apache.org on 2022/09/28 14:18:18 UTC
[isis-app-simpleapp] 01/01: Demonstrates issue ISIS-3226
This is an automated email from the ASF dual-hosted git repository.
jdoornenbal pushed a commit to branch ISIS-3226
in repository https://gitbox.apache.org/repos/asf/isis-app-simpleapp.git
commit 90a9ed5f2ce334427ebdc45a0833d8a12cda4b67
Author: Johan Doornenbal <jo...@yodo.nl>
AuthorDate: Wed Sep 28 16:18:05 2022 +0200
Demonstrates issue ISIS-3226
---
.../modules/simple/dom/so/SimpleObjects.java | 22 +++++----
.../domainapp/modules/simple/dom/so/SimpleVM.java | 44 ++++++++++++++++++
.../modules/simple/dom/so/SimpleVM.layout.xml | 52 ++++++++++++++++++++++
webapp/src/main/resources/menubars.layout.xml | 1 +
4 files changed, 111 insertions(+), 8 deletions(-)
diff --git a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java
index 0a2cf1f..63f8eb6 100644
--- a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java
+++ b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java
@@ -1,20 +1,15 @@
package domainapp.modules.simple.dom.so;
+import java.time.LocalDate;
import java.util.List;
+import javax.annotation.Nullable;
import javax.annotation.Priority;
import javax.inject.Inject;
import javax.inject.Named;
import javax.persistence.TypedQuery;
-import org.apache.isis.applib.annotation.Action;
-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.NatureOfService;
-import org.apache.isis.applib.annotation.PriorityPrecedence;
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.annotation.*;
import org.apache.isis.applib.query.Query;
import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.persistence.jpa.applib.services.JpaSupportService;
@@ -34,6 +29,17 @@ public class SimpleObjects {
final JpaSupportService jpaSupportService;
final SimpleObjectRepository simpleObjectRepository;
+ @Action()
+ public SimpleVM testWithViewModel(@Nullable final SimpleObject object, @Nullable LocalDate date, @Nullable String name){
+ return new SimpleVM(object, date, name);
+ }
+
+ @MemberSupport()
+ public List<SimpleObject> choices0TestWithViewModel(){
+ return simpleObjectRepository.findAll();
+ }
+
+
@Action(semantics = SemanticsOf.NON_IDEMPOTENT)
@ActionLayout(promptStyle = PromptStyle.DIALOG_SIDEBAR)
diff --git a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleVM.java b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleVM.java
new file mode 100644
index 0000000..8bd2abe
--- /dev/null
+++ b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleVM.java
@@ -0,0 +1,44 @@
+package domainapp.modules.simple.dom.so;
+
+import domainapp.modules.simple.SimpleModule;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.Nature;
+import org.apache.isis.applib.annotation.ObjectSupport;
+import org.apache.isis.applib.annotation.Property;
+
+import javax.inject.Named;
+import java.time.LocalDate;
+
+@DomainObject(nature = Nature.VIEW_MODEL)
+@Named(SimpleModule.NAMESPACE + ".SimpleVM")
+@NoArgsConstructor
+public class SimpleVM {
+
+ public SimpleVM(SimpleObject object, LocalDate date, String name){
+ this.object = object;
+ this.someDate = date;
+ this.name = name;
+ }
+
+ @ObjectSupport
+ public String title(){
+ return "Simple viewmodel";
+ }
+
+ @Property
+ @Getter @Setter
+ private SimpleObject object;
+
+ @Property
+ @Getter @Setter
+ private LocalDate someDate;
+
+ @Property
+ @Getter @Setter
+ private String name;
+
+
+}
diff --git a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleVM.layout.xml b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleVM.layout.xml
new file mode 100644
index 0000000..7ce987a
--- /dev/null
+++ b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleVM.layout.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<bs3:grid xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd" xmlns:c="http://isis.apache.org/applib/layout/component" xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+ <bs3:row>
+ <bs3:col span="12" unreferencedActions="true">
+ <c:domainObject bookmarking="AS_ROOT"/>
+ </bs3:col>
+ </bs3:row>
+ <bs3:row>
+ <bs3:col span="6">
+ <bs3:row>
+ <bs3:col span="12">
+ <bs3:tabGroup>
+ <bs3:tab name="Identity">
+ <bs3:row>
+ <bs3:col span="12">
+ <c:fieldSet name="Identity" id="identity"/>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ <bs3:tab name="Other">
+ <bs3:row>
+ <bs3:col span="12">
+ <c:fieldSet name="Other" id="other" unreferencedProperties="true"/>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ <bs3:tab name="Metadata">
+ <bs3:row>
+ <bs3:col span="12">
+ <c:fieldSet name="Metadata" id="metadata"/>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ </bs3:tabGroup>
+ </bs3:col>
+ <bs3:col span="12">
+ <c:fieldSet name="Details" id="details"/>
+ </bs3:col>
+ </bs3:row>
+ </bs3:col>
+ <bs3:col span="6">
+ <bs3:row>
+ <bs3:col span="12">
+ <c:fieldSet name="Content" id="content"/>
+ </bs3:col>
+ </bs3:row>
+ <bs3:tabGroup unreferencedCollections="true">
+ </bs3:tabGroup>
+ </bs3:col>
+ </bs3:row>
+</bs3:grid>
diff --git a/webapp/src/main/resources/menubars.layout.xml b/webapp/src/main/resources/menubars.layout.xml
index a7ac932..c382211 100644
--- a/webapp/src/main/resources/menubars.layout.xml
+++ b/webapp/src/main/resources/menubars.layout.xml
@@ -4,6 +4,7 @@
<mb3:menu>
<mb3:named>Simple Objects</mb3:named>
<mb3:section>
+ <mb3:serviceAction objectType="simple.SimpleObjects" id="testWithViewModel"/>
<mb3:serviceAction objectType="simple.SimpleObjects" id="create"/>
<mb3:serviceAction objectType="simple.SimpleObjects" id="findByName"/>
<mb3:serviceAction objectType="simple.SimpleObjects" id="findByNameLike"/>