Eclipse RCP


Configuration du workbench


Dans la configuration de notre workbench, nous allons décrire successivement trois classes :



La classe WorkbenchAdvisor

On étend de cette classe est la base pour configurer le workbench de la plateforme. Il faut définir la perspective à utiliser et quelques méthodes doivent être redéfinies pour que notre plug-in puisse fonctionner.


Il faut penser a appeler la création de notre workbench dans le point d'entrée exécutable pour que le plug-in puisse fonctionner. Voir la section Point d'entrée exécutable pour un exemple de code.


La définition de la perspective

Il faut absolument définir une perspective à utiliser dans toute application :


private static final String PERSPECTIVE_ID = "ExposeRCP.perspective";

Cette String définit notre perspective.


La méthode "createWorkbenchWindowAdvisor"

Cette méthode explicite la création d'une fenêtre du workbench :


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

La notion de fenêtre dans le workbench est décrite ci-dessous. Dans notre cas, nous n'avons qu'une seule fenêtre principale.


La méthode "initialize"

Cette méthode est appellée avant le lancement du workbench. Elle est appellée avant tout autre création de fenêtres :


public void initialize(IWorkbenchConfigurer configurer) {
super.initialize(configurer);
configurer.setSaveAndRestore(true);
}


La méthode "initialize"

Cette méthode retourne la perspective initiale à utiliser :


public String getInitialWindowPerspectiveId() {
return PERSPECTIVE_ID;
}







La classe WorkbenchWindowAdvisor

A chaque création de fenêtre dans le workbench, un WorkbenchWindowAdvisor est créé. On l'étend pour  configurer correctement la fênetre à créer.


La méthode "createActionBarAdvisor"

Cette méthode crée toutes les actions associées à la fenêtre :


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

La notion d'actions dans le workbench est décrite ci-dessous.


La méthode "preWindowOpen"

Cette méthode permet de définir l'apparence que la fenêtre doit avoir :

public void preWindowOpen() {
IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
configurer.setInitialSize(new Point(700, 550));
configurer.setShowCoolBar(false);
configurer.setShowStatusLine(false);
configurer.setTitle("Eclipse RCP");
}

Si on veut une CoolBar ou une StatusLine, il suffit de mettre le boolean à "True". Il faut donner une taille initiale à la fenêtre et éventuellement donner un titre à l'application.





La classe ActionBarAdvisor

Les actions associées à la barre de menu située en haut de l'application sont décrite dans l'implémentation de la classe qui étend ActionBarAdvisor.


La méthode "makeActions"

Cette méthode permet d'associer les actions à définir  à la fenêtre spécifiée :


protected void makeActions(IWorkbenchWindow window) {
introAction = ActionFactory.INTRO.create(window);
register(introAction);

aboutAction = ActionFactory.ABOUT.create(window);
register(aboutAction);

quitAction = ActionFactory.QUIT.create(window);
register(quitAction);
}

Une action pour le fenêtre de présentation après le lancement de l'application. Une autre pour la fonction "about" de l'application et une autre pour quitter l'application.


Ici, nous n'avons défini que des actions simples à mettre en oeuvre car elle sont déjà définies dans le framework RCP. On peut bien entendu en décrire d'autres adaptés aux besoins.


La méthode "fillMenuBar"

Cette méthode permet de créer graphiquement les éléments de la barre de menu :


protected void fillMenuBar(IMenuManager menuBar) {
MenuManager helpMenu = new MenuManager("&Help", IWorkbenchActionConstants.M_HELP);
menuBar.add(helpMenu);

// Help
helpMenu.add(introAction);
helpMenu.add(aboutAction);
helpMenu.add(quitAction);
}

Dans notre application, nous allons créer un menu d'aide sur la MenuBar spécifée avec les actions crées dans la méthode ci-dessus makeActions.