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änzug für eine Assistentenerweiterung bereitstellen. Sobald Sie Ihren eigenen Assistenten starten, müssen Sie ihn selber anzeigen, indem Sie ihn in ein ObjektWizardDialog einbinden.
Beispielsweise könnte die Klasse ReadmeCreationWizard unabhängig gestartet werden, indem ein Assistentendialog erstellt und der Klasse ReadmeCreationWizard zugeordnet wird. Das folgende Code-Snippet 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) { // Assistenten erstellen ReadmeCreationWizard wizard = new ReadmeCreationWizard(); wizard.init(getWorkbench(), selection); // Assistentendialog erstellen WizardDialog dialog = new WizardDialog (getWorkbench().getActiveWorkbenchWindow().getShell(),wizard); // Assistentendialog öffnen 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.