Boîtes de dialogue de l'application

Lorsqu'une boîte de dialogue standard est trop simple pour votre plug-in, vous pouvez générer votre propre boîte de dialogue à l'aide de la classe Dialog. Nous avons vu au préalable comment l'outil readme participe à l'action "Open Readme Browser" dans un jeu d'actions. Ce dernier apparaît dans la barre d'outils du plan de travail et dans le menu Fenêtre->Editeur de fichier Readme.  

A présent, nous sommes prêts à aborder l'implémentation de l'action WindowActionDelegate dans l'outil readme.

   public void run(IAction action) {
      SectionsDialog dialog = new SectionsDialog(window.getShell(),
         ReadmeModelFactory.getInstance().getSections(selection));
      dialog.open();
   }

Le délégué d'action de la fenêtre pour l'action définie utilise la sélection courante dans la vue du navigateur des ressources (fichier .readme) pour obtenir la liste des sections du fichier readme. Cette liste et le shell de la fenêtre du plan de travail sont transmis à SectionsDialog

Lorsque l'utilisateur sélectionne l'action, SectionsDialog est ouvert.

SectionsDialog est implémenté dans le plug-in de l'outil readme en sous-classant la classe Dialog dans le package org.eclipse.jface.dialogs.

La classe Dialog fournit un support de base pour la génération d'une fenêtre shell de dialogue, la création des boutons de commande courants et le lancement de la boîte de dialogue. Les sous-classes sont responsables du traitement du contenu de la boîte de dialogue.

Les boîtes de dialogue peuvent être aussi simples ou compliquées que nécessaire. Lorsque vous implémentez une boîte de dialogue, une grande partie de son code est impliqué dans la création des contrôles SWT représentant sa zone de contenu et traitant les événements nécessaires lorsque la boîte de dialogue est active. Lorsqu'un bouton est activé par l'utilisateur, la boîte de dialogue peut interroger l'état des divers contrôles (ou afficheurs) qui la constitue pour déterminer ce qu'elle doit faire.

Copyright IBM Corporation and others 2000, 2003.