Leçon 4 : Commandes

Date de publication : 17/03/2010 , Date de mise à jour : 17/03/2010

Par Mickael BARON (Page perso)
 

Le but de cette quatrième leçon est d'apprendre à ajouter des commandes puis à appliquer des restrictions sur l'affichage et le comportement de ces commandes.

Buts pédagogiques : Commandes, restriction, handler, menuContribution et Core Expressions.

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

Pour réagir à ce support de cours, un espace de dialogue vous est proposé sur le forum 5 commentaires · Donner une note à l'article (4.5).

Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites      



Exercice 1 : Ajouter des commandes dans la barre de menu et la barre d'outils
But
Description
Etapes à suivre
Exercice 2 : Restrictions sur les commandes
But
Description
Etapes à suivre
Pour aller plus loin ...


Exercice 1 : Ajouter des commandes dans la barre de menu et la barre d'outils


But

  • Apprendre à créer une commande
  • Apprendre à créer un handler et à l'associer à une commande
  • Apprendre à ajouter une commande dans la barre d'outils d'une application Eclipse
  • Apprendre à ajouter une commande dans le menu d'une application Eclipse

Description

Ajoutez dans le menu principal un élément de menu appelé JUGeRCP qui contiendra deux commandes : une permettant de réinitialiser le gestionnaire des participants (supprime tous les participants) et une permettant de démarrer le jeu concours. Par ailleurs, une commande est également ajoutée à la barre d'outils principale permettant de réinitialiser le gestionnaire des participants (même comportement que la commande située dans le menu). Cet exercice apporte des modifications sur les deux plug-ins eclipse.labs.jugercp.attendees et eclipse.labs.jugercp.quizz.


Etapes à suivre

Si vous n'avez pas complètement terminé le développement des plug-ins eclipse.labs.jugercp.attendees et eclipse.labs.jugercp.quizz lors de la fin de la leçon 3, vous pouvez récupérer le code complet dans le répertoire ressources\lesson 3 - Interaction entre plug-ins\solution.

A partir du plug-in eclipse.labs.jugercp.quizz, créez une extension sur la base du point d'extension org.eclipse.ui.commands (ne pas utiliser le patron de construction).

Création d'une nouvelle extension commande
Ajoutez un sous élément de type Command à partir de l'élément org.eclipse.ui.commands puis respectez les valeurs des attributs comme indiqué sur la capture d'écran ci-dessous.

Edition de l'extension commande
Recopiez le code ci-dessous dans la classe LaunchQuizzHandler qui implémente le comportement (appelé handler) de la commande.

Code Java de la classe LaunchQuizzHandler
Créez une extension sur la base du point d'extension org.eclipse.ui.menus.

Création d'une nouvelle extension menu
Ajoutez un sous élément de type menuContribution à partir de l'élément org.eclipse.ui.menus puis respectez les valeurs des attributs comme indiqué sur la capture d'écran ci-dessous.

Edition de l'extension menu
Il est précisé ici qu'un élément graphique est ajouté au menu principal de l'application Eclipse.

Ajoutez un sous élément de type menu à partir de l'élément menuContribution puis respectez les valeurs de l'attribut comme indiqué sur la capture d'écran ci-dessous.

Ajouter un sous menu au menu principal
Il est précisé ici qu'un élément de menu JUGeRCP est ajouté au menu principal de l'application Eclipse.

Ajoutez un sous élément de type command à partir de l'élément menu puis respectez les valeurs des attributs comme indiqué sur la capture d'écran ci-dessous.

Associer la commande Quizz à l'élément menu
Un élément de menu défini par la commande eclipse.labs.jugercp.quizz.laundquizzcommandid est ajouté au menu JUGeRCP.

Exécutez la configuration d'exécution pour tester le nouveau résultat attendu. Vous devriez voir afficher un résultat similaire à la capture d'écran ci-dessous.

Tester la commande ajoutée dans le menu
Nous nous intéressons maintenant à la commande de réinitialisation du gestionnaire de participants. A partir du plug-in eclipse.labs.jugercp.attendees, créez une extension sur la base du point d'extension org.eclipse.ui.commands (ne pas utiliser le patron de conception).

Ajoutez un sous élément de type Command à partir de l'élément org.eclipse.ui.commands puis respectez les valeurs des attributs comme indiqué sur la capture d'écran ci-dessous.

Création de la commande Initialize Attendees
Vous remarquerez que l'attribut defaultHandler n'a pas été renseigné. Par la suite, nous allons déléguer le comportement à un handler spécifique.

Créez une extension sur la base du point d'extension org.eclipse.ui.handlers

Création d'une extension handler
Automatiquement, un élément de type handler est ajouté à l'élément org.eclipse.ui.handlers.

Edition de l'extension handler
Recopiez le code ci-dessous dans la classe InitializeAttendeesHandler pour implémenter la réinitialisation du gestionnaire de participants.

Code Java de la classe InitializeAttendeesHandler
Créez une extension sur la base du point d'extension org.eclipse.ui.menus.

Ajoutez un sous élément de type menuContribution à partir de l'élément org.eclipse.ui.menus puis respectez les valeurs des attributs comme indiqué sur la capture d'écran ci-dessous.

Ajout d'un élément menuContribution
Ajoutez un sous élément de type menu à partir de l'élément menuContribution puis respectez les valeurs de l'attribut comme indiqué sur la capture d'écran ci-dessous.

Ajout d'un élément menu
A noter que ce menu est identique à celui créé précédemment. Il est important que la valeur de l'identifiant soit la même pour éviter de créer un doublon.

Ajoutez un sous élément de type command à partir de l'élément menu puis respectez les valeurs des attributs comme indiqué sur la capture d'écran ci-dessous.

Ajout d'un élément command
La commande est maintenant ajoutée au menu JUGeRCP. Intéressons nous maintenant à ajouter cette commande au niveau de la barre d'outils principale.

Ajoutez un sous élément de type menuContribution à partir de l'élément org.eclipse.ui.menus puis respectez les valeurs des attributs comme indiqué sur la capture d'écran ci-dessous.

Ajout d'un élément menuContribution
Il est précisé ici qu'un élément graphique est ajouté à la barre d'outils de l'application Eclipse.

Ajoutez un sous élément de type toolbar à partir de l'élément menuContribution puis respectez la valeur de l'attribut id comme indiqué sur la capture d'écran ci-dessous.

Ajout d'un élément dans la barre d'outils
Ajoutez un sous élément de type command à partir de l'élément toolbar puis respectez les valeurs des attributs comme indiqué sur la capture d'écran ci-dessous.

Ajout d'un élément commande
Exécutez la configuration d'exécution pour tester le nouveau résultat attendu. Vous devriez voir affiché un résultat similaire à la capture d'écran ci-dessous.

Afficher les deux commandes dans le menu

Exercice 2 : Restrictions sur les commandes


But

  • Création d'Expression Definitions
  • Appliquer une restriction sur une commande en utilisant le langage Core Expressions

Description

Lorsque la perspective JUGParticipants est affichée seules la commande permettant de réinitialiser le gestionnaire des participants est accessible. De même lorsque la perspective JUGConcours est affichée seule la commande permettant de démarrer le jeu concours est accessible. Cet exercice apporte des modifications sur les deux plug-ins.


Etapes à suivre

A partir du plug-in eclipse.labs.jugercp.quizz, éditez le fichier plugin.xml en utilisant l'outil PDE.

Ajoutez un élément visibleWhen à l'élément command (celui utilisé pour l'affichage de la commande dans le menu).

Ajouter un élément visiblewhen à l'élément command
Ajoutez un élément with à l'élément visibleWhen puis indiquez dans l'attribut variable la valeur activeWorkbenchWindow.activePerspective. Ceci est une variable prédéfinie par la plateforme permettant de récupérer la valeur de la perspective courante.

Ajouter un élément with à l'élément visiblewhen
Ajoutez un élément equals à l'élément with puis indiquez dans l'attribut value l'identifiant de la perspective relative à la perspective JUGConcours (org.eclipse.ui.resourcePerspective).

Ajouter un élément equals à l'élément with
Exécutez la configuration d'exécution pour tester le nouveau résultat attendu. La commande Quizz ne devrait pas être disponible dans la perspective JUGParticipants.

Perspective JUGConcours active
Perspective Active : JUGConcours
Perspective JUGParticipants active
Perspective Active : JUGParticipants
Le plug-in eclipse.labs.jugercp.attendees affiche à la fois la commande dans le menu et dans la barre d'outils de l'application Eclipse. Nous pourrions procéder de la même manière que précédemment pour rendre accessible cette commande. Malheureusement nous devrions dupliquer les déclarations relatives à la restriction. Pour palier à ce problème nous utilisons la définition d'expression.

A partir du plug-in eclipse.labs.jugercp.quizz, éditez le fichier MANIFEST.MF en utilisant l'outil PDE. Ajoutez dans les dépendances (onglet Dependencies) le plug-in org.eclipse.core.expressions.

Ajouter la dépendance du plugin org.eclipse.core.expressions
Créez maintenant une extension sur la base du point d'extension org.eclipse.core.expressions.definitions.

Ajouter une extension de type Expression Definition
Automatiquement, un élément definition est créé. La construction de la restriction est similaire à celle construite précédemment.

Ajoutez un élément de type with avec la valeur activeWorkbenchWindow.activePerspective pour l'attribut variable.

Ajoutez un élément de type equals avec la valeur eclipse.labs.jugercp.attendees.jugattendeesid pour l'attribut value.

Construction de l'extension Expression Definition
Il reste à associer à la restriction visibleWhen du menu et de la barre d'outils JUGeRCP cette nouvelle définition.

Pour chaque restriction visibleWhen, ajoutez un sous élément de type reference avec la valeur eclipse.labs.jugercp.attendees.resetexpdefinitionid pour l'attribut definitionid (créé précemment).

Associer la référence d'une Expression Definition
Exécutez la configuration d'exécution pour tester le nouveau résultat attendu. La commande Reset Participants ne devrait pas être disponible dans la perspective JUGConcours.

Perspective JUGConcours active
Perspective Active : JUGConcours
Perspective JUGParticipants active
Perspective Active : JUGParticipants

Pour aller plus loin ...



               Version PDF   Version hors-ligne

Valid XHTML 1.0 TransitionalValid CSS!

 
 
 
 
Partenaires

Hébergement Web