La clase de plug-in (plug-in)

Hasta el momento, hemos visto las diferentes extensiones proporcionadas por la herramienta readme. Veamos ahora la definición general del plug-in de esta herramienta.

Definición de plug-in

El plug-in de la herramienta readme se define en el archivo 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: Utilizar Eclipse-AutoStart en lugar de Eclipse-LazyStart, ya que el ejemplo de readme debe ejecutarse en 3.1 además de en 3.2.

La definición del plug-in incluye el nombre de paquete compuesto (Bundle-Name), el nombre simbólico del paquete compuesto (Bundle-SymbolicName) (id de plug-in), la versión del paquete compuesto (Bundle-Version) y el proveedor del paquete compuesto (Bundle-Vendor) del plug-in. Ya hemos visto la mayoría de estos parámetros, cuando examinamos el plug-in Hello World. La herramienta readme también define una clase de plug-in especializada, ReadmePlugin.

También se proporciona el nombre del archivo jar. Los nombres de archivo especificados en Bundle-ClassPath son relativos al directorio del plug-in, y por tanto el archivo jar de la herramienta readme debe localizarse directamente en el directorio del plug-in.

El elemento Require-Bundle informa a la plataforma de las dependencias de la herramienta readme. Los plug-ins de la UI del entorno de trabajo figuran como plug-ins necesarios, junto con los diversos plug-ins del núcleo, jface y de texto.

AbstractUIPlugin

La clase ReadmePlugin representa el plug-in de la herramienta readme y gestiona el ciclo de vida del plug-in.  Tal como vimos en el ejemplo de Hello World, no es necesario especificar una clase de plug-in.  La plataforma le proporcionará una.  En este caso, el plug-in necesita inicializar los datos relacionados con la UI cuando se inicia.  La clase AbstractUIPlugin de la plataforma proporciona una estructura para gestionar los recursos de la UI y se amplía mediante ReadmePlugin.

AbstractUIPlugin utiliza los métodos de inicio y conclusión genéricos para gestionar las imágenes, los valores de diálogo y un almacén de preferencias durante el ciclo de vida del plug-in.  Veremos los elementos específicos de la clase ReadmePlugin cuando trabajemos con los diálogos y las preferencias.