02.07.2013 Views

article de presse - Cap Data Consulting

article de presse - Cap Data Consulting

article de presse - Cap Data Consulting

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!