【发布时间】:2012-05-15 14:32:42
【问题描述】:
我正在尝试创建 Eclipse 插件,它具有两个并排的 TreeViewer 组合。单击每个TreeViewer 内容时,Eclipse 属性视图应提供适当的信息。现在我想为这两个 treeviewer 设置选择提供程序,因此我使用了
setSelectionProvider(treeViewer1)
setSelectionProvider(treeviewer2)
但只有第二个添加的树形查看器被设置,因为第一个被覆盖。我正在从 Queue.java 类中启动这两个 treeviewer。因此,我在 Queue.java 上实现了接口ISelectionProvider,如下所示:
public void addSelectionChangedListener(ISelectionChangedListener listener)
{
selectionChangedListeners.add(listener);
}
public void
removeSelectionChangedListener(ISelectionChangedListener listener)
{
selectionChangedListeners.remove(listener);
}
private void fireSelectionChanged(final SelectionChangedEvent event)
{
Object[] listeners = selectionChangedListeners.getListeners();
for (int i = 0; i < listeners.length; ++i)
{
final ISelectionChangedListener l =
(ISelectionChangedListener) listeners[i];
Platform.run(new SafeRunnable()
{
public void run()
{
l.selectionChanged(event);
}
@Override
public void handleException(Throwable e)
{
removeSelectionChangedListener(l);
}
});
}
}
public void setSelection(ISelection selection)
{
fireSelectionChanged(new SelectionChangedEvent(this, selection));
}
public ISelection getSelection()
{
ArrayList<Object> list = new ArrayList<Object>();
Object o = getProperties();
if (o instanceof IPropertySource)
list.add(o);
return new StructuredSelection(list);
}
谁能帮我解决这个问题。我会很感激。提前致谢。托尔。
【问题讨论】:
标签: eclipse eclipse-plugin jface treeviewer