This is an automated email from the ASF dual-hosted git repository. ahuber pushed a commit to branch spring6 in repository https://gitbox.apache.org/repos/asf/causeway.git
commit e29b5ae58e99f543c81c81e314fe68778bf3ca6e Merge: d9d03bfe65 abe10e0906 Author: andi-huber <[email protected]> AuthorDate: Thu Apr 13 17:12:05 2023 +0200 Merge remote-tracking branch 'origin/master' into spring6 .../applib/services/error/SimpleTicket.java | 26 +++-- .../causeway/commons/internal/base/_Strings.java | 28 +++++ .../objectmanager/ObjectManagerDefault.java | 7 +- .../dom/domain/actions/Action/ActionMenu.java | 1 - .../actions/Action/typeOf/ActionTypeOfPage.java | 2 +- .../actions/ActionLayout/ActionLayoutMenu.java | 15 ++- .../ActionLayoutAssociateWithPage-description.adoc | 31 +++-- .../ActionLayoutAssociateWithPage.java | 91 ++++++++++----- .../ActionLayoutAssociateWithPage.layout.xml | 32 +++--- ...ionLayoutAssociateWithChildVm-description.adoc} | 11 +- .../child/ActionLayoutAssociateWithChildVm.java} | 55 ++++----- .../ActionLayoutAssociateWithChildVm.layout.xml} | 20 +--- .../ActionLayoutCssClassPage-description.adoc | 124 +++++++++++++++++++- .../cssClass/ActionLayoutCssClassPage.java | 113 +++++++++++++++--- .../ActionLayoutCssClassFaPage-description.adoc | 66 ++++++++++- .../cssClassFa/ActionLayoutCssClassFaPage.java | 55 +++++---- .../WhereInTheWorldMenu.java => FeaturedMenu.java} | 51 +++++++-- .../customui/vm/WhereInTheWorldVm-description.adoc | 2 +- .../layout/describedAs/DescribedAsMenu.java | 59 ---------- .../demoapp/dom/featured/layout/tabs/TabMenu.java | 52 --------- .../src/main/java/demoapp/dom/menubars.layout.xml | 14 +-- .../core/errorreportingservice/EmailTicket.java | 60 +++++++--- .../actionpromptsb/ActionPromptSidebar.java | 2 + .../viewer/wicket/ui/errors/ExceptionModel.java | 4 +- .../wicket/ui/errors/ExceptionStackTracePanel.java | 127 +++++++++++---------- .../accmngt/AccountManagementPageAbstract.java | 5 +- .../viewer/wicket/ui/pages/error/ErrorPage.java | 5 +- 27 files changed, 673 insertions(+), 385 deletions(-) diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/ActionLayoutMenu.java index eb547bfced,e7f8b5cd9b..78210d2793 --- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/ActionLayoutMenu.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/ActionLayoutMenu.java @@@ -18,7 -18,8 +18,8 @@@ */ package demoapp.dom.domain.actions.ActionLayout; -import javax.inject.Inject; -import javax.inject.Named; ++import jakarta.inject.Inject; +import jakarta.inject.Named; import org.apache.causeway.applib.annotation.Action; import org.apache.causeway.applib.annotation.ActionLayout; @@@ -27,7 -28,10 +28,9 @@@ import org.apache.causeway.applib.annot import org.apache.causeway.applib.annotation.PriorityPrecedence; import org.apache.causeway.applib.annotation.SemanticsOf; + import demoapp.dom._infra.samples.NameSamples; -import demoapp.dom.domain.actions.Action.typeOf.child.ActionTypeOfChildVm; import demoapp.dom.domain.actions.ActionLayout.associateWith.ActionLayoutAssociateWithPage; + import demoapp.dom.domain.actions.ActionLayout.associateWith.child.ActionLayoutAssociateWithChildVm; import demoapp.dom.domain.actions.ActionLayout.cssClass.ActionLayoutCssClassPage; import demoapp.dom.domain.actions.ActionLayout.cssClassFa.ActionLayoutCssClassFaPage; import demoapp.dom.domain.actions.ActionLayout.describedAs.ActionLayoutDescribedAsPage; @@@ -41,10 -47,12 +46,12 @@@ import lombok.val @DomainService(nature=NatureOfService.VIEW) @Named("demo.ActionLayoutMenu") [email protected](PriorityPrecedence.EARLY) [email protected](PriorityPrecedence.EARLY) - //@Log4j2 + @RequiredArgsConstructor(onConstructor_ = {@Inject}) public class ActionLayoutMenu { + final NameSamples samples; + @Action(semantics = SemanticsOf.SAFE) @ActionLayout(cssClassFa="fa-solid fa-arrows-left-right", describedAs = "Associate an action with a property or collection, specifying its id") diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/associateWith/ActionLayoutAssociateWithPage.java index 9dd604c782,1ac03dc5a5..978dc813fe --- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/associateWith/ActionLayoutAssociateWithPage.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/associateWith/ActionLayoutAssociateWithPage.java @@@ -18,21 -18,14 +18,14 @@@ */ package demoapp.dom.domain.actions.ActionLayout.associateWith; -import javax.inject.Named; -import javax.xml.bind.annotation.*; +import jakarta.inject.Named; - import jakarta.xml.bind.annotation.XmlAccessType; - import jakarta.xml.bind.annotation.XmlAccessorType; - import jakarta.xml.bind.annotation.XmlElement; - import jakarta.xml.bind.annotation.XmlRootElement; - import jakarta.xml.bind.annotation.XmlType; ++import jakarta.xml.bind.annotation.*; - import org.apache.causeway.applib.annotation.Action; - import org.apache.causeway.applib.annotation.ActionLayout; - import org.apache.causeway.applib.annotation.DomainObject; - import org.apache.causeway.applib.annotation.Nature; - import org.apache.causeway.applib.annotation.ObjectSupport; - import org.apache.causeway.applib.annotation.Property; + import org.apache.causeway.applib.annotation.*; import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription; + import demoapp.dom.domain.actions.Action.typeOf.child.ActionTypeOfChildVm; + import demoapp.dom.domain.actions.ActionLayout.associateWith.child.ActionLayoutAssociateWithChildVm; import lombok.Getter; import lombok.Setter; diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/associateWith/child/ActionLayoutAssociateWithChildVm.java index bc16987619,a3ec3477cb..9a0f66ba8b --- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/associateWith/child/ActionLayoutAssociateWithChildVm.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/associateWith/child/ActionLayoutAssociateWithChildVm.java @@@ -16,47 -16,42 +16,42 @@@ * specific language governing permissions and limitations * under the License. */ - package demoapp.dom.domain.actions.ActionLayout.cssClass; + package demoapp.dom.domain.actions.ActionLayout.associateWith.child; + + import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription; + import lombok.Getter; + import lombok.NoArgsConstructor; + import lombok.Setter; -import javax.inject.Named; -import javax.xml.bind.annotation.*; +import jakarta.inject.Named; - import jakarta.xml.bind.annotation.XmlAccessType; - import jakarta.xml.bind.annotation.XmlAccessorType; - import jakarta.xml.bind.annotation.XmlRootElement; - import jakarta.xml.bind.annotation.XmlType; ++import jakarta.xml.bind.annotation.*; - import org.apache.causeway.applib.annotation.Action; - import org.apache.causeway.applib.annotation.ActionLayout; - import org.apache.causeway.applib.annotation.DomainObject; - import org.apache.causeway.applib.annotation.Nature; - import org.apache.causeway.applib.annotation.ObjectSupport; - - import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription; + import org.apache.causeway.applib.annotation.*; //tag::class[] - @DomainObject( - nature=Nature.VIEW_MODEL) - @Named("demo.ActionLayoutCssClassVm") - @XmlRootElement(name = "root") + @XmlRootElement(name = "child") @XmlType @XmlAccessorType(XmlAccessType.FIELD) - public class ActionLayoutCssClassPage implements HasAsciiDocDescription { + @Named("demo.ActionLayoutAssociateWithChildVm") + @DomainObject(nature=Nature.VIEW_MODEL) + @NoArgsConstructor + public class ActionLayoutAssociateWithChildVm implements HasAsciiDocDescription { - @ObjectSupport public String title() { - return "@ActionLayout#cssClass"; + public ActionLayoutAssociateWithChildVm(final String value) { + setValue(value); } - //tag::act[] - @Action - @ActionLayout( - cssClass = "btn-info" // <.> - //end::act[] - ,describedAs = "@ActionLayout(cssClass = \"btn-info\")" - //tag::act[] - ) - public Object act(final String arg) { - return this; + @ObjectSupport public String title() { + return getValue(); } - //end::act[] + + @Property() + @PropertyLayout(fieldSetId = "annotation", sequence = "1") + @XmlElement(required = false) + @Getter @Setter + private String value; + + } //end::class[] diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/cssClass/ActionLayoutCssClassPage.java index bc16987619,6873e2b804..40ff7e738f --- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/cssClass/ActionLayoutCssClassPage.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/cssClass/ActionLayoutCssClassPage.java @@@ -18,19 -18,14 +18,14 @@@ */ package demoapp.dom.domain.actions.ActionLayout.cssClass; -import javax.inject.Named; -import javax.xml.bind.annotation.*; +import jakarta.inject.Named; - import jakarta.xml.bind.annotation.XmlAccessType; - import jakarta.xml.bind.annotation.XmlAccessorType; - import jakarta.xml.bind.annotation.XmlRootElement; - import jakarta.xml.bind.annotation.XmlType; ++import jakarta.xml.bind.annotation.*; - import org.apache.causeway.applib.annotation.Action; - import org.apache.causeway.applib.annotation.ActionLayout; - import org.apache.causeway.applib.annotation.DomainObject; - import org.apache.causeway.applib.annotation.Nature; - import org.apache.causeway.applib.annotation.ObjectSupport; + import org.apache.causeway.applib.annotation.*; import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription; + import lombok.Getter; + import lombok.Setter; //tag::class[] @DomainObject( diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/cssClassFa/ActionLayoutCssClassFaPage.java index d1d074d7ea,c56bd2376e..0f7e532459 --- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/cssClassFa/ActionLayoutCssClassFaPage.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/ActionLayout/cssClassFa/ActionLayoutCssClassFaPage.java @@@ -18,17 -18,10 +18,10 @@@ */ package demoapp.dom.domain.actions.ActionLayout.cssClassFa; -import javax.inject.Named; -import javax.xml.bind.annotation.*; +import jakarta.inject.Named; - import jakarta.xml.bind.annotation.XmlAccessType; - import jakarta.xml.bind.annotation.XmlAccessorType; - import jakarta.xml.bind.annotation.XmlRootElement; - import jakarta.xml.bind.annotation.XmlType; ++import jakarta.xml.bind.annotation.*; - import org.apache.causeway.applib.annotation.Action; - import org.apache.causeway.applib.annotation.ActionLayout; - import org.apache.causeway.applib.annotation.DomainObject; - import org.apache.causeway.applib.annotation.Nature; - import org.apache.causeway.applib.annotation.ObjectSupport; + import org.apache.causeway.applib.annotation.*; import org.apache.causeway.applib.layout.component.CssClassFaPosition; import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription; diff --cc examples/demo/domain/src/main/java/demoapp/dom/featured/FeaturedMenu.java index f00d9f3663,9cf9643e41..de841e22f8 --- a/examples/demo/domain/src/main/java/demoapp/dom/featured/FeaturedMenu.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/FeaturedMenu.java @@@ -40,10 -47,21 +47,21 @@@ import lombok.val @DomainService( nature=NatureOfService.VIEW ) [email protected](PriorityPrecedence.EARLY) [email protected](PriorityPrecedence.EARLY) - public class WhereInTheWorldMenu { + @RequiredArgsConstructor(onConstructor_ = { @Inject }) + public class FeaturedMenu { - //tag::action[] + final FactoryService factoryService; + + @Action(semantics = SemanticsOf.SAFE) + @ActionLayout( + cssClassFa="fa-skull-crossbones", + describedAs = "Throws an unrecoverable error for demonstration purposes") + public Object errorPage(){ + throw _Exceptions.unrecoverable("Error for demonstration purposes!"); + } + + //tag::whereInTheWorldAction[] @Inject private GeoapifyClient geoapifyClient;
