Wizarddialoogvensters

In het vorige voorbeeld werd een wizard aangeleverd voor een specifiek extensiepunt. Een andere, misschien zelfs nog vaker voorkomende situatie is dat u de wizard van uw plugin wilt starten met behulp van een actie die u hebt gedefinieerd. (In Workbenchmenu's manipuleren wordt beschreven op welke manieren u acties aan de workbench kunt toevoegen.)

Wizards worden in de gebruikersinterface weergegeven door ze op te nemen in een dialoogvenster. Dit detail wordt voor u afgehandeld wanneer u een wizardextensie uitbreidt. Wanneer u uw eigen wizard wilt starten, moet u deze weergeven door deze te verpakken in een WizardDialog.

Zo kan de ReadmeCreationWizard afzonderlijk worden gestart door een wizarddialoogvenster te maken en dit te koppelen aan de ReadmeCreationWizard. In het volgende stuk code ziet u hoe dit kan worden gedaan met een gemachtigde van de actie. (Voor deze methode wordt aangenomen dat de workbench en de selectie bekend zijn.)

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

      // Wizarddialoogvenster maken
      WizardDialog dialog = new WizardDialog
         (getWorkbench().getActiveWorkbenchWindow().getShell(),wizard);
      // Wizarddialoogvenster openen
      dialog.open();
   }

Als u elders in de gebruikersinterface van uw plugin een wizard wilt inbedden, gebruikt u de interface IWizardContainer. Daarmee wordt het vereiste protocol voor het hosten van een wizard gedefinieerd.