Interfaces de composant "part"

Les composants "part" n'ont pas besoin d'implémenter une interface particulière ou d'hériter d'une classe de base spécifique. Mais ils peuvent implémenter certaines interfaces afin de recevoir des rappels de leur parent. Par exemple, si un composant "part" implémente l'interface IFocusable, son parent utilisera cette interface pour donner le focus au composant "part". Les composants "part" peuvent implémenter directement l'interface, ou implémenter IAdaptable et fournir un adaptateur pour l'interface.

De même que les interfaces de site, les interfaces de composant "part" sont enregistrées dans le point d'extension org.eclipse.core.component.types . Il existe une légère différence dans le marquage XML, qui distingue une interface de site et une interface de composant "part". Tous les plug-ins peuvent étendre l'ensemble des interfaces disponibles à l'implémentation pour une vue, et le registre de plug-ins PDE peut être utilisé pour trouver toutes ces interfaces.

Le plan de travail fournit les interfaces suivantes pour être implémentées par les composants "part" :

Interface
Description
IFocusable
Permet au composant "part" d'implémenter setFocus.
IPersistable
Permet au composant "part" d'enregistrer son état entre les sessions.
IMultiPart
Indique que le composant "part" a la notion d'un enfant actif.
ISite
Bien qu'il ne soit jamais implémenté par un composant "part", l'implémentation d'autres interfaces de composants "part" peut dépendre d'ISite pour obtenir l'accès à leur sites.

Les composants "part" peuvent également implémenter des interfaces de cycle de vie. Les interfaces de cycle de vie diffèrent des interfaces de composant "part" classiques en plusieurs points : Les composants "part" prennent en charge les interfaces de cycle de vie suivantes :
Interface
Description
IDisposable
Reçoit une notification quand le composant est supprimé.
INestedComponent
Implémenté par les enfants d'un multiplexeur. Reçoit les messages d'activation et de désactivation quand le composant "part" actif change.