Les classes d'action permettent de définir les commandes utilisateur indépendamment de leur présentation dans l'interface utilisateur. Ceci vous donne la possibilité de modifier la présentation d'une action dans votre plug-in sans changer le code qui en réalité effectue la commande une fois qu'elle a été choisie. Les classes de contribution sont utilisées pour gérer les éléments réels de l'interface utilisateur représentant les commandes. Vous ne programmez pas les classes de contribution, mais vous les voyez dans certaines API du plan de travail et JFace.
Une action (IAction) représente une commande pouvant être déclenchée par l'utilisateur final. Les actions sont généralement associées aux boutons, options de menu et éléments des barres d'outils.
Bien que les actions ne se placent pas dans l'interface utilisateur, elles ont cependant des propriétés orientées interface utilisateur, tel que le texte des infobulles, celui des libellés et une image. Ceci permet aux autres classes de constituer des widgets pour la présentation de l'action.
Lorsque l'utilisateur déclenche l'action dans l'interface utilisateur, la méthode d'exécution de l'action est appelée à faire le véritable travail. Un schéma courant de la méthode d'exécution consiste à requérir les sélections du plan de travail et à manipuler les objets sélectionnés. Un autre schéma courant consiste à lancer un assistant ou une boîte de dialogue lorsqu'une action est sélectionnée.
Vous ne devez pas implémenter directement l'interface IAction. En revanche, vous devez sous-classer la classe Action. Parcourez les sous-classes de cette classe pour voir un grand nombre des schémas courants d'actions. Le code ci-dessous implémente l'action "About". Il s'agit de l'une des actions les plus simples dans le plan de travail.
public void run() { new AboutDialog(workbenchWindow.getShell()).open(); }
Nous avons déjà vu les interfaces du plan de travail IViewActionDelegate et IEditorActionDelegate. Ces interfaces sont utilisées lors de la contribution d'actions de vue ou d'éditeur au plan de travail. Les délégués d'action du plan de travail sont initialisés à l'aide d'une référence à leur vue ou éditeur associé. Grâce à ces connaissances, ils peuvent naviguer jusqu'à la page ou fenêtre du plan de travail, accéder aux sélections ou à toute autre information nécessaire pour effectuer l'action.
Vous implémenterez vos propres classes d'action chaque fois que vous souhaitez définir une commande dans votre plug-in. Si vous ajoutez des actions aux autres vues et éditeurs, vous implémenterez des délégués d'action.
Un élément de contribution (IContributionItem) représente la portion de l'interface utilisateur d'une action. Plus spécifiquement, cela représente un élément qui contribue à une ressource de l'interface utilisateur partagée, telle qu'une barre de menus ou d'outils.
Les éléments de contribution savent comment remplir un widget SWT spécifique avec l'élément SWT approprié représentant la contribution.
Vous ne devez pas vous inquiéter pour la création d'un élément de contribution lorsque vous faites contribuer des actions à l'interface utilisateur du plan de travail. Ceci est fait pour vous lorsque le plan de travail crée les éléments de l'interface utilisateur pour les actions que vous avez définies.
Un gestionnaire de contribution (IContributionManager) représente une collection d'éléments de contribution qui sera présentée dans l'interface utilisateur. Vous pouvez ajouter et insérer des éléments de contribution à l'aide d'ID de contribution désignés pour placer les éléments dans l'ordre approprié. Vous pouvez également rechercher les éléments par ID et supprimer les éléments individuels.
Chaque implémentation de IContributionManager sait comment remplir un widget SWT spécifique avec ses éléments. JFace fournit des gestionnaires de contribution pour des menus (IMenuManager), des barres d'outils (IToolBarManager) et des lignes d'état (IStatusLineManager).
En tant que développeur de plug-in, il ne vous est pas nécessaire d'implémenter ces interfaces, mais vous verrez des références à certains de ces gestionnaires dans les méthodes d'API.