Provides a framework for wizards.

## Package Specification

A wizard dialog is a specialized window for walking the end user through a sequence of steps; each step is presented on a separate page.

At the most abstract level, the protocol is given by 3 interfaces:

- `IWizard` - a wizard consisting of several wizard pages
- `IWizardPage` - an individual wizard page
- `IWizardContainer` - the outside world from the point of view of a wizard

A wizard is any object implementing `IWizard`. The abstract base class `Wizard` is provided as a starting point; it is simpler to subclass `Wizard` than to implement `IWizard` from scratch. The main responsibility of a `Wizard` subclass is doing the real work when the wizard finishes.

Similarly, a wizard page is any object implementing `IWizardPage`. The abstract base class `WizardPage` is provided as a starting point. The main responsibility of a `WizardPage` subclass is providing the SWT controls and the backing logic for a single wizard page.

`WizardDialog` is a ready-to-use JFace dialog that is instantiated with a wizard and acts as the wizard's container. This dialog has a standard layout: an area at the top containing the wizard's title, description, and image; the actual wizard page appears in the middle; below it is a progress indicator; and at the bottom is an area with a message line and a button bar containing Next, Back, Finish, Cancel, and Help buttons.

`WizardSelectionPage`, a special abstract subclass of `WizardPage`, allows whole other wizards to be connected to a root page.

Note: None of the classes in this package maintain global state.