Think about presenting your "subwizards" in a modal window and
keeping them decoupled from your main (i.e. top-level) wizard. For
instance, in your main wizard's "associate a doohickey" step, the
user could click a "create doohickey" link/button that would open the
doohickey creation wizard in a modal window without leaving the the
main wizard's current step. Obviously, the wizards need to
communicate in some way, but that could be as simple as passing your
main wizard's backing model (e.g. a WidgetBuilderBean) into each
subwizard and letting the subwizard add to that model object in its
onFinish method.
We wrote a shipment receiving wizard a couple of months ago and
"spliced in" a subwizard to add shipment contents. Even though we
added support for multiple overview bars to try to make it clear when
you're in the subwizard instead of the main wizard, it's still a
confusing UI in my opinion. In retrospect, displaying that subwizard
in a modal window would be much more intuitive for the user and
easier to implement. We'll probably rewrite it that way eventually...
-Ryan
On Sep 26, 2007, at 7:02 AM, Matt Jensen wrote:
I don't think you're missing anything. Yes, I could do that. :-)
My real questions are 1) is there a better way, and 2) if not, and
if I were to implement this, does anybody have opinions on how to
set it up so that it will be useful to the widest audience
possible? I imagine that somebody, somewhere, would have a use for
this functionality. I would like to make it reusable and
contribute it back--the project deserves my help. But I'm too new
to Wicket to be 100% certain that I know the "right way" to do it.
That's why I posted to the dev list. Plenty of folks here should
know the right/most widely applicable way to do it.
Thanks for your response!
--Matt
Maeder Thomas wrote:
Hi Matt,
Perhaps I'm missing something, but why don't you just make your own
IWizardModel implementation? It would hold your wizard steps and
subwizards and map whatever behaviour you want to the IWizardModel
interface.
Thomas