Tutoriel sur la construction de perspectives avec la plateforme Eclipse (Leçon 2)

Mickael BARON

Le but de cette deuxième leçon est d'apprendre à construire des perspectives.

Buts pédagogiques : Perspective, Perspective Extension, IPerspectiveFactory, Plug-in Spy.

Codes source : les codes source et la solution de la leçon sont disponibles à l'adresse suivante : lesson2-ressources.zip.

Pour réagir à ce support de cours, un espace de dialogue vous est proposé sur le forum Commentez .

- Titre : Tutoriel sur la construction de perspectives avec la plateforme Eclipse (Leçon 2)

- Auteur : Mickael BARON

- Parution : 12 octobre 2009

- Mise à jour : 22 février 2020

- Licence : Le contenu de cet article est rédigé par Mickael BARON et est mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 non transposé. Les logos Developpez.com, en-tête, pied de page, css, et look & feel de l'article sont Copyright ® 2013 Developpez.com.

Sommaire

- Exercice 1 : Construction programmatique d'une perspective

- But

- Description

- Étapes à suivre

- Exercice 2 : Construction déclarative d'une perspective

- But

- Description

- Étapes à suivre

- Pour aller plus loin

Exercice 1 : Construction programmatique d'une perspective

But

- Construire une perspective en implémentant IperspectiveFactory.

- Utiliser l'outil Plug-in Spy pour identifier les identifiants de vues.

Description

Cet exercice va consister à construire la perspective JUGParticipants qui contient les vues Liste Participants et Edition Participant définies dans la leçon 1 puis la vue Properties définie par la plateforme Eclipse.

Étapes à suivre

Si vous n'avez pas complètement terminé le développement du plug-in eclipse.labs.jugercp.attendees lors de la fin de la leçon 1, vous pouvez récupérer le code complet dans le répertoire ressources\lesson 1 - Construction d'un plug-in\solution.

Créez une nouvelle extension à partir du point d'extension org.eclipse.ui.perspectives (voir capture d'écran ci-dessous). Ne pas sélectionner le patron Release Engineering Perspective. Pour une première fois, il est souvent utile de comprendre comment mettre en place à la mano ce type de fonctionnalité.

Donnez en paramètre d'identifiant de la perspective la valeur eclipse.labs.jugercp.attendees.jugattendees.id et comme nom la valeur JUGParticipants.

Au niveau du champ classe qui décrit de manière programmatique la perspective JUGParticipants saisissez JUGAttendeesPerspectiveFactory et eclipse.labs.jugercp.attendees.perspectives comme valeur de package.

Dans le corps de la méthode createInitialLayout(IPageLayout layout) de la classe JUGAttendeesPerspectiveFactory saisissez le code présent ci-dessous.

1. public void createInitialLayout(IPageLayout layout) {

2. layout.setEditorAreaVisible(false);

3. String editorArea = layout.getEditorArea();

5. layout.addView("eclipse.labs.jugercp.attendees.attendeeid",

6. IPageLayout.LEFT, 0.5f, editorArea);

7. layout.addView("eclipse.labs.jugercp.attendees.listattendeesid",

8. IPageLayout.BOTTOM, 0.5f, editorArea);

9. layout.addView("org.eclipse.ui.views.PropertySheet",

10. IPageLayout.BOTTOM, 0.5f,

11. "eclipse.labs.jugercp.attendees.attendeeid");

12. }

Dans le code qui a été copié, seules deux vues sont intégrées dans la perspective JUGParticipants. Il vous reste à intégrer la vue Properties définie par la plateforme Eclipse. Pour récupérer l'identifiant de cette vue, une solution consiste à utiliser l'outil Plug-in Spy permettant d'introspecter le contenu d'une application Eclipse en cours d'exécution. Cet outil est installé par défaut dans l'environnement de développement. À partir de l'environnement de développement Eclipse, ouvrez la vue Properties. Puis effectuez le raccourci clavier suivant ALT + SHIFT + F1. Notez l'identifiant de cette vue.

Complétez la perspective JUGParticipants de façon à afficher la vue Properties sous la vue Edition Participant.

Exécutez la configuration d'exécution comme détaillée dans la leçon 1 et affichez la perspective JUGParticipants (le résultat attendu est celui présenté sur la capture d'écran ci-dessous) :

NOTE : pour l'instant la vue Properties ne réagit pas à la sélection d'un élément de la liste des participants. Nous étudierons cet aspect dans la leçon 3.

Exercice 2 : Construction déclarative d'une perspective

But

- Construire une perspective de manière déclarative en dérivant une perspective existante via les Perspective Extensions.

Description

Construire la perspective JUGConcours qui contient la vue JeuConcours et la vue Properties à partir de la perspective prédéfinie par la plateforme Eclipse Resource. Un nouveau plug-in eclipse.labs.jugercp.quizz est développé pour contenir cette vue et cette perspective. L'intérêt de cet exercice est de montrer qu'il est possible d'étendre une perspective existante en limitant l'usage de la programmation Java.

Étapes à suivre

Créez un nouveau plug-in eclipse.labs.jugercp.quizz en suivant la démarche développée dans la leçon 1 (n'utilisez pas de patron de génération).

Créez une nouvelle extension à partir du point d'extension org.eclipse.ui.views.

Créez un sous-élément de type view pour construire la vue JeuConcours.

Paramétrez les éléments de la nouvelle vue JeuConcours en respectant les informations données par la capture d'écran ci-dessous :

La classe QuizzViewPart a déjà été développée en partie, copiez cette classe située dans le répertoire ressources\lesson 2 - Perspectives\exercice2-5 en respectant le chemin défini par le package.

Occupons-nous maintenant de créer la perspective qui va agencer la vue JeuConcours et Properties. Créez une nouvelle extension à partir du point d'extension org.eclipse.ui.perspectiveExtensions.

Créez un élément de type perspectiveExtension.

Cliquez sur le bouton Browse de façon à rechercher la perspective Resource dont l'identifiant est org.eclipse.ui.resourcePerspective.

À partir de l'élément perspectiveExtension créez un sous-élément de type view.

Respectez les indications données par la capture d'écran ci-dessous pour paramétrer la vue JeuConcours.

Créez un nouvel élément de type view et respectez les indications données par la capture d'écran ci-dessous pour paramétrer la vue Properties.

Modifiez la configuration d'exécution de telle sorte que le nouveau plug-in eclipse.labs.jugercp.quizz soit ajouté puis exécutez-la. En affichant la perspective Resource vous devriez obtenir le résultat suivant :

Pour aller plus loin

Comme vous avez pu le remarquer, construire une perspective de manière programmatique nécessite de manipuler le code Java puisque l'agencement des vues et de l'éditeur est codé dans une classe Java. Au contraire, la programmation déclarative permet de s'abstraire du langage Java et tout le développement se fait au travers de l'outil PDE via les paramètres de l'extension.

Quelle est par conséquent la solution à adopter ? Je recommanderais la solution déclarative qui à mon sens est celle qui permettra une plus grande facilité pour la migration des plugins lors des prochaines évolutions de la plateforme Eclipse. En effet, il est question d'utiliser d'autres langages que Java.

- https://mbaron.developpez.com/eclipse/perspectives/ : support de cours relatif à la construction de perspectives

- https://mbaron.developpez.com/eclipse/views/ : support de cours relatif à la construction de vues