部件接口
部件不必实现任何特定接口或继承任何特定基类。然而,部件可以有选择地实现某些接口,以便接收来自其父代的回调。例如,如果某个部件实现
IFocusable 接口,则其父代将使用该接口来将焦点放在此部件上。允许部件直接实现该接口或实现 IAdaptable 并为该接口提供适配器。
与站点接口类似,将在 org.eclipse.core.component.types 扩展点注册部件接口。在 XML 标记中存在微小差别,以便区分站点接口和部件接口。任何插件都可以扩展可供视图实现的接口集,并且可以使用 PDE 插件注册表来查找所有这样的接口。
工作台提供下列接口供部件实现:
接口 |
描述
|
IFocusable |
允许部件实现 setFocus。
|
IPersistable |
允许部件在会话之间保存其状态。 |
IMultiPart |
指示部件知道活动的子代。 |
ISite |
尽管部件实际上从未实现它,但其它部件接口的实现仍然可以依赖 ISite 来获取对这些部件接口的站点的访问权。 |
部件还可以实现生命周期接口。生命周期接口与常规的部件接口之间存在以下几个差别:
- 必须直接实现生命周期接口(不能作为适配器提供它);
- 部件的任何或全部依赖项也可以实现生命周期接口;
- 当将生命周期通知发送至部件时,也会将它发送至该部件的所有依赖项;
- 生命周期接口是硬编码的,且未向扩展点注册。
部件支持下列生命周期接口:
接口 |
描述
|
IDisposable |
当组件被除去时接收通知。 |
INestedComponent |
由多路复用器的子代实现。当活动部件更改时接收激活和取消激活消息。
|