2010-05-18 18 views
7

hay un montón de tutoriales Eclipse RCP que comienzan con la obvia primer paso: "Crear un nuevo proyecto de plugin ..."a elegir la opción "Generar un activador ..." al crear un nuevo proyecto de plugin Eclipse

Parece que aprox. El 70% de ellos especifica que se compruebe el "Generar un activador, una clase Java que controla el ciclo de vida del complemento". Los otros dicen específicamente que no marquen esa alternancia.

alt text http://img179.imageshack.us/img179/6710/newpluginoptions.png

no es claro para mí, lo que generan una clase de activador para con vosotros, cuando lo necesite, y no cuando lo hace.

Por ser una opción destacada que obtienes cada vez que creas un nuevo proyecto de complemento (parece que está activado de manera predeterminada), esta opción no está muy bien explicada en ninguna parte que he encontrado.

¿Algún consejo/regla general sobre cómo elegir esta opción al crear proyectos de plugins de Eclipse?

Respuesta

4

De sí Eclipse (ayuda sensible al contexto para el diálogo) que dice esto, que es de utilidad marginal.

"Un activador es una clase de Java que controla el ciclo de vida del complemento. Solo es necesario si necesita trabajar al encender o apagar el complemento".

Al activar esta opción, se genera automáticamente una clase Activator.java para su nuevo proyecto.

Por lo tanto, parece que si (siendo un principiante) no tiene idea de por qué o qué trabajo adicional tiene que hacer en el inicio/apagado del complemento, puede dejarlo en OFF. Solo un archivo .java menos aparece en la carpeta de origen del proyecto.

+0

Pero la pregunta era '¿cuándo debería crear un activador', no 'cómo ...'. – FelixM

+0

buen punto. eliminó la última sección y formuló una pregunta relacionada. ¿hay alguna manera de insertar un enlace a otras preguntas relacionadas? –

1

Si realmente quieres saber, echa un vistazo al OSGi specification; la versión 4 es la versión actual. Desde Eclipse 3, cada complemento es un paquete OSGi. El activador del paquete se notifica cuando el paquete se inicia y se detiene, lo que generalmente sucede cuando Eclipse se inicia y se apaga. También puede instalar oyentes que reciben notificaciones cuando otros paquetes (es decir, complementos) se inician o registran servicios OSGi.

Por ejemplo, utilizo un oyente para iniciar ciertas operaciones después de que mi paquete ha completado su inicio; de lo contrario, puedo encontrarme con problemas con el cargador de clases. También puede necesitar el activador para almacenar BundleContext, que le permite cargar clases y le da acceso al nombre y la versión del paquete.

4

Una forma de averiguarlo es observar la clase generada. Resulta que es una subclase de AbstractUIPlugin. Eche un vistazo a JavaDoc, proporciona servicios como gestión de preferencias, registro de imágenes y similares. Si necesita algo de esto, es posible que desee usarlo. Es una subclase de Plugin, que tiene sentido.

Además, implementa BundleActivator, que tiene algunos JavaDoc útiles. Esto le proporciona stubs para start() y stop(), que le permite enganchar su propio código aquí. También genera un método de conveniencia estático getDefault(), que le proporciona el Activador. Y eso es todo lo que hay que hacer.

Cuestiones relacionadas