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: 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.