Thanks for tackling this; wizards can be
very useful, and Pharo should have an easy way to create them. So far, I
have only loaded the package, run the example, and glanced at the
hierarchy.
Purely cosmetic, it would be good to defaullt to "<< Back" and
"Next >>" for the buttons. There will always be other buttons to add
in weird cases, but the first/last/middle panes can do reasonable things unless
customized.
Is there a way to fix a size for the wizard? Changing to the
size of the current pane is powerful, but also looks
strange.
I am
suspicious of the WizardPart heirarchy. Are they controls that can only
work in a wizard? It seems unlikely, or perhaps that there should be a
more generic hierarchy of controls/presenters that work in wizards and anywhere
else. Put another way, I fear that their existence highlights something
missing in Pharo. TEasilyThemed gets close to providing ways to create
useful controls, but it IMHO falls short on the presenter/model side. Gary
didn't like the idea of default models, but I still think there is room for
improvement. A list shoud have something that provides its needed
selection index aspect, allowing one to think in terms of the object
corresponding to the selection. Value models and adapters (particularly
aspect value adapters) offer a great view from the top of the
learning curve.
One
thing that I like about Polymorph (and Magritte and Seaside) is that domain
objects get a active say in their graphical representation. Dolphin's MVP
framework typically forces a GUI onto the model rather than letting the model
grow one to suit it. A good compromise might be to create analogs to
Dolphin's presenters with those (rather than the controls themselves) being
produced by something like TEasilyThemed. The Smalltalk code creating the
presenters could include just enough layout objects and methods to do the job of
the Dolpin view composer and layout managers. At least I _think_ it could
work that way - great stuff if I'm at all close to thinking
straight.
Bill
Hi everybody,
Just send this email to inform you that I have developed a small library (
called 'Merlin' ) that provide a simple structure to build Wizards.
You will find a small example in the class side of 'WizardControl'.
I have been making this library to build a Moose wizard that enable to
select packages and some importations informations.
Therefore, you can see this other example by loading Moose with:
'ConfigurationOfMoose loadDefault '. It will load all required classes. The
Moose Wizard will be in the package Moose-Wizard.
So, feel free to test it or use it if needed :)