Interfejsy części
Części nie muszą implementować konkretnego interfejsu ani dziedziczyć z konkretnej klasy
bazowej. Jednak aby uzyskiwać wywołania zwrotne od elementu macierzystego, części mogą
implementować określone interfejsy. Na przykład jeśli dana część implementuje interfejs IFocusable,
będzie on używany przez element macierzysty do aktywowania części. Możliwe jest zarówno bezpośrednie
implementowanie interfejsu przez części, jak również implementowanie metody IAdaptable
i udostępnienie adaptera dla interfejsu.
Interfejsy części, podobnie jak interfejsy serwisu, są rejestrowane w punkcie rozszerzenia
org.eclipse.core.component.types. Aby odróżnić interfejs serwisu od
interfejsu części, w języku znaczników XML istnieje niewielka różnica. Zestaw interfejsów do zaimplementowania przez
widok może zostać rozszerzony przez dowolny moduł dodatkowy. Do wyszukania wszystkich tego typu
interfejsów można użyć rejestru modułów dodatkowych środowiska PDE.
Środowisko robocze udostępnia następujące interfejsy, które mogą zostać zaimplementowane przez części:
Interfejs |
Opis |
IFocusable |
Umożliwia zaimplementowanie metody setFocus.
|
IPersistable |
Umożliwia zapisywanie stanu części między sesjami. |
IMultiPart |
Wskazuje, że część jest informowana o aktywnym elemencie potomnym. |
ISite |
Chociaż ten interfejs nie jest nigdy implementowany przez część,
implementacje innych interfejsów części mogą odwoływać się do interfejsu ISite, aby uzyskać dostęp
do swojego serwisu. |
Części mogą także implementować interfejsy związane z cyklem życia. Interfejsy związane z cyklem życia różnią się
od zwykłych interfejsów części w następujący sposób:
- Interfejs związany z cyklem życia musi być implementowany bezpośrednio (nie może być udostępniany jako adapter).
- Dowolna lub wszystkie zależności części mogą także implementować interfejs związany z cyklem życia.
- Kiedy powiadomienie o cyklu życia jest wysyłane do części, przekazywane jest także do wszystkich jej zależności.
- Interfejsy związane z cyklem życia są kodowane na stałe i nie rejestruje się ich w punkcie rozszerzenia.
Części obsługują następujące interfejsy związane z cyklem życia:
Interfejs |
Opis |
IDisposable |
Odbiera powiadomienie o zutylizowaniu komponentu. |
INestedComponent |
Implementowany przez elementy potomne multipleksera. Odbiera
komunikaty o włączaniu i wyłączaniu podczas zmian aktywnej części.
|