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"/>
