O exemplo anterior facultava um assistente para um ponto de extensão especificado. Outro caso, talvez mais comum, será querer lançar um assistente de plug-in próprio a partir de alguma acção que se tenha definido. (Em Contributos para o menu da área de trabalho, abordamos as formas em que se pode contribuir com acções para a área de trabalho.)
Os assistentes são apresentados na UI por estarem colocados num diálogo contentor. Este detalhe é efectuado automaticamente quando este contribui com uma extensão de assistente. Ao lançar o seu próprio assistente, terá de o apresentar junto com um WizardDialog.
Por exemplo, o ReadmeCreationWizard poderia ser lançado independentemente criando um diálogo de assistente e associando-o ao ReadmeCreationWizard. A porção de código seguinte mostra como realizar isto a partir de algum delegado de acção. (O método implica que conheçamos a área de trabalho e a selecção.)
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(); }
Se precisar de incorporar o assistente em qualquer outro lugar da interface de utilizador, a interface IWizardContainer definirá o protocolo necessário para alojar um assistente.