Como desarrollar un plugin para Eclipse

Como desarrollar un plugin para Eclipse


0. Índice de contenidos.


1. Introducción

Seguramente que todos los que utilizáis Eclipse como entorno de desarrollo lo tenéis personalizado con varios plugins que os facilitan la vida. Subersive, FindBugs, m2eclipse, o el plugin de android para Eclipse son algunos ejemplos de ellos.

Este tutorial nace de la curiosidad por conocer como se crean y están gestionados los plugings por Eclipse. Por lo tanto, la finalidad de este tutorial es ver como es el proceso de creación más que el desarrollar un mega plugin que nos realice el trabajo del día a día 😉


2. Entorno

  • Mackbook Pro
    • Intel Core i7 2Ghz
    • 8GB RAM
    • 500GB HD
    • Sistema Operativo: Mac OS X (10.6.7)

3. Requisitos previos.

En esté tutorial el único requisito previo necesario es como es lógico, tener instalado Eclipse. En mi caso, utilizo Eclipse Helios.


4. Primeros pasos.

En estos primeros pasos, vamos a utilizar el asistente que nos provee Eclipse para que nos cree el esqueleto de lo que va a ser nuestro primer plugin para Eclipse :).

El primer paso es crear nuestro proyecto en Eclipse, para ello, seleccionamos “Nuevo proyecto” y en el wizard seleccionamos Plug-in Project.





Pulsamos en next y escogemos Custom plug-in wizard

y seleccionamos Popup Menu y View. Seleccionamos estos dos porque nuestro plugin va a tener un menú contextual en la ventana de edición de código fuente y una vista que podremos agregar a nuestra perspectiva de Eclipse.

Pulsamos en Next para rellenar la información correspondiente al menú contextual.

Importante que en esta ventana cambiemos el campo Target Object’s Class por el que hay en la captura de la pantalla. Con esto logramos que el menú contextual solo aparezca en la ventana de edición de código fuente y no en cualquiera de las vistas que tengamos en la perspectiva de Eclipse con la que trabajemos.

Ahora nos toca configurar lo que será nuestra vista.

Pulsamos en “finish” y Eclipse nos creará el esqueleto de nuestro plugin.

Si queremos probar nuestro plugin, podemos hacer click en “Run” y se nos abrirá otra ventana de Eclipse en donde ejecutar y depurar el plugin.








5. Personalizando el plugin.

Ahora toca el turno de añadir nuestra funcionalidad al esqueleto que nos ha creado Eclipse.


5.1 Personalizando el menú contextual.

NOTA: Para realizar las traducciones vamos a utilizar una petición a un servicio web que se encargará de realizar la traducción por nosotros :). En el proyecto que tenéis para descargar al final del tutorial, están incluidas las clases necesarias para que funcione, aunque como no es el objetivo de este tutorial, no se va a comentar nada mas sobre como realizar las traducciones.

En una captura anterior, hemos visto que aspecto tiene nuestro menú contextual, pero que pasa si queremos añadir más opciones a nuestro menú. Pues si queremos añadir más opciones a nuestro menú, lo que tenemos que hacer es abrir el archivo plugin.xml que está en la raíz del proyecto.

Una vez abierto, tendrá un aspecto como el siguiente

Si os fijáis, veréis que tenemos dos extensiones definidas, que son las correspondientes al menú contextual y a la vista que hemos añadido cuando estábamos creando el proyecto. De momento sólo nos vamos a fijar en la primera extensión.

Es importante que en la línea 8, el valor de ObjectClass sea org.eclipse.ui.IEditorInput, porque de esta manera, estamos especificando que nuestra ventana modal debe aparecer cuando pulsemos con el botón secundario en una ventana de edición de código.

El resto de campos son bastante intuitivos con sólo leer el nombre como por ejemplo “label”, que mirando el nombre ya sabemos que es el valor que se mostrará en el menú contextual.

Pues bien, si queremos añadir más opciones a nuestro menú contextual, lo que debemos hacer es añadir mas elementos action, uno por cada opción que queramos mostrar en el menú. En mi caso he agregado tres etiquetas más porque quiero que quede algo como lo que se muestra a continuación”

Para cada action definimos 5 atributos:

  • label: Texto que se mostrará en el menú contextual
  • class: A que clase va a delegar cuando se produzca un evento, en este caso “translatorplugin.popup.actions.Translate”, clase que nos ha creado el asistente de Eclipse. En concreto se llamará al método “void run(IAction action)”.
  • menubarPath: Si queremos definir varios niveles de menú, o varios menús padre, con este atributo especificamos sobre que menú va a colgar nuestra “action”.
  • enablesFor: Indicamos si queremos que el menú se encuentre habilitado.
  • id: Identificador de nuestro menú, es útil cuando delegamos todos los action a la misma clase, porque así podemos distinguir que menú es el que ha sido pulsado.

Una vez que tenemos la vista preparada, vamos a implementar nuestra funcionalidad.

Cada vez que pulsemos en un menú, se llamará al evento “run” de la clase que hemos definido en el atributo “class” del elemento action. En nuestro caso, la clase es “trasnslatorplugin.popup.actions.Translate”. Esta clase tiene el método “run” porque implementa la interfaz IObjectActionDelegate que a su vez hereda de IActionDelegate que tiene el método.

Nuestra implementación del método Run ha quedado así:

Y los métodos auxiliares que hemos necesitado son estos:


5.1 Personalizando la vista.

En la siguiente entrega del tutorial veremos como modificar y personalizar la vista de ejemplo que nos ha creado Eclipse por una que implementa las funcionalidades que necesitamos.


6. Conclusiones

Como hemos visto, es muy sencillo gracias al wizard de Eclipse, desarrollar nuestro propio plugin de Eclipse. Gracias a la arquitectura de Eclipse podemos utilizar cualquier recurso de la aplicación y crear plugins que se adapten perfectamente a nuestras necesidades.

Si alguien quiere el proyecto de Eclipse, sólo tiene que pinchar aquí. Para cualquier duda que tengáis siempre podéis realizar vuestra pregunta en el formulario de abajo.

Un saludo