Okna dialogowe kreatorów

W poprzednim przykładzie przedstawiono kreatora określonego punktu rozszerzenia. Kolejny przypadek, być może bardziej powszechny, dotyczy uruchamiania własnego kreatora wtyczki przez samodzielnie zdefiniowaną akcję. Sposoby wnoszenia akcji do środowiska roboczego zostały opisane w sekcji Elementy wnoszone do środowiska roboczego.

Kreatory są wyświetlane w interfejsie użytkownika przez umieszczanie ich w oknach dialogowych. Ten szczegół jest obsługiwany przy wnoszeniu do rozszerzenia kreatorów. W przypadku uruchamiania własnego kreatora należy go wyświetlić w opakowaniu klasy WizardDialog.

Na przykład kreator ReadmeCreationWizard mógłby zostać uruchomiony niezależnie przez utworzenie okna dialogowego kreatora i powiązanie go z kreatorem ReadmeCreationWizard. Poniższy fragment kodu pokazuje, jak to zrobić przy użyciu delegata akcji. W przypadku tej metody jest przyjmowane założenie, że środowisko robocze i wybór są znane.

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

      // Utworzenie okna dialogowego kreatora
      WizardDialog dialog = new WizardDialog
         (getWorkbench().getActiveWorkbenchWindow().getShell(),wizard);
      // Otwarcie okna dialogowego kreatora
      dialog.open();
   }

Interfejs IWizardContainer definiuje protokół niezbędny do udostępnienia kreatora w przypadku konieczności osadzenia go w dowolnym innym miejscu interfejsu użytkownika wtyczki.