After thinking about it it looks like Inform.ant will consisit of 2 (maybe 3) ant tasks. One for a splash screen, one for a wizard, and possibly one to handle random dialogs. There is also a longer term goal that the forms defined by Inform.ant could be used with a variaty of methods. The first will be swing, the second command line (possibly with pre-answered questions). Then possibly SWT and or ANT (for 1.1.7 jview run installs) but those would be after compon.ant and propell.ant. So where it makes sense I am also thinking about these in context of a headless or scripted mode.
Splash
task -
The task definition itself will only handle the
details of the window it is a slapsh for. Size, location, etc. The children
will be the actual content and the tasks to be performed with it. I imagine
a <image> and <htmlPage> child to support an
image or a HTML page as the splash screen. Then either a tasks element (subbing
off of sequence), sequence and paralell themselves, or the other tasks themselves
as children.
The reason behind not putting the splash stuff all
under attributes to the spalsh task would be because sometimes the spalsh
content may want to change as the work progresses. Much like your typical
symantic install process. The sizing attributes would have to take into
account multiple size images and htmlPage possibly too.
Wizard
task -
This is, quite clearly, the more complex task
of the two. The idea would be the same, the outer wizard task would just
contain frame information and stuff like the name of an ant task to do on
cancel and such. The Children would contain the guts of the wizard and the
aditional tasks to be done durring the wizard.
This task could
be quite involved, especially since I am going to be following the Java Look
and Feel Guidelines for wizards.
I would like to allow for as much of the functionality describes there as
possible.
As for the form components themseles, I will probobly
follow a sub-set of XForms,
except that the fields will be tied in to Ant Proeprties instead of an XML
instance. From those proeprties different tasks for different install options
can be triggered.
I should also provide an interface to be impementd
so that custom pages can be defined in Java themselves. But a goal would
be that 80% of the uses of Inform.ant could be done declaritivly in the Ant
Script itself. To do this however I may need to enlist the help of the script
tag and re-defining of ant variables.
As for dialogs, I don't know about what I will do. Prohaps I will just support the 4 basic ones from JOptionPane with no wierd stuff (like custome fields). I can see how I would need those.
My current plan however is to get the splash tag written and then get some more design done for the wizard tag.