ECLIPSE RCP TP Réalisation d'un Browser Gaël QUEMENER Ifremer Février 2014 Gael.Quemener@ifremer.fr 1/10
Table des matières 1.Intitulé... 3 2.Application Eclipse RCP... 3 3. Ajout d'une vue dans le modèle d'application...4 4. Lier une vue à une classe... 5 5.Ajout d'un bouton... 6 6. Event listener sur le bouton...6 7.Listener sur l'objet Text... 6 8.Création de nouvelles vue... 6 9.Ajouter deux boutons... 7 10.Favoris... 7 11. Références... 9 11.1 Eclipse... 9 11.2 SWT... 10 2/10
1. Intitulé Le but du TP est de développer un browser internet avec Eclipse RCP. Les fonctionnalités à développer sont : affichage d'une vue simple avec un browser affichage d'un Text Field et d'un bouton permettant de spécifier l'adresse création de deux boutons "forward" et backward" gestion de favoris enregistrement de l'historique 2. Application Eclipse RCP Créer un projet de type "Eclipse 4 Application Project". Vérifier qu'elle se lance correctement. Vérifier que l'application est lancée : 3/10
Figure 1: Première application 3. Ajout d'une vue dans le modèle d'application Ajouter une "Part" simple dans le modèle d'application. Vérification de la présence de la nouvelle vue en exécutant l'application. On doit voir apparaître une nouvelle vue: 4/10
Figure 2: Nouvelle Part dans une application 4. Lier une vue à une classe Le but est de créer une classe java qui permettra d'ajouter des éléments graphiques à la vue dans le code. Créer la classe java et créer le lien Part-classe dans le modèle d'application. Ajouter le code dans la classe qui ajoute un browser dans la Part. Initialiser le browser à "www.google.com". 5/10
5. Ajout d'un bouton Instancier un GridLayout dans la méthode appropriée, ajouter un champ texte pour entrer l'adresse http et un bouton pour prendre en compte l'adresse entrée par l'utilisateur. 6. Event listener sur le bouton Le but est de récupérer un événement graphique. Dans notre cas, le but est de rafraîchir le browser quand on clique sur le bouton "Go To". Utiliser button.addselectionlistener(new SelectionAdapter(),... 7. Listener sur l'objet Text Le but est de récupérer l'événement quand l'utilisateur tape "Enter" dans le Text de saisie de l'adresse. Ensuite il faudra afficher la page de l'adresse saisie dans le browser. Utiliser Text.addListener(SWT.DefaultSelection, new Listener()... 8. Création de nouvelles vue Créer de nouvelles vues avec CTRL-T et par un item du menu "File". Pour celà, créer dans le modèle d'application le "Binding Tables", une commande, un handler et une classe java associée. Code du handler: public class DynamicPartHandlerCode { @Execute public void execute(mapplication application, EPartService partservice, EModelService modelservice) { System.out.println("DynamicPartHandlerCode"); 6/10
// create new part MPart mpart = modelservice.createmodelelement(mpart.class); mpart.setlabel("testing"); mpart.setelementid("newid"); // connect the new part to the right class mpart.setcontributionuri("bundleclass://tp2/tp2.parts.samplepart"); partservice.showpart(mpart, PartState.ACTIVATE); 9. Ajouter deux boutons Ajouter dans la barre supérieure de la Part, un bouton "Forward" et un bouton "Backward". Mettre deux icones dans les boutons. Récupérer l'action de click sur les boutons pour implémenter les actions "forward" et "backward". 10. Favoris Créer un nouveau plugin "favorites". Y créer une classe favorites avec les méthodes suivantes: package addresslist; import java.util.arraylist; import java.util.list; public class addresslist { List<String> thelist; private addresslist(){ /** Instance unique non préinitialisée */ private static addresslist INSTANCE = null; /** Point d'accès pour l'instance unique du singleton */ public static addresslist getinstance() { if (INSTANCE == null) { INSTANCE = new addresslist(); return INSTANCE; 7/10
public void add(string s){ if (thelist==null){ thelist = new ArrayList<String>(); thelist.add(s); public List<String> get(){ return thelist; public void load(){ public void record(){ public void dump(){ for (String s : thelist){ System.out.println(s); Exporter le package favorites dans le plug-in favorites (MANIFEST.MF, onglet runtime) Ajouter une dépendance depuis le plugin application vers le plugin favorites (MANIFEST.MF, onglet Dependencies) Accéder au singleton favorites de cette façon : addresslist.getinstance().add(string...); Afficher un item dans le menu pour visualiser la liste des favoris dans une nouvelle Part. Ajouter un bouton dans la page principale pour enregistrer un favori. 8/10
11. Références 11.1 Eclipse www.eclipse.org Eclipse 4 RCP wiki: http://wiki.eclipse.org/eclipse4/rcp Eclipse 4 RCP FAQ: http://wiki.eclipse.org/eclipse4/rcp/faq Eclipse 4 wiki tutorials http://wiki.eclipse.org/eclipse4/tutorials Lars Vogel Tutorial : http://www.vogella.com/articles/eclipsercp/article.html Eclipse 4 wiki Injection de dépendances : http://wiki.eclipse.org/eclipse4/rcp/dependency_injection La "bible" Eclipse 4 : "Eclipse 4 Application Development" de Lars Vogel, Mai 2012 (434 pages, www.amazon.com) ISBN-10: 3943747034 ISBN-13: 978-3943747034 http://www.amazon.com/dp/b00865c22k 9/10
11.2 SWT Description des widgets: http://www.eclipse.org/swt/widgets/ Exemples de code SWT : http://www.eclipse.org/swt/snippets/ Comprendre les layouts dans SWT : http://www.eclipse.org/articles/article.php?file=article-understanding-layouts/index.html Lars Vogel SWT tutorial : http://www.vogella.com/articles/swt/article.html FIN DU DOCUMENT 10/10