Boîtes de dialogue des assistants

L'exemple précédent visait à fournir un assistant pour un point d'extension spécifique. Un autre cas, peut-être plus courant, est celui dans lequel vous souhaitez lancer l'assistant de votre propre plug-in à partir d'une action que vous avez définie. (A la section Contributions des menus du plan de travail, nous abordons les moyens qui permettent d'ajouter des actions au plan de travail.)

Les assistants s'affichent dans l'interface utilisateur en les plaçant dans une boîte de dialogue.  Vous n'avez pas à gérer cela lorsque vous contribuez à une extension d'assistant.  Lorsque vous lancez votre propre assistant, vous devez encapsuler l'assistant dans un WizardDialog.

Par exemple, ReadmeCreationWizard pourrait être lancé indépendamment en créant une boîte de dialogue d'assistant et en l'associant à ReadmeCreationWizard. Le fragment de code ci-dessous montre comment ceci peut être réalisé à partir d'un délégué d'action. (La méthode présume que le plan de travail et la sélection sont connus.)

   public void run(IAction action) {
      // Crée l'assistant
      ReadmeCreationWizard wizard = new ReadmeCreationWizard();
      wizard.init(getWorkbench(), selection);

      // Crée la boîte de dialogue de l'assistant
      WizardDialog dialog = new WizardDialog
         (getWorkbench().getActiveWorkbenchWindow().getShell(),wizard);
      // Ouvre la boîte de dialogue de l'assistant
      dialog.open();
   }

Si vous devez imbriquer un assistant dans un emplacement quelconque de l'interface utilisateur de votre plug-in, l'interface IWizardContainer définit le protocole requis pour l'hébergement d'un assistant.