This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch 20230427-view-model-usage
in repository https://gitbox.apache.org/repos/asf/causeway-app-simpleapp.git

commit fbf522cb49d4433d4bd5f024dc48fb49dcae2fa3
Author: danhaywood <[email protected]>
AuthorDate: Thu Apr 27 12:19:39 2023 +0100

    demo view model creation
---
 .../modules/simple/dom/so/SimpleObjects.java       |  5 +++
 .../domainapp/modules/simple/dom/so/ThingPage.java | 47 ++++++++++++++++++++++
 webapp/src/main/resources/menubars.layout.xml      |  1 +
 3 files changed, 53 insertions(+)

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 d601b93..00c62bb 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
@@ -34,6 +34,11 @@ public class SimpleObjects {
     final JpaSupportService jpaSupportService;
     final SimpleObjectRepository simpleObjectRepository;
 
+    @Action
+    @ActionLayout
+    public ThingPage openThingPage() {
+        return new ThingPage();
+    }
 
     @Action(semantics = SemanticsOf.NON_IDEMPOTENT)
     @ActionLayout(promptStyle = PromptStyle.DIALOG_SIDEBAR)
diff --git 
a/module-simple/src/main/java/domainapp/modules/simple/dom/so/ThingPage.java 
b/module-simple/src/main/java/domainapp/modules/simple/dom/so/ThingPage.java
new file mode 100644
index 0000000..59534a7
--- /dev/null
+++ b/module-simple/src/main/java/domainapp/modules/simple/dom/so/ThingPage.java
@@ -0,0 +1,47 @@
+package domainapp.modules.simple.dom.so;
+
+import java.time.Instant;
+
+import javax.inject.Named;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.causeway.applib.annotation.DomainObject;
+import org.apache.causeway.applib.annotation.DomainObjectLayout;
+import org.apache.causeway.applib.annotation.Editing;
+import org.apache.causeway.applib.annotation.Nature;
+import org.apache.causeway.applib.annotation.Property;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.extern.slf4j.Slf4j;
+
+import domainapp.modules.simple.SimpleModule;
+
+@Named(SimpleModule.NAMESPACE + ".ThingPage")
+@DomainObject( nature = Nature.VIEW_MODEL )
+@XmlRootElement( name = "ThingPage" )
+@XmlAccessorType( XmlAccessType.FIELD )
+@Slf4j
+@DomainObjectLayout()
+public class ThingPage {
+
+    public String title() {
+        return "thing page";
+    }
+
+    @Property( editing = Editing.ENABLED )
+    @Getter @Setter
+    private String prop1;
+
+    @Property( editing = Editing.ENABLED )
+    @Getter @Setter
+    private String prop2;
+
+    public ThingPage() {
+        prop1 = Instant.now().toString();
+        prop2 = Instant.now() + "_2";
+        log.info( "Created new ThingPage with prop1 {} and prop2 {}", prop1, 
prop2 );
+    }
+}
\ No newline at end of file
diff --git a/webapp/src/main/resources/menubars.layout.xml 
b/webapp/src/main/resources/menubars.layout.xml
index 0cd0fce..a4afdc4 100644
--- a/webapp/src/main/resources/menubars.layout.xml
+++ b/webapp/src/main/resources/menubars.layout.xml
@@ -9,6 +9,7 @@
             <mb3:named>Simple Objects</mb3:named>
             <mb3:section>
                 <mb3:serviceAction objectType="simple.SimpleObjects" 
id="create"/>
+                <mb3:serviceAction objectType="simple.SimpleObjects" 
id="openThingPage"/>
                 <mb3:serviceAction objectType="simple.SimpleObjects" 
id="findByName"/>
                 <mb3:serviceAction objectType="simple.SimpleObjects" 
id="findByNameLike"/>
                 <mb3:serviceAction objectType="simple.SimpleObjects" 
id="listAll"/>

Reply via email to