org.eclipse.ui.menus

Clause de protection : Le point d'extension org.eclipse.ui.menus dans Eclipse 3.2 est implémenté de manière partielle. Il ne prend actuellement pas en charge les définitions de barre d'outils ou de menu ou les extensions (les extensions de contribution existantes doivent être utilisées à cette fin). Il constitue, cependant, le seul mécanisme à travers lesquels les widgets 'trim' peuvent être contribués dans le plan de travail. Cette section explique comment l'utiliser dans ce but.

Un widget 'trim' est une commande qui se positionne à un emplacement (appelé zone de délimitation) sur la bordure externe de la fenêtre du plan de travail. L'exemple le plus courant est la ligne d'état générique que presque toutes les interfaces utilisateur placent au bas de la fenêtre. Le point d'extension org.eclipse.ui.menus permet aux plug-ins d'ajouter des vues au plan de travail. Les plug-ins qui ajoutent une délimitation doivent l'enregistrer dans leur fichier plugin.xml et fournir des informations de configuration sur la délimitation, par exemple : sa classe d'implémentation, le groupe de délimitation (barre de délimitation) dans lequel il réside, ainsi que des informations indiquant si la délimitation doit utiliser l'espace supplémentaire disponible lors de sa mise en page dans la zone de délimitation.

L'interface de la délimitation ajoutée est définie dans IWorkbenchWidget, cependant, les plug-ins peuvent choisir ((sont en fait encouragés) d'étendre la classe AbstractWorkbenchTrimWidget au lieu d'implémenter l'interface depuis le début.

Dans le cas de l'exemple de l'outil readme, nous avons contribué un widget de délimitation relativement simple qui affiche une chaîne et une indication du côté sur lequel la délimitation est ancrée.

Jetons un oeil à la définition du point d'extension utilisé pour contribuer cette partie de délimitation :

La première section de l'extension (la définition du 'groupe') définit simplement l'ID du groupe et définit un emplacement ('location') pour le groupe comme étant le début du groupe d'état (à savoir, au début de la zone de délimitation inférieure). La seconde section (la définition du 'widget') indique la classe d'implémentation du widget et définit l'emplacement de celui-ci comme étant situé dans le groupe défini au dessus.

Notez que dans les deux cas, le type de la barre est défini comme délimitation (qui est le type actuellement pris en charge).

Une fois que vous avez installé l'exemple de readmetool, observez l'implémentation de la méthode ReadmeTrimWidget's fill. Elle diffère des autres méthodes fill utilisées lors de l'ajout de widgets à des barres d'outils ou des menus, dans le sens où la délimitation peut être déplacée d'une zone à une autre. Elle transmet également le côté sur lequel la délimitation est placée, en permettant à l'implémenteur de personnaliser l'affichage du widget en fonction de son emplacement, en modifiant l'orientation, etc. L'implémentation actuelle change simplement le texte affiché afin de refléter l'emplacement. Notez également la manière dont le cycle de vie 'dispose'/'fill' est géré. Des appels répétés à dispose et fill générés par des modifications du plan de travail (à savoir, la modification des perspectives ou le déplacement de la délimitation sur un nouveau coté) seront effectués.

Un élément n'est pas reflété dans cet exemple de code. Il s'agit de la confiance du gestionnaire de mise en page de la délimitation en l'implémentation adéquate de la méthode computeSize de la commande du widget. En effet, le widget doit être capable de calculer et de renvoyer sa taille "préférée" étant donné qu'elle est utilisée dans l'implémentation de la gestion de la mise en page pour déterminer, par exemple, l'espace nécessaire pour une zone de délimitation. Consultez la documentation SWT pour prendre connaissance des remarques émises sur la manière d'implémenter 'computeSize.