Java Reference
In-Depth Information
{
System.err.println(e.getMessage());
continue;
}
Function function = (Function)callback;
//Markierung Nr. 2
ui.addFunction(functionName, function, counter);
}
}
}
In der Initialisierungsmethode createPartControl wird im Konstruktor von FunctionsUser-
Interface die initiale Oberfl äche bestehend aus der Beschri ung „Zähler“ und dem grau
hinterlegten Feld mit der Anzeige des anfänglichen Werts des Zählers erzeugt (s. Bild 10.4).
Die Klasse Composite entspricht in Swing einem JPanel und repräsentiert den Inhalt der
View, der zum Befüllen als Parameter übergeben wird. Die entscheidende Methode ist die
Methode process. Sie bescha sich zunächst über eine statische Methode eine Referenz auf
die ExtensionRegistry von Eclipse, in der alle existierenden Erweiterungspunkte gespei-
chert sind. Unter der Angabe des Namens des Erweiterungspunkts „CounterView.func-
tions“ ält man durch Aufruf der Methode getExtensionPoint den Eintrag des eigenen
Erweiterungspunkts in der ExtensionRegistry. Davon kann man sich mit getConfi gurati-
onElements alle Verwendungen des Erweiterungspunkts geben lassen und insbesondere
abfragen, was jeweils als „name“ und „class“ angegeben wurde. Von der Angabe unter
„class“ kann man sich ein Objekt erzeugen lassen, wobei dafür nicht direkt Refl ection, son-
dern eine Methode von Eclipse verwendet wird. Das erzeugte Objekt sollte nach Vorgabe
des Erweiterungspunkts „CounterView.functions“ die Schnittstelle Function implementie-
ren. Ist dies nicht der Fall, kann die Erweiterung nicht genutzt werden. Wenn alles in Ord-
nung ist, wird die Methode addFunction der Klasse FunctionsUserInterface mit dem Namen
der Funktion, dem erzeugten Objekt der Function implementierenden Klasse sowie dem
Zähler aufgerufen. Darin wird dann ein Button mit dem Namen der Funktion angelegt. Fer-
ner wird ein Listener an dem Button angemeldet, der auf das Klicken so reagiert, dass der
aktuelle Zählerwert ausgelesen und der Methode compute übergeben wird, die auf das
Function-Objekt angewendet wird. Der von compute zurückgelieferte Wert wird in das Zäh-
lerobjekt geschrieben und die Anzeige auf der Oberfl äche entsprechend aktualisiert. Die
dazu nötigen Klassen geben wir zum Einsparen von Seiten im Buch nicht wieder; sie sind
für das Thema Java-Komponenten auch nicht wesentlich. Sie können aber von der Web-Seite
zum Buch bezogen werden. Für das Verständnis sind geringe Kenntnisse von SWT nötig.
Zum Lesen des Codes sollte es aber auch ausreichen, wenn Sie Swing kennen.
Unser erstes Eclipse-Plugin benötigt eine Manifest-Datei, da jedes Eclipse-Plugin auch eine
OSGi-Komponente ist. Da diese sich nicht wesentlich von den Manifest-Dateien des OSGi-
Kapitels unterscheidet, wird auch in diesem Fall auf die Wiedergabe verzichtet. Die zweite
K o n fi gurationsdatei plugin.xml ist aber von Interesse (s. Listing 10.3):
Listing 10.3 Datei plugin.xml für das Eclipse-Plugin CounterView
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension point="org.eclipse.ui.views">
<category
 
Search WWH ::




Custom Search