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.
O plug-in da ferramenta leia-me está definido no início do arquivo plugin.xml.
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin
id="org.eclipse.ui.examples.readmetool"
name="%Plugin.name"
version="2.1.0"
provider-name="%Plugin.providerName"
class="org.eclipse.ui.examples.readmetool.ReadmePlugin">
<runtime>
<library name="readmetool.jar"/>
</runtime>
<requires>
<import plugin="org.eclipse.ui"/>
<import plugin="org.eclipse.core.resources"/>
<import plugin="org.eclipse.core.runtime.compatibility"/>
<import plugin="org.eclipse.ui.views"/>
<import plugin="org.eclipse.ui.ide"/>
<import plugin="org.eclipse.jface.text"/>
<import plugin="org.eclipse.text"/>
<import plugin="org.eclipse.ui.workbench.texteditor"/>
<import plugin="org.eclipse.ui.editors"/>
</requires>
...
A definição de plug-in inclui o nome, id, versão e nome do fornecedor 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. Os nomes de arquivos especificados em um arquivo plugin.xml são relativos ao diretório de plug-in, então o arquivo jar da ferramenta deve ser localizado diretamente no diretório de plug-in.
O elemento requires informa a plataforma das dependências de ferramenta leia-me. Os plug-ins da UI do workbench são listados como plug-ins requeridos, junto com o núcleo, jface e plug-ins de texto variados.
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.