La clase de conector (plug-in)

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

Definición de conector

El conector de la herramienta readme se define al principio del archivo 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>
   ...

La definición de conector incluye los parámetros name, id, version y provider name del conector. Ya hemos visto la mayoría de estos parámetros, cuando examinamos el conector Hello World. La herramienta readme también define una clase de conector especializada, ReadmePlugin.

También se proporciona el nombre del archivo jar. Los nombres de archivo especificados en un archivo plugin.xml son relativos al directorio del conector, y por tanto el archivo jar de la herramienta readme debe localizarse directamente en el directorio del conector.

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

AbstractUIPlugin

La clase ReadmePlugin representa el conector de la herramienta readme y gestiona el ciclo de vida del conector.  Tal como vimos en el ejemplo de Hello World, no es necesario especificar una clase de conector.  La plataforma le proporcionará una.  En este caso, el conector 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 conector.  Veremos los elementos específicos de la clase ReadmePlugin cuando trabajemos con los diálogos y las preferencias.