article de presse - Cap Data Consulting
article de presse - Cap Data Consulting
article de presse - Cap Data Consulting
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
P ratique<br />
Nous savons générer, compiler, exécuter et distribuer une application<br />
client riche avec Eclipse 3.1. Nous avons également dit quelques<br />
mots sur le lancement d'une application RCP au sein du runtime<br />
Eclipse. Révisons un petit peu. Le système va du général au particulier. Au<br />
départ se trouve une classe 'Application' qui travaille avec une classe intervenant<br />
sur le Workbench. Celle-ci travaille à son tour avec une classe s'intéressant<br />
à l'aspect visuel du Workbench. Les classes <strong>de</strong> perspectives travaillent<br />
avec les vues, sans avoir toutefois <strong>de</strong> relations directes avec les <strong>de</strong>ux<br />
classes précitées. Au milieu <strong>de</strong> tout cela, se promène une classe pour la création<br />
<strong>de</strong>s actions. Nous traiterons <strong>de</strong> cette classe un peu plus loin. Une application<br />
RCP se branche au minimum sur les points d'extensions Applications,<br />
Perspectives et Views. Les branchements sur les points Perspectives et Views<br />
peuvent être multiples. Les branchements sont énumérés dans un fichier <strong>de</strong><br />
configuration XML. Ce fichier ne matérialise aucune relation entre perspectives<br />
et vues ni entre perspectives et Workbench.<br />
1<br />
Notre but<br />
Notre point <strong>de</strong> départ est une application RCP <strong>de</strong> base, comme illustrée ci<strong>de</strong>ssous.<br />
A l'intérieur <strong>de</strong> la fenêtre nous voyons un <strong>de</strong>uxième jeu <strong>de</strong> bouton<br />
d'agrandissement et fermeture. Ceux-ci concernent l'éditeur par défaut<br />
qui occupe toute la place. Cette vue est<br />
évi<strong>de</strong>mment gérée par une perspective.<br />
Nous voulons que notre application gère<br />
une seule perspective. Nous gardons donc<br />
celle par défaut, mais nous enlèverons<br />
l'éditeur par défaut pour le remplacer par<br />
un canevas qui affichera un texte en son<br />
centre. Nous ajouterons une barre <strong>de</strong> menus et une barre d'outils. Une<br />
entrée du menu et un bouton <strong>de</strong> la barre d'outils seront connectés à une<br />
action qui provoquera l'affichage d'un <strong>de</strong>uxième texte dans le canevas.<br />
Même si ce but est mo<strong>de</strong>ste, il vous sera suffisant pour aller beaucoup plus<br />
loin tout seul sans difficulté, car tout sous Eclipse obéit aux mêmes principes.<br />
Vous trouverez le projet complet sur le Cd-Rom accompagnant le<br />
magazine. Cet <strong>article</strong> expose la démarche à suivre à partir du projet donné<br />
le mois <strong>de</strong>rnier.<br />
2<br />
Le gros oeuvre<br />
Commençons par configurer l'aspect visuel du Workbench qui est du même<br />
coup l'aspect visuel <strong>de</strong> notre application. Nous modifions pour cela une métho<strong>de</strong><br />
<strong>de</strong> la classe ApplicationWorkbenchWindowAdvisor prévue à cet effet :<br />
public void preWindowOpen() {<br />
IWorkbenchWindowConfigurer configurer =<br />
getWindowConfigurer();<br />
configurer.setInitialSize(new Point(400, 300));<br />
configurer.setShowCoolBar(true);<br />
configurer.setShowStatusLine(false);<br />
configurer.setTitle("Programmez! RCP");<br />
}<br />
Niveau<br />
java facile avancé expert<br />
Développer <strong>de</strong>s applications<br />
Eclipse RCP (2e partie)<br />
Après avoir appris à générer une application client riche avec Eclipse 3.1, nous allons étudier<br />
comment personnaliser l'application en fonction <strong>de</strong> nos besoins.<br />
Notre point <strong>de</strong> départ est une<br />
application Eclipse RCP <strong>de</strong> base.<br />
Notre Eclipse RCP<br />
application personnalisée.<br />
Programmez n°85 77 avril 2006<br />
Nous rendons visible la Coolbar qui nous servira <strong>de</strong> barre d'outils, masquons<br />
la barre d'état et donnons un titre à la fenêtre. Tout cela est bien, mais l'éditeur<br />
par défaut est toujours présent. Celui-ci est intégré à la perspective par<br />
défaut. Cette perspective n'est pas instanciée ici dans le co<strong>de</strong> <strong>de</strong> configuration<br />
du Workbench. Quand Eclipse a passé ces étapes <strong>de</strong> configuration, il<br />
revient au <strong>de</strong>scriptif XML <strong>de</strong> l'application et y trouve la définition <strong>de</strong> la perspective<br />
par défaut, générée par l'assistant lors <strong>de</strong> la création du projet. Il instancie<br />
alors la classe Java correspondante puis invoque une métho<strong>de</strong> :<br />
public void createInitialLayout(IPageLayout layout) {<br />
}<br />
dont le corps est pour l'instant désespérément vi<strong>de</strong>, ce qui n'empêche pas la<br />
zone <strong>de</strong> l'éditeur d'être présente comme nous l'avons dit plus haut. Ceci vient<br />
du concept même <strong>de</strong> perspective qui se veut être un éditeur central entouré<br />
<strong>de</strong> vues montrant sous différents aspects le contenu <strong>de</strong> l'éditeur. Suivant cette<br />
logique, Eclipse crée toujours une zone d'édition par défaut. Comme on le<br />
voit, la métho<strong>de</strong> reçoit un IPageLayout en argument. Le terme layout fait comprendre<br />
que nous avons affaire à un gestionnaire <strong>de</strong> mise en forme analogue<br />
aux layouts <strong>de</strong> Swing bien connus. Nous voyons le mot Page, mais pas le mot<br />
perspective. Simple problème <strong>de</strong> terminologie. Sous Eclipse, une perspective<br />
est un concept logique. Quand ce concept trouve sa matérialisation visuelle<br />
dans le Workbench cela <strong>de</strong>vient une page. Notre interface IPageLayout va<br />
donc bien s'occuper <strong>de</strong> la mise en forme <strong>de</strong> notre Perspective/Page. De<br />
même, une vue Eclipse est un concept matérialisé visuellement par une Part,<br />
ainsi que nous le verrons plus loin. Réécrivons la métho<strong>de</strong> :<br />
public void createInitialLayout(IPageLayout layout) {<br />
Sur le<br />
CD ROM