Nous savons tous à quoi ressemble "Hello World" en ancien langage Java, sans avoir recours à une interface utilisateur ou à d'autre structure.
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Qu'arrive t-il à ce vieux standard dans le contexte de la plateforme Eclipse ? Au lieu d'envisager Hello World en tant que programme indépendant, reconsidérons-le comme une extension de la plateforme. Le but étant de dire bonjour (hello) à tout le monde, il faut trouver comment étendre le plan de travail pour inclure cette salutation.
En entrant plus profondément dans les composants de l'interface utilisateur de la plateforme, une révision complète des moyens d'extension et de personnalisation de l'interface utilisateur du plan de travail peut être effectuée. Commençons dès à présent avec l'une des extensions les plus simples du plan de travail : une vue.
Vous pouvez considérer la fenêtre du plan de travail comme un cadre présentant diverses parties visuelles. Ces parties se divisent en deux catégories principales : les vues et les éditeurs. Nous aborderons les éditeurs ultérieurement. Les vues fournissent des informations sur certains objets avec lesquels l'utilisateur travaille dans le plan. Le contenu des vues change souvent à mesure que l'utilisateur sélectionne différents objets dans le plan de travail.
Pour le plug-in Hello World, nous implémenterons notre propre vue pour afficher le message"Hello World" à l'utilisateur.
Le package org.eclipse.ui et ses sous-packages contiennent les interfaces publiques qui définissent l'API de l'interface utilisateur du plan de travail. Un grand nombre de ces interfaces possède des classes d'implémentation par défaut qui peuvent être étendues pour apporter de simples modifications au système. Dans l'exemple d'hello world, une vue du plan de travail sera étendue pour fournir un libellé disant "hello".
L'interface intéressante est IViewPart. Elle définit les méthodes qui doivent être implémentées pour faire contribuer une vue au plan de travail. La classe ViewPart fournit une implémentation par défaut de cette interface. Pour être bref, une partie de la vue est responsable de la création des widgets nécessaires à l'affichage de la vue.
Les vues standard du plan de travail affichent souvent des informations sur un objet que l'utilisateur a sélectionné ou dans lequel il navigue. Les vues mettent à jour leur contenu en fonction des actions qui se produisent dans le plan de travail. Dans le cas présent, il s'agit tout simplement de dire bonjour (hello), aussi la vue est très simple.
package org.eclipse.examples.helloworld;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.SWT;
import org.eclipse.ui.part.ViewPart;
public class HelloWorldView extends ViewPart {
Label label;
public HelloWorldView() {
}
public void createPartControl(Composite parent) {
label = new Label(parent, SWT.WRAP);
label.setText("Hello World");
}
public void setFocus() {
// set focus to my widget. For
a label, this doesn't
// make much sense, but for more
complex sets of widgets
// you would decide which one gets
the focus.
}
}
La partie de la vue crée les widgets qui la représentent dans la méthode createPartControl. Dans cet exemple, un libellé SWT est créé dans lequel le texte "Hello World" est défini.
Voilà qui en est fini avec l'encodage ! Vous pouvez compiler votre nouvelle classe (n'oubliez pas de vous assurer que les fichiers JAR de la plateforme sont visibles dans votre IDE ou l'environnement de votre compilateur de façon à pouvoir compiler le plug-in), mais il faut encore trouver comment exécuter cette nouvelle vue.
La nouvelle vue doit ressembler à quelque chose du genre suivant :
Comment ajouter cette vue à la plateforme ?
Vous devez informer la plateforme que nous voulons ajouter une vue. Pour ce faire, étendez le point d'extension org.eclipse.ui.views. L'extension est enregistrée en fournissant un fichier manifeste, plugin.xml, qui décrit le plug-in, y compris l'emplacement de son code et l'extension que nous ajoutons.
<?xml version="1.0" ?>
<plugin
name="Exemple Hello World"
id="org.eclipse.examples.helloworld"
version="1.0"
provider-name="Object Technology International, Inc.">
<requires>
<import plugin="org.eclipse.ui" />
</requires>
<runtime>
<library name="helloworld.jar" />
</runtime>
<extension point="org.eclipse.ui.views">
<category
id="org.eclipse.examples.helloworld.hello"
name="Hello" />
<view
id="org.eclipse.examples.helloworld.helloworldview"
name="Hello Greetings"
category="org.eclipse.examples.helloworld.hello"
class="org.eclipse.examples.helloworld.HelloWorldView" />
</extension>
</plugin>
Dans ce fichier, définissez le nom, l'ID, la version et le nom du fournisseur du plug-in.
Les plug-ins requis sont également énumérés. Comme l'API SWT et le plan de travail sont utilisés, org.eclipse.ui doit figurer dans la liste. Vous devez également décrire l'emplacement du code exécutable. Dans le cas présent, le code est regroupé dans le fichier helloworld.jar.
Enfin, déclarez à quel point d'extension le plug-in contribue. L'extension org.eclipse.ui.views dispose de plusieurs paramètres de configuration différents. Revoyons les paramètres spécifiés dans le manifeste.
Pour l'extension de la vue, une catégorie a d'abord été déclarée. Les catégories peuvent être utilisées pour regrouper les vues connexes dans la boîte de dialogue Affichage de la vue du plan de travail. La catégorie"Hello," est définie, de telle sorte qu'elle apparaisse dans son propre groupe.
Un ID unique est déclaré pour la vue et le nom de la classe qui fournit l'implémentation de la vue est spécifié. Un nom est également spécifié pour la vue, "Hello Greetings", qui s'affichera dans la boîte de dialogue Affichage de la vue et dans la barre de titre de la vue.
De nombreux ID sont utilisés dans un fichier manifeste de plug-in. Les points d'extension individuels définissent souvent les paramètres de configuration qui requièrent des ID (par exemple l'ID catégorie utilisé ci-dessus pour le point d'extension des vues). Un ID de plug-in est également défini. En règle générale, les préfixes de nom du package Java doivent être utilisés pour tous les ID afin d'assurer l'identité unique parmi tous les plug-ins installés.
Le nom spécifique utilisé après le préfixe ne dépend que de vous. Cependant, si le préfixe de l'ID de votre plug-in est exactement le même nom que celui de l'un de vos packages, vous devez éviter d'utiliser des noms de classe de ce package. Sinon, il deviendra difficile de dire s'il s'agit d'un nom d'ID ou d'un nom de classe.
Vous devez également éviter d'utiliser le même ID pour différents paramètres de configuration d'extension. Dans le manifeste ci-dessus, un préfixe d'ID commun a été utilisé (org.eclipse.examples.helloworld), mais tous les ID sont uniques. Cette approche de dénomination permet de lire le fichier et de voir quels sont les ID concernés.