我正在构建一个图像编辑器作为Eclipse插件。
我想使用“属性”视图来查看&编辑图像下方模型的属性。因此我打电话给..
getSite().setSelectionProvider( this );
..在createPartControl中,并在我的EditorPart实现中实现ISelectionProvider接口,以便模型作为选择返回(因此必须实现ISelection接口)。
下一步是让编辑器实现IAdaptable以为所选对象提供适配器。
然而,我的问题是getAdapter永远不会被IPropertySource.class调用,因此属性视图永远不会获得理解图像模型所需的内容。
非常感谢您的帮助。
微米。
答案 0 :(得分:2)
最后的答案分解为几件......
1。)当您的选择确实发生变化时(例如,如果用户放大了图像),请务必告诉Eclipse。否则就不会发生这种情况。
2.。)发送SelectionChangedEvent时,在StructuredSelection对象中包装IAdaptable - 否则Properties视图将忽略它。
这归结为以下方法
public void fireSelectionChanged()
{
final SelectionChangedEvent event = new SelectionChangedEvent( this, new StructuredSelection( this ) );
Object[] listeners = selectionChangedListeners.getListeners();
for (int i = 0; i < listeners.length; ++i)
{
final ISelectionChangedListener l = (ISelectionChangedListener) listeners[i];
SafeRunnable.run(new SafeRunnable() {
public void run() {
l.selectionChanged( event );
}
});
}
}
...在一个实现了ISelectionProvider&amp;的类上IAdaptable的。
微米。