Eclipse 在非JFace视图的对象上使用选择服务
我正在构建一个图像编辑器作为Eclipse插件 我想使用Properties视图查看和编辑图像下方模型的属性。因此我打电话来Eclipse 在非JFace视图的对象上使用选择服务,eclipse,eclipse-rcp,jface,Eclipse,Eclipse Rcp,Jface,我正在构建一个图像编辑器作为Eclipse插件 我想使用Properties视图查看和编辑图像下方模型的属性。因此我打电话来 getSite().setSelectionProvider( this ); 。。在createPartControl中,并在我的EditorPart实现中实现ISelectionProvider接口,以便将模型作为选择返回(因此必须实现ISelection接口) 下一步是编辑器实现IAdaptable,为所选对象提供适配器 但是,我的问题是,从来没有使用IPrope
getSite().setSelectionProvider( this );
。。在createPartControl中,并在我的EditorPart实现中实现ISelectionProvider接口,以便将模型作为选择返回(因此必须实现ISelection接口)
下一步是编辑器实现IAdaptable,为所选对象提供适配器
但是,我的问题是,从来没有使用IPropertySource.class调用getAdapter,因此Properties视图永远无法获得理解图像模型所需的内容
非常感谢你的帮助
M.最后答案分成了几部分 1.)当您的选择发生变化时(例如,如果用户放大了图像),请务必告诉Eclipse。否则就不会发生 2.)发送SelectionChangedEvent时,请将IAdaptable包装在StructuredSelection对象中,否则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 );
}
});
}
}
public void fireSelectionChanged()
{
final SelectionChangedEvent=new SelectionChangedEvent(此,新结构选择(此));
Object[]listeners=selectionChangedListeners.getListeners();
for(int i=0;i
。。。在实现iSelectProvider和IAdaptable的类上
M