A classe plug-in

Até agora, conversamos sobre as diferentes extensões fornecidas pela ferramenta leia-me. Vamos ver a definição geral do plug-in da ferramenta leia-me.

Definição do plug-in

O plug-in da ferramenta de leia-me é definido no arquivo 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.editors
Eclipse-AutoStart: true
Eclipse-AutoStart-comment: Utilize Eclipse-AutoStart no lugar de Eclipse-LazyStart porque
o exemplo do leia-me deve ser executado no 3.1 e também no 3.2.

A definição de plug-in inclui Bundle-Name, Bundle-SymbolicName (id do plug-in), Bundle-Version e Bundle-Vendor do plug-in. Vimos a maioria desses parâmetros antes no nosso plug-in hello world. A ferramenta leia-me define também uma classe plug-in especializada, ReadmePlugin.

O nome do arquivo jar também é fornecido. Nomes de arquivo especificados em Bundle-ClassPath são relativos ao diretório do plug-in, de modo que o arquivo jar da ferramenta de leia-me deve ser colocado diretamente no diretório do plug-in.

O elemento Require-Bundle informa a plataforma das dependências da ferramenta de leia-me. Os plug-ins da UI do ambiente de trabalho são listados como plug-ins requeridos, junto com o núcleo, jface e plug-ins de texto variados.

AbstractUIPlugin

A classe ReadmePlugin representa o plug-in da ferramenta Leia-me e gerencia 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 fornecerá uma para você.  Nesse caso, nosso plug-in precisa inicializar dados relacionados à UI quando é iniciado.  A classe da plataforma AbstractUIPlugin fornece uma estrutura para gerenciar recursos da UI e é estendida por ReadmePlugin.

AbstractUIPlugin utiliza métodos de inicialização e encerramento genéricos para gerenciar imagens, definições de diálogo e um armazenamento de preferências durante a existência do plug-in.  Daremos uma olhada nos detalhes da classe ReadmePlugin quando trabalharmos com diálogos e preferências.