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.