В предыдущем примере для указанной точки расширения был создан мастер. В качестве более общего случая можно рассмотреть мастер, входящий в состав собственного модуля, который должен запускаться в ответ на какое-либо заданное действие. (В разделе Расширение меню рабочей среды рассмотрены различные способы добавления действий с рабочую среду).
В пользовательском интерфейсе мастеры отображаются с помощью окон диалога. Если применяется точка расширения мастера, то соответствующая обработка выполняется автоматически. При запуске собственного мастера его следует отобразить вручную, разместив в окне диалога 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, который задает протокол размещения мастера.