A classe de plug-in

Até agora, vimos as diferentes extensões facultadas pela ferramenta readme. Vejamos a definição geral do plug-in da ferramenta readme.

Definição de plug-in

O plug-in da ferramenta readme é definido no ficheiro 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
Eclipse-AutoStart-comment: Use Eclipse-AutoStart instead of Eclipse-LazyStart
because the readme example should run against 3.1 as well as 3.2.

A definição de plug-in inclui o Bundle-Name, Bundle-SymbolicName (id do plug-in), Bundle-Version e o Bundle-Vendor of the plug-in. Já vimos a maioria destes parâmetros no nosso plug-in hello world. A ferramenta readme também define uma classe de plug-in especializada, ReadmePlugin.

O nome do ficheiro JAR também é indicado. Os nomes dos ficheiros especificados em Bundle-ClassPath são relativos ao directório do plug-in e, por conseguinte, o ficheiro jar da ferramenta readme deverá ser localizado directamente no directório do plug-in.

O elemento Require-Bundle informa a plataforma em relação às dependências da ferramenta readme. Os plug-ins da UI da área de trabalho estão listados como plug-ins necessários, junto com os diversos plug-ins de núcleo, jface e texto.

AbstractUIPlugin

A classe ReadmePlugin representa o plug-in da ferramenta readme e gere o ciclo de vida do plug-in. Como vimos no exemplo Hello World, não é necessário especificar uma classe de plug-in.  A plataforma indica uma em seu nome.  Neste caso, o nosso plug-in precisa de inicializar dados relacionados com a UI quando iniciar.  A classe de plataforma AbstractUIPlugin faculta uma estrutura para gerir recursos de UI e é estendida pelo ReadmePlugin.

O AbstractUIPlugin utiliza os métodos de arranque e encerramento genéricos para gerir imagens, definições e um arquivo de preferências durante a vida do plug-in.   Veremos as especificidades da classe ReadmePlugin quando trabalharmos com caixas de diálogo e preferências.