В предыдущем примере для указанной точки расширения был создан мастер. В качестве более общего случая можно рассмотреть мастер, входящий в состав собственного модуля, который должен запускаться в ответ на какое-либо заданное действие. (В разделе Расширение меню рабочей среды рассмотрены различные способы добавления действий с рабочую среду).
В пользовательском интерфейсе мастеры отображаются с помощью окон диалога. Если применяется точка расширения мастера, то соответствующая обработка выполняется автоматически. При запуске собственного мастера его следует отобразить вручную, разместив в окне диалога WizardDialog.
Например, мастер ReadmeCreationWizard можно запускать независимо, если создать окно диалога мастера и связать его с ReadmeCreationWizard. В следующем примере исходного кода показано, каким образом это можно сделать с помощью делегата действия. (Предполагается, что вы знакомы с рабочей средой и способами выбора элементов).
public void run(IAction action) {
// Создать мастер
ReadmeCreationWizard wizard = new ReadmeCreationWizard();
wizard.init(getWorkbench(), selection);
// Создать окно диалога мастера
WizardDialog dialog = new WizardDialog
(getWorkbench().getActiveWorkbenchWindow().getShell(),wizard);
// Открыть окно диалога мастера
dialog.open();
}
Для добавления мастера в пользовательский интерфейс модуля другим образом воспользуйтесь интерфейсом IWizardContainer, который задает протокол размещения мастера.