## Wizards

Wizards are used to guide the user through a sequenced set of tasks. Your plug-in can contribute wizards at predefined extension points in the workbench. It can also create and launch its own wizards.

When you contribute to a workbench wizard extension point, the actions that launch the wizard are already set up by the workbench. You need only supply the wizard that will be used.

If you need to launch other wizards that are not already defined in workbench wizard extension points, you must launch them yourself. You can launch your own wizards by adding an action to a view, editor, popup, or an action set.

A wizard is composed of several different underlying parts.

### Wizard dialog

The wizard dialog (WizardDialog) is the top level dialog in a wizard. It defines the standard wizard buttons and manages a set of pages that are provided to it.

When you contribute to a workbench wizard extension, you do not have to create a wizard dialog. One is created on your behalf by the workbench, and your wizard is set into it.

The wizard dialog performs the enabling and disabling of the Next, Back, and Finish buttons based on information it obtains from the wizard and the current wizard page.

### Wizard

The wizard (IWizard) controls the overall appearance and behavior of the wizard, such as title bar text, image, and the availability of a help button. Wizards often use a corresponding DialogSettings to obtain (and store) the default values for the settings of controls on the wizard pages.

The Wizard class implements many of the details for standard wizard behavior. You typically extend this class to implement behavior specific to your wizard. The primary responsibilities of your wizard will include:

- Creating and adding your pages to your wizard
- Implementing the behavior that should occur when the user presses the Finish button.

### Wizard page

The wizard page (IWizardPage) defines the controls that are used to show the content of the wizard page. It responds to events in its content areas and determines when the page is completed.

Your wizard page typically extends the WizardPage class. The primary responsibilities of your wizard page will include:

- creating the SWT controls that represent the page
- determing when the user has supplied enough information to complete the page (that is, when the user can move to the next page.)