Klasa wtyczki

Jak dotąd omawiane były różne rozszerzenia udostępniane przez narzędzie readme. Nadszedł czas, aby przyjrzeć się ogólnej definicji wtyczki narzędzia readme.

Definicja wtyczki

Wtyczkę narzędzia readme zdefiniowano w pliku MANIFEST.MF.

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Plugin.name
Bundle-SymbolicName: org.eclipse.ui.examples.readmetool; singleton:=true
Bundle-Version: 3.2.0.qualifier
Bundle-ClassPath: readmetool.jar
Bundle-Activator: org.eclipse.ui.examples.readmetool.ReadmePlugin
Bundle-Vendor: %Plugin.providerName
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui,
 org.eclipse.core.resources,
 org.eclipse.core.runtime,
 org.eclipse.ui.views,
 org.eclipse.ui.ide,
 org.eclipse.jface.text,
 org.eclipse.text,
 org.eclipse.ui.workbench.texteditor,
org.eclipse.ui.editorsEclipse-AutoStart: true
Uwaga dotycząca funkcji Eclipse-AutoStart: Zaleca się korzystanie z funkcji Eclipse-AutoStart zamiast funkcji Eclipse-LazyStart, ponieważ przykładowy plik readme powinien zostać uruchomiony w wersji 3.1 i 3.2.

Definicja wtyczki zawiera jej atrybuty Bundle-Name, Bundle-SymbolicName (identyfikator wtyczki), Bundle-Version oraz Bundle-Vendor. Większość tych parametrów występowała już we wtyczce hello world. Narzędzie readme definiuje także specjalną klasę wtyczki ReadmePlugin.

Udostępniana jest ponadto nazwa pliku JAR. Nazwy plików określone w atrybucie Bundle-ClassPath są względne wobec katalogu wtyczki, w związku z czym plik jar narzędzia readme powinien znajdować się bezpośrednio w katalogu wtyczki.

Element Require-Bundle zawiera informacje przeznaczone dla platformy, dotyczące zależności narzędzia readme. Jako wymagane wymienione są wtyczki interfejsu użytkownika środowiska roboczego wraz z różnymi wtyczkami core, jface i text.

Klasa AbstractUIPlugin

Klasa ReadmePlugin reprezentuje wtyczkę narzędzia readme i zarządza cyklem życia tej wtyczki.  Jak wiadomo z przykładu Hello World, określanie klasy wtyczki nie jest konieczne.  Platforma może taką klasę udostępnić.  W takiej sytuacji wtyczka musi zainicjować dane dotyczące interfejsu użytkownika podczas uruchamiania.  Klasa platformy AbstractUIPlugin udostępnia strukturę do zarządzania zasobami interfejsu użytkownika i jest rozszerzana przez klasę ReadmePlugin.

Klasa AbstractUIPlugin używa ogólnych metod uruchamiania i zatrzymywania w celu zarządzania składnicą obrazów, ustawień okien dialogowych i preferencji w cyklu życia wtyczki.  Szczegóły klasy ReadmePlugin zostaną przedstawione podczas pracy z oknami dialogowymi i preferencjami.