Utilización de diálogos de asistente

En el ejemplo anterior se suministraba un asistente para un punto de extensión especificado. Otro caso, tal vez más común, es que quiera lanzar su asistente de conector a partir de alguna acción que haya definido. (En Contribuciones de menú del entorno de trabajo, se muestran las maneras mediante las que puede contribuir con acciones al entorno de trabajo.)

Cuando lanza su propio asistente, debe acomodar el asistente en un WizardDialog. Esto no lo hará el entorno de trabajo en su lugar, tal como hace cuando contribuye con una extensión de asistente.

Por ejemplo, ReadmeCreationWizard podría lanzarse independientemente creando un diálogo de asistente y asociándolo con ReadmeCreationWizard. El siguiente segmento de código muestra cómo se puede llevar a cabo esto a partir de una delegación de acción. (El método presupone que se conoce el entorno de trabajo y la selección.)

public void run(IAction action) {
    // Crear el asistente
    ReadmeCreationWizard wizard = new ReadmeCreationWizard();
    wizard.init(getWorkbench(), selection);

    // Crear el diálogo de asistente
    WizardDialog dialog = new WizardDialog
        (getWorkbench().getActiveWorkbenchWindow().getShell(),wizard);

    // Abrir el diálogo de asistente
    dialog.open();

}