Categorías
Architecture & Design

Arquitectura de complementos de Eclipse: procesamiento de extensiones

Esta publicación comienza con la pregunta: cómo se llama al método de devolución de llamada en la plataforma Eclipse.

La respuesta corta es: el complemento de host llama al método de devolución de llamada.

El ejemplo utilizado es de una publicación anterior que trata sobre la creación de un complemento de muestra con un menú a través del asistente de complementos. Creo que cualquiera que haya jugado un poco con el plug-in lo ha usado antes.

El primer diagrama ilustra la relación entre un complemento de host y un complemento de extensión.
Como todo en Eclipse es un complemento, la interfaz de usuario no es una excepción. Nuestra acción de muestra amplía su punto de extensión ActionSet. También hay muchos otros puntos de extensión que compartirían el mismo principio de devolución de llamada.

El segundo diagrama se usa para mostrar cómo el complemento del host llama al método run (). (En otros casos, en lugar de Action, podría ser createPartControl (padre compuesto) u otros).

PluginAction desempeña el papel de proxy y hace que el objeto de devolución de llamada real se cree una instancia solo cuando se requiere alguna acción.

A continuación, se muestran algunos datos del diagrama a continuación:
PluginAction implementa el método run () de IAction.
PluginAction tiene una instancia IActionDelegate.
El método run () de PluginAction envuelve el método run () de IActionDelegate.

Este patrón se llama: Proxy virtual.

Para obtener el código completo de PluginAction.java, consulte 2 puntos del código de Google.

Este es uno de los conceptos más importantes de Eclipse, pronto habrá más detalles …

  Mecanismo de complemento de Eclipse

Referencias:

1. Arquitectura del complemento Eclipse

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *