1 2 3 4 

Eclipse RCP

2.Premier exemple

Pour créer une application RCP, il faut faire un nouveau projet de plug in :

File -> New -> Project, dans Plug-in developpement sélectionner Plug-in project.
Il faut ensuite entrer le nom du projet, laisser les options par défaut puis cliquer sur Next.
Sur l’écran suivant, pour l’option "Would you like to create a rich client application ", sélectionner Oui.
On obtient alors différents templates sur lequels on peut se baser et créer notre propre application. Pour cet exemple, nous allons utiliser le premier template (« Hello RCP »). Il faut donc sélectionner Hello Template puis cliquer sur Finish.

Vous devriez avoir l’écran suivant :





Il s’agit du PDE (Plugin Development Environment) qui permet d’automatiser certaines tâches pour la création de plugin.

Vous pouvez lancer l’exemple en cliquant sur « Launch an Eclipse application » ce qui donne ceci :



Nous allons maintenant détailler le code qui a été généré par l’assistant.

    1. La classe Application (Application.java)


Cette classe ne sert qu’à contrôler les aspects de l’exécution de l’application.

public class Application implements IPlatformRunnable {
public Object run(Object args) throws Exception {
Display display = PlatformUI.createDisplay();
try {
int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
if (returnCode == PlatformUI.RETURN_RESTART) {
return IPlatformRunnable.EXIT_RESTART;
}
return IPlatformRunnable.EXIT_OK;
} finally {
display.dispose();
}
}
}

La classe Application.java

Cette classe implémente l’interface IPlatformRunnable.
Dans la méthode run(), on crée un workbench avec en paramètre un Workbench Advisor (nous verrons ce que c’est dans la suite de cet article).

    1. La classe Perspective (Perspective.java)


Une perspective représente un ensemble de vues, éditeurs et menus de l’application.
Il est obligatoire, avec RCP, de définir au moins une perspective (ce sera alors la perspective par défaut).
Une perspective implémente l’interface IPerspectiveFactory et la méthode createInitialLayout() qui permet de définir la position et chaque vues ou editeurs.
    1. Les Advisor Class


Il en existe plusieurs type (« Workbench Advisor », « Workbench Window Advisor », “ApplicationActionBarAdvisor”).
Ils permettent de contrôler tous les éléments du Workbench

      1. Workench Advisor


Son rôle principal est de définir la perspective par défaut de l’application.

public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {

private static final String PERSPECTIVE_ID = "com.supinfo.eclipseRCP.exemple.perspective";

public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
return new ApplicationWorkbenchWindowAdvisor(configurer);
}

public String getInitialWindowPerspectiveId() {
return PERSPECTIVE_ID;
}

ApplicationWorckbenchAdvisor.java


Il faut obligatoirement déclarer une chaîne représentant l’id de la perspective principale (celui déclaré dans le fichier de configuration plugin.xml) et redéfinir la méthode getInitialWindowPerspectiveId ».

Il est également possible de redéfinir d’autres méthodes qui sont optionelles :

getDefaultPageInput : définit le point d’entrée par défaut pour les nouvelles pages workbench.

getMainPreferencePageId : définit la perspective qui sera affichée en premier.


      1. Workench Window Advisor


Cette classe permet de contrôler le comportement de la fenêtre (taille, titre) et les
composants qui sont présents par défaut (barre de statut, barre d’outils).

public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {

public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
super(configurer);
}

public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
return new ApplicationActionBarAdvisor(configurer);
}

public void preWindowOpen() {
IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
configurer.setInitialSize(new Point(400, 300));
configurer.setShowCoolBar(false);
configurer.setShowStatusLine(false);
configurer.setTitle("Hello RCP");
}
}

ApplictionWorkbenchWindowAdisor.java

Ici, on crée un « configurer interface » puis on définit la taille et le titre de l’application dans la méthode preWindowOpen.

      1. Action Bar Advisor


Cette classe gère les différentes actions pour les « ActionBar » c'est-à-dire les barres de menu, cool bar et barre de statut.
Les différentes méthodes que l’on peut utiliser sont :

makeActions permet de definir des actions pour chaque menu.

fillMenuBar permet de remplir la barre de menu

fillCoolBar permet de remplir la cool bar

fillStatusLine permet de remplir la barre de statut.

    1. Le fichier plugin.xml


Il permet de définir la structure de notre application Eclipse RCP. Il faut y faire figurer, par exemple, l’emplacement de la classe Application, la perspective par défaut, les vues…

    1. Résumé


Pour résumer, une application Eclipse RCP se compose d’un fichier de description plugin.xml, d’une classe Application qui gère l’exécution de l’application et qui crée un nouveau « Workbench Advisor ». Ce Workbench Advisor défini la perspective par défaut de l’application. Sur cette perspective il sera possible de définir les différentes vues de notre application. Ensuite, la classe WorkbenchWindowAdvisor permet de définir le comportement de notre fenêtre (taille, titre…) et la présence ou non sur notre fenêtre des « ActionBar » (barre de menu, de statut…). Les « Action Bar » sont ensuite gérées dans la classe ActionBarAdvisor.

1 2 3 4 

Retrouvez ci-dessous les autres sections du Laboratoire Sun
Evènements
Java Sun Net Talk LIVE CHAT le 2 Avril à 16h303/29/08
SolarisSunDécouvrez les nouveaux Sun Fire sous Intel10/11/07
JavaValtech Days10/9/07
JavaApacheCon du 1 au 4 mai à Amsterdam2/13/07

Exemples de code
JavaManipuler les looks and feel (lister et affecter)10/15/07
JavaFaire sa propre injection de dépendance avec les annotations5/9/06
JavaSplash screen avec progress Bar5/5/06
JavaFaire un splash screen en swing5/5/06

Actualités
SunProjet Kenai: une nouvelle forge open source10/3/08
SunSun Microsystems en forme !8/4/08
SunOpenDS un ldap 100% java7/24/08
SunSun et Fujitsu annoncent un nouveau Sparc647/16/08
SunVisualVM, un outil de surveillance des applications Java7/10/08

Tips du laboratoire
EclipseVisual Editor avec Eclipse Europa, c'est possible3/28/08
EclipseGérer les projets dans un workspace.10/16/07
JavaManager votre server d'application avec Eclipse4/21/07
JavaVue des sub-packages avec Eclipse4/21/07
JavaGlisser-déposer avec Eclipse4/21/07

Laboratoire SUPINFO des technologies Sun
labo-sun@supinfo.com


Conditions d'utilisation et © Copyright SUPINFO International University
23, rue de Château Landon - 75010 PARIS - Tél : +33 (0) 153359700 Fax : +33 (0) 153359701
Respect de la vie privée