Das vorherige Beispiel hat einen Assistenten für einen angegebenen Erweiterungspunkt zur Verfügung gestellt. Ein weiterer und vielleicht häufiger eintretender Fall ist die Absicht, den Assistenten eines eigenen Plug-ins von einer Aktion aus zu starten, die Sie definiert haben. (Die unterschiedlichen Methoden, mit denen Sie die Workbench durch Aktionen ergänzen können, sind unter Ergänzungen für Workbench-Menüs erläutert.)
Assistenten werden in der Benutzerschnittstelle angezeigt, indem sie in einen übergeordneten Dialog gestellt werden. Dieses Detail wird automatisch ausgeführt, wenn Sie eine Ergänzung für eine Assistentenerweiterung bereitstellen. Sobald Sie Ihren eigenen Assistenten starten, müssen Sie ihn selber anzeigen, indem Sie ihn in einen WizardDialog einbinden.
Beispielsweise könnte die Klasse ReadmeCreationWizard unabhängig gestartet werden, indem ein Assistentendialog erstellt und der Klasse ReadmeCreationWizard zugeordnet wird. Der folgende Codeausschnitt veranschaulicht, wie dies über ein Delegieren der Aktion erfolgen kann. (Bei der Methode wird davon ausgegangen, dass die Workbench und die Auswahl bekannt sind.)
public void run(IAction action) { // Create the wizard ReadmeCreationWizard wizard = new ReadmeCreationWizard(); wizard.init(getWorkbench(), selection); // Create the wizard dialog WizardDialog dialog = new WizardDialog (getWorkbench().getActiveWorkbenchWindow().getShell(),wizard); // Open the wizard dialog dialog.open(); }
Falls Sie einen Assistenten an einer anderen Stelle in der Benutzerschnittstelle Ihres Plug-ins einbetten müssen, definiert die Schnittstelle IWizardContainer das erforderliche Protokoll für das Hosting eines Assistenten.