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 modułu dodatkowego przez samodzielnie zdefiniowaną akcję. Sposoby wnoszenia akcji do środowiska roboczego zostały opisane w sekcji Elementy wnoszone do środowiska roboczego.

Kreatorzy są wyświetlani 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 modułu dodatkowego.