Thanks Sven and Martin!
I've tested it, it works perfectly.

Op ma 11 jan. 2021 om 09:40 schreef Martin Grigorov <mgrigo...@apache.org>:
>
> Hi,
>
> Sven Meier already explained you the problem at
> https://stackoverflow.com/questions/65632010/stateless-modaldialog-in-wicket/65664328
> I've added sample code how to achieve it.
>
> On Sun, Jan 10, 2021 at 7:20 PM Prag Progger <pragprog...@gmail.com> wrote:
>
> > Hi,
> >
> > Is it possible to create a stateless ModalDialog?
> >
> > I tried the following code, but it results in an error. The error
> > doesn't occur when removing the getStatelessHint() overrides, but that
> > would make it stateful. If it's not possible, would it be possible
> > with the deprecated ModalWindow?
> >
> > HTML Code:
> >
> > <!DOCTYPE html>
> > <html>
> > <head>
> >     <style>
> >         .modal-dialog { border-radius: 5px; }
> >         .modal-dialog .modal-dialog-content { display: flex;
> > flex-direction: column; }
> >         .modal-dialog-overlay.current-focus-trap .modal-dialog-content
> > { resize: both; }
> >         .modal-dialog .modal-dialog-form { margin: 0; padding: 0;
> > overflow: hidden; flex: 1; display: flex; flex-direction: column; }
> >         .modal-dialog .modal-dialog-header { border-radius: 5px 5px
> > 0px 0px; background: #ffb158; margin: 0; padding-top: 4px; text-align:
> > center; }
> >         .modal-dialog .modal-dialog-body { flex: 1; overflow-y: auto;
> > padding: 20px; }
> >         .modal-dialog .modal-dialog-footer { padding: 5px; }
> >     </style>
> > </head>
> > <body>
> >     <a wicket:id="openModalLink">Open modal</a>
> >
> >     <div id="window" wicket:id="window"></div>
> >
> >     <wicket:fragment wicket:id="modalContentFragment">
> >         <h1>Modal Dialog</h1>
> >         <a wicket:id="closeModalLink">Close modal</a>
> >     </wicket:fragment>
> > </body>
> > </html>
> >
> > Java Code:
> >
> > package org.example.modaltest;
> >
> > import org.apache.wicket.ajax.AjaxRequestTarget;
> > import org.apache.wicket.ajax.markup.html.AjaxLink;
> > import org.apache.wicket.extensions.ajax.markup.html.modal.ModalDialog;
> > import
> > org.apache.wicket.extensions.ajax.markup.html.modal.theme.DefaultTheme;
> > import org.apache.wicket.markup.html.GenericWebPage;
> > import org.apache.wicket.markup.html.panel.Fragment;
> >
> > public class ModalPage extends GenericWebPage<Void> {
> >     public ModalPage() {
> >         ModalDialog window = new ModalDialog("window");
> >         window.add(new DefaultTheme());
> >         window.setMarkupId("window");
> >         window.setOutputMarkupId(true);
> >         add(window);
> >
> >         Fragment modalContentFragment = new
> > Fragment(ModalDialog.CONTENT_ID, "modalContentFragment", this);
> >         window.setContent(modalContentFragment);
> >         modalContentFragment.setOutputMarkupId(true);
> >
> >         AjaxLink<Void> closeModalLink = new
> > AjaxLink<Void>("closeModalLink") {
> >             @Override
> >             public void onClick(AjaxRequestTarget target) {
> >                 target.add(window);
> >                 ModalDialog window1 = (ModalDialog)
> > findPage().get("window");
> >                 window1.close(target);
> >             }
> >
> >             @Override
> >             protected boolean getStatelessHint() {
> >                 return true;
> >             }
> >         };
> >         closeModalLink.setOutputMarkupId(true);
> >         modalContentFragment.add(closeModalLink);
> >
> >         AjaxLink<Void> openModalLink = new AjaxLink<Void>("openModalLink")
> > {
> >             @Override
> >             public void onClick(AjaxRequestTarget target) {
> >                 ModalDialog window1 = (ModalDialog)
> > findPage().get("window");
> >                 window1.open(target);
> >             }
> >
> >             @Override
> >             protected boolean getStatelessHint() {
> >                 return true;
> >             }
> >         };
> >         add(openModalLink);
> >     }
> > }
> >
> >
> > Error in Browser:
> > "Access Denied. You do not have access to the page you requested.
> > Return to home page"
> >
> > Java Exception:
> >
> > 16:34:16.382 [http-nio-8080-exec-4] WARN
> > o.a.w.c.r.h.ListenerRequestHandler - behavior not enabled; ignore
> > call. Behavior org.apache.wicket.ajax.markup.html.AjaxLink$1@5a149041
> > at component [AjaxLink [Component id = closeModalLink]]
> > 16:34:16.386 [http-nio-8080-exec-4] WARN  RequestCycleExtra -
> > ********************************
> > 16:34:16.390 [http-nio-8080-exec-4] WARN  RequestCycleExtra - Handling
> > the following exception
> >
> > org.apache.wicket.core.request.handler.ListenerInvocationNotAllowedException:
> > Behavior rejected interface invocation. Component: [AjaxLink
> > [Component id = closeModalLink]] Behavior:
> > org.apache.wicket.ajax.markup.html.AjaxLink$1@5a149041
> >     at
> > org.apache.wicket.core.request.handler.ListenerRequestHandler.invoke(ListenerRequestHandler.java:276)
> >     at
> > org.apache.wicket.core.request.handler.ListenerRequestHandler.invokeListener(ListenerRequestHandler.java:222)
> >     at
> > org.apache.wicket.core.request.handler.ListenerRequestHandler.respond(ListenerRequestHandler.java:208)
> >     at
> > org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:902)
> >     at
> > org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:63)
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> > For additional commands, e-mail: users-h...@wicket.apache.org
> >
> >

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to