A coworker and I were discussing ideas of how to design a wizard type UI
that must dynamically generate pages depending on various
modules/plug-ins installed on top of our product.  The UI has to be able
to generate new forms which are populated with controls depending on
options selected in previous wizard forms or installation
configurations. 

 

For example, if a certain module is installed, a checkbox option may be
added to a form to ask a user if they want to perform configuration
tasks affecting that module, which in turn, if the checkbox is checked,
will generate another form with options related to the desired task.

 

To make things more complicated, the options selected in any particular
module may effect the options and/or entire forms which may be displayed
when a user is performing another task on a related module.

 

Does anyone have any ideas of the best way to go about doing this sort
of thing?  We really can't write a separate page for each module, as
they are unknown, and there could be multiple hundreds in the future.

 

One of the ideas I have tossed about is to use attributes on methods
that operate on modules, such as a WizardAttribute to indicate that a
method can be called from a wizard form.  By setting a WizardAttribute
property like, Activated = true, we could enable and disable the
functionality.

 

By using Reflection, and retrieving the WizardAttributes applied to the
modules, we would then determine which WebControl to create based on the
types of the parameters and what text to display, and pass that
information to a WizardBuilder to generate the page.  We could also
retrieve event information and generate the appropriate event handler,
such as setting another modules WizardAttribute.Activated=false or true
(can you change Attribute properties in this manner?).

 

Does this idea seem feasible?  

 

The Web Service test page in VS.Net seems to do something very similar
to what I have in mind.  The page is dynamically generated, creating an
input field and invoke button to test out a web method.  I would like to
expand the concept to build a control based on type of parameter, and to
chain pages together based on the Attribute properties of other pages.  

 

Does anyone know what namespaces and classes ASP.NET uses to generate
the test page or where to look?  Or is there a better way to go about
doing we are trying to do?

Richard A. Hein             
Software Developer
Level Platforms Inc.
36 Antares Drive, Suite 200, Ottawa, Ontario
* 613-232-0098
*  <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED]

Please visit us at http://www.levelplatforms.com
<http://www.levelplatforms.com/> 

 

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to