Interfaces de componentes
No es necesario que los componentes implementen ninguna interfaz en
particular ni hereden de ninguna clase básica específica. Sin embargo, opcionalmente, los componentes implementan ciertas interfaces
para recibir retornos de su padre. Por ejemplo, si un componente implementa la interfaz de
IFocusable, su padre utilizará esa interfaz para activar el componente. Se permite a los componentes que implementen la interfaz directamente o que
implementen IAdaptable y proporcionen un adaptador para la interfaz.
De manera similar a las interfaces de sitios, las interfaces de componentes se
registran en el punto de extensión org.eclipse.core.component.types. Existe una leve diferencia en los códigos XML para distinguir entre una
interfaz de sitio y una interfaz de componente. Cualquier conector puede ampliar el conjunto de interfaces disponibles para que
una vista las implemente y el registro de conectores PDE puede utilizarse para
encontrar todas esas interfaces.
El entorno de trabajo proporciona las siguientes interfaces para que sean
implementadas por componentes:
Interfaz |
Descripción |
IFocusable |
Permite que el componente implemente setFocus.
|
IPersistable |
Permite que el componente guarde su estado
entre sesiones. |
IMultiPart |
Indica que el componente tiene la noción de
un hijo activo. |
ISite |
Aunque en realidad un componente no
la implementa nunca, las implementaciones de otras interfaces de componentes pueden
depender de ISite para obtener acceso a su sitio. |
Los componentes también pueden implementar interfaces de ciclo de vida. Las
interfaces de ciclo de vida son distintas de las interfaces de componentes regulares
en diversos aspectos:
- Una interfaz de ciclo de vida debe implementarse directamente (no puede
proporcionarse como un adaptador);
- Cualquiera de las dependencias de un componente o todas ellas
pueden implementar también la interfaz de ciclo de vida;
- Cuando se envía una notificación de ciclo de vida a un componente,
se envía también a todas las dependencias del componente;
- Las interfaces de ciclo de vida están codificadas y no están
registradas con un punto de extensión.
Los componentes dan soporte a las siguientes interfaces de ciclo de vida:
Interfaz |
Descripción |
IDisposable |
Recibe una notificación cuando se
desecha el componente. |
INestedComponent |
Implementada por hijos de un
multiplexor.
Recibe mensajes de activación y desactivación cuando cambia el componente
activo.
|