Wizard dialogs

The previous example supplied a wizard for a specified extension point. Another, perhaps more common, case is that you want to launch your own plug-in's wizard from some action that you have defined. (In Workbench menu contributions, we discuss the ways you can contribute actions to the workbench.)

Wizards are displayed in the UI by placing them in a containing dialog.  This detail is handled for you when you contribute to a wizard extension.  When you are launching your own wizard, you must display it yourself by wrapping it in a WizardDialog.

For example, the ReadmeCreationWizard could be launched independently by creating a wizard dialog and associating it with the ReadmeCreationWizard. The following code snippet shows how this could be done from some action delegate. (The method assumes that we know the workbench and the selection.)

   public void run(IAction action) {
      // Create the wizard
      ReadmeCreationWizard wizard = new ReadmeCreationWizard();
      wizard.init(getWorkbench(), selection);

      // Create the wizard dialog
      WizardDialog dialog = new WizardDialog
         (getWorkbench().getActiveWorkbenchWindow().getShell(),wizard);
      // Open the wizard dialog
      dialog.open();
   }

If you need to embed a wizard anywhere else in your plug-in's user interface, the interface IWizardContainer defines the necessary protocol for hosting a wizard.