Both wizard and tabbed forms are mechanisms for structuring unwieldy, single-page forms into more easily managed, multiple-paned forms. Both contain separators between logical sections, or pages. These page separators can be tabs located at the top of the form -- like the tabbed user form -- or a wizard form, which guide the user through the pages using the next/back navigation buttons.
See Tabbed User Form in this chapter for the XML version of the default Tabbed User Form.
Wizard forms can be a convenient alternative to launching multiple forms from a task when:
Transition logic between pages is simple
Privileged system calls between pages are required
Wizard forms contain the two rows of buttons described below.
Table 2–18 First Row of Buttons
Row of buttons |
Description |
---|---|
top row |
Next and Back buttons to traverse through the form panes |
second row |
Contains the standard user form buttons listed in the following table. You can control the second row by setting noDefaultButtons option to true and implementing your own buttons. |
This second row of button can vary as follows:
Table 2–19 Second Row of Buttons
Wizard page |
Default buttons |
---|---|
first page |
Next, Cancel |
intermediate pages |
Prev, Next, Cancel |
last page |
Prev, Ok, Cancel |
Wizard form syntax closely resembles tabbed user form structure. ,
Assign the WizardPanel display class to the top-level container (rather than TabbedPanel).
Set the noCancel property to true.
Define one or more EditForm fields that contain the pages of the wizard.
The following example provides comments for guidance purposes:
<Form> <Display class="HtmlPage"/> ----- If not set, causes indentation and color problems <Field name=’MainTabs’> -- Name of the top container that wraps the tab pages <Display class=’TabPanel’/> -- Display class for the top container: either TabPanel or WizardPanel <Field name=’Identity’> -- Label of the Tab <Display class=’EditForm’> -- Each “page” must be an Edit Form <Property name=’helpKey’ value=’Identity and Password Fields’/> </Display> <Field name=’waveset.accountId’> <Display class=’Text’> <Property name=’title’ value=’_FM_ACCOUNT_ID’/> </Display> <Disable> <ref>waveset.id</ref> </Disable> </Field> </Field> </Field> |
Validation errors appear on the last page that the user was on rather than the page on which the attribute appears. To work around this, include information in the validation message to assist the user in navigating back to the correct page.
For complex wizards, give users some visual clue as to where they are in the process. Using labels or section heads at the top of every page that displays text similar to Page 1.
Avoid using conditional navigation in wizard forms. If you must implement it, use Disable expressions for each of the immediate children of the WizardPanel. For example:
<Field name=’Page2’> <Display class=’EditForm’/> <Disable><neq><ref>showPage2</ref><s>true</s></neq></Disable> ... </Field>
Put fields or buttons on previous pages that cause their gating variables to be set. Disabled pages are automatically removed from transition logic.