パーツ・インターフェース
パーツは、特定のインターフェースを実装する必要がなく、特定のベース・クラスから継承する必要もありません。
ただし、パーツは、オプションで何らかのインターフェースを実装して、その親からのコールバックを受信できます。
例えば、あるパーツが IFocusable インターフェースを実装した場合は、その親はそのインターフェースを使用してパーツにフォーカスを当てます。
パーツは、インターフェースを直接実装すること、または IAdaptable を実装してインターフェースのアダプターを提供することが可能です。
サイト・インターフェースと同様に、パーツ・インターフェースは org.eclipse.core.component.types 拡張ポイントに登録されます。
サイト・インターフェースおよびパーツ・インターフェースを区別するための XML マークアップには多少の違いがあります。
どのプラグインも、実装するビューで使用可能なインターフェースのセットを拡張でき、さらに PDE プラグイン・レジストリーを使用してそれらのすべてのインターフェースを検索できます。
ワークベンチは、パーツにより実装される以下のインターフェースを提供します。
インターフェース |
説明 |
IFocusable |
パーツが setFocus を実装できるようにします。
|
IPersistable |
パーツがそのセッション間の状態を保管できるようにします。 |
IMultiPart |
パーツにアクティブな子の概念があることを指示します。 |
ISite |
パーツによりこれが実際に実装されることはありませんが、他のパーツ・インターフェースの実装は、そのサイトにアクセスするために ISite に依存することができます。 |
パーツは、ライフ・サイクル・インターフェースを実装することもできます。
ライフ・サイクル・インターフェースは、以下の幾つかの点で通常のパーツ・インターフェースと異なります。
- ライフ・サイクル・インターフェースは直接実装される必要があります (アダプターとしては提供できません)。
- 一部またはすべてのパーツの依存関係がライフ・サイクル・インターフェースを実装することもできます。
- ライフ・サイクル通知がパーツに送信された場合、すべてのパーツの依存関係にもそれが送信されます。
- ライフ・サイクル・インターフェースはハードコーディングされていて、拡張ポイントには登録されません。
パーツは、以下のライフ・サイクル・インターフェースをサポートしています。
インターフェース |
説明 |
IDisposable |
コンポーネントが配置されたときに通知を受信します。 |
INestedComponent |
マルチプレクサーの子により実装されます。
アクティブなパーツが変更された場合に、活動化および非活動化メッセージを受信します。
|