You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Chris Merrill <ch...@webperformance.com> on 2011/09/23 17:48:05 UTC

ModalWindow and reusable components

In my short time with Wicket, I've found that whenever something seems really
hard, I'm probably doing it wrong :>  I'm hoping this is such a case.


We have a number of components that are used on multiple pages. They are pretty
simple - typically a couple of form field linked together for data entry.

Sometimes we want one of those to appear in a ModalWindow, coupled with Ok/Cancel
buttons and then update part of the page when the user accepts a change.
I am able to make this work, but it is pretty cumbersome. I first have to
put the component into a panel with the ok and cancel buttons.  The panel has to
know about the part of the page that needs to be refreshed. And it has to know
about the component embedded within it, in order to pass the selection back
to the page. This has to be done for each component we want inside a modal ok/cancel
window.

I found one article on a reusable ModalWindow pattern:
http://stuq.nl/weblog/2008-06-05/wicket-how-to-write-a-reusable-modal-window-popup
that helped a bit. My next step was to try to put the ok/cancel buttons into
my ModalWindow subclass, but I failed pretty miserably.  I've done some more digging
and now think I know how to make this work, but it seems like it will be more than
a little convoluted.


Am I going about this all wrong?



-- 
------------------------------------------------------------------------ -
Chris Merrill                           |  Web Performance, Inc.
chris@webperformance.com                |  http://webperformance.com
919-433-1762                            |  919-845-7601

Web Performance: Website Load Testing Software & Services
------------------------------------------------------------------------ -

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


Re: ModalWindow and reusable components

Posted by Igor Vaynberg <ig...@gmail.com>.
the window has a WindowClosedCallback you can use to refresh the
appropriate part of the page once the window has been closed.

-igor


On Fri, Sep 23, 2011 at 8:48 AM, Chris Merrill <ch...@webperformance.com> wrote:
> In my short time with Wicket, I've found that whenever something seems really
> hard, I'm probably doing it wrong :>  I'm hoping this is such a case.
>
>
> We have a number of components that are used on multiple pages. They are pretty
> simple - typically a couple of form field linked together for data entry.
>
> Sometimes we want one of those to appear in a ModalWindow, coupled with Ok/Cancel
> buttons and then update part of the page when the user accepts a change.
> I am able to make this work, but it is pretty cumbersome. I first have to
> put the component into a panel with the ok and cancel buttons.  The panel has to
> know about the part of the page that needs to be refreshed. And it has to know
> about the component embedded within it, in order to pass the selection back
> to the page. This has to be done for each component we want inside a modal ok/cancel
> window.
>
> I found one article on a reusable ModalWindow pattern:
> http://stuq.nl/weblog/2008-06-05/wicket-how-to-write-a-reusable-modal-window-popup
> that helped a bit. My next step was to try to put the ok/cancel buttons into
> my ModalWindow subclass, but I failed pretty miserably.  I've done some more digging
> and now think I know how to make this work, but it seems like it will be more than
> a little convoluted.
>
>
> Am I going about this all wrong?
>
>
>
> --
> ------------------------------------------------------------------------ -
> Chris Merrill                           |  Web Performance, Inc.
> chris@webperformance.com                |  http://webperformance.com
> 919-433-1762                            |  919-845-7601
>
> Web Performance: Website Load Testing Software & Services
> ------------------------------------------------------------------------ -
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

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


Re: ModalWindow and reusable components

Posted by Dan Retzlaff <dr...@gmail.com>.
Hi Chris,

I have struggled with this pattern myself. Ultimately I ended up using an
eventing pattern to decouple the modal from the page components that need to
be refreshed. I rolled my own event dispatch mechanism in Wicket 1.4 using
event-specific interfaces and IVisitors that find all components that
implement the interface. Wicket 1.5 has some baked in support for such a
pattern which probably requires less boilerplate [1]. In any case, before
closing the modal your ok button submit handler simply fires off the event.

Hope that helps!

Dan

[1]
https://cwiki.apache.org/WICKET/migration-to-wicket-15.html#MigrationtoWicket1.5-Intercomponentevents

On Fri, Sep 23, 2011 at 8:48 AM, Chris Merrill <ch...@webperformance.com>wrote:

> In my short time with Wicket, I've found that whenever something seems
> really
> hard, I'm probably doing it wrong :>  I'm hoping this is such a case.
>
>
> We have a number of components that are used on multiple pages. They are
> pretty
> simple - typically a couple of form field linked together for data entry.
>
> Sometimes we want one of those to appear in a ModalWindow, coupled with
> Ok/Cancel
> buttons and then update part of the page when the user accepts a change.
> I am able to make this work, but it is pretty cumbersome. I first have to
> put the component into a panel with the ok and cancel buttons.  The panel
> has to
> know about the part of the page that needs to be refreshed. And it has to
> know
> about the component embedded within it, in order to pass the selection back
> to the page. This has to be done for each component we want inside a modal
> ok/cancel
> window.
>
> I found one article on a reusable ModalWindow pattern:
>
> http://stuq.nl/weblog/2008-06-05/wicket-how-to-write-a-reusable-modal-window-popup
> that helped a bit. My next step was to try to put the ok/cancel buttons
> into
> my ModalWindow subclass, but I failed pretty miserably.  I've done some
> more digging
> and now think I know how to make this work, but it seems like it will be
> more than
> a little convoluted.
>
>
> Am I going about this all wrong?
>
>
>
> --
> ------------------------------------------------------------------------ -
> Chris Merrill                           |  Web Performance, Inc.
> chris@webperformance.com                |  http://webperformance.com
> 919-433-1762                            |  919-845-7601
>
> Web Performance: Website Load Testing Software & Services
> ------------------------------------------------------------------------ -
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

RE: ModalWindow and reusable components

Posted by Chris Colman <ch...@stepaheadsoftware.com>.
We wanted to make ModelWindowS more reusable in Wicket and so we created
the ModalX project that is now part of WicketStuff. Not sure if it's
what you're looking for but it certainly makes the use of ModalWindowS
in our apps much more generic/reusable.

https://github.com/wicketstuff/core/wiki/ModalX

It comes in both 1.4.x and 1.5.x flavors.

Regards,
Chris
Step Ahead Software

>-----Original Message-----
>From: Chris Merrill [mailto:chris@webperformance.com]
>Sent: Saturday, 24 September 2011 1:48 AM
>To: users@wicket.apache.org
>Subject: ModalWindow and reusable components
>
>In my short time with Wicket, I've found that whenever something seems
>really
>hard, I'm probably doing it wrong :>  I'm hoping this is such a case.
>
>
>We have a number of components that are used on multiple pages. They
are
>pretty
>simple - typically a couple of form field linked together for data
entry.
>
>Sometimes we want one of those to appear in a ModalWindow, coupled with
>Ok/Cancel
>buttons and then update part of the page when the user accepts a
change.
>I am able to make this work, but it is pretty cumbersome. I first have
to
>put the component into a panel with the ok and cancel buttons.  The
panel
>has to
>know about the part of the page that needs to be refreshed. And it has
to
>know
>about the component embedded within it, in order to pass the selection
back
>to the page. This has to be done for each component we want inside a
modal
>ok/cancel
>window.
>
>I found one article on a reusable ModalWindow pattern:
>http://stuq.nl/weblog/2008-06-05/wicket-how-to-write-a-reusable-modal-
>window-popup
>that helped a bit. My next step was to try to put the ok/cancel buttons
>into
>my ModalWindow subclass, but I failed pretty miserably.  I've done some
>more digging
>and now think I know how to make this work, but it seems like it will
be
>more than
>a little convoluted.
>
>
>Am I going about this all wrong?
>
>
>
>--
>-----------------------------------------------------------------------
- -
>Chris Merrill                           |  Web Performance, Inc.
>chris@webperformance.com                |  http://webperformance.com
>919-433-1762                            |  919-845-7601
>
>Web Performance: Website Load Testing Software & Services
>-----------------------------------------------------------------------
- -
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>For additional commands, e-mail: users-help@wicket.apache.org


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