我在我的插件项目(一个包含视图的插件)中创建了一个函数,它为活动页面创建选择侦听器(例如:package explorer,resource navigator)。
在第一次执行Eclipse实例时,有时我没有活动页面,以下是null:
ISelectionService selectionService=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
因此无法为另一个视图设置选择侦听器:
selectionService.addSelectionListener(partID,listener);
我的问题实际上是函数不执行上面的行,因为selectionService为null。
为了避免这种情况,我该怎么做?
答案 0 :(得分:1)
一种方法是向IWindowListener
添加IWorkbench
,然后在windowOpened
事件中添加选择侦听器:
IWorkbench workbench = PlatformUI.getWorkbench();
workbench.addWindowListener(window listener);
...
@Override
public void windowOpened(IWorkbenchWindow window)
{
window.getSelectionService().addSelectionListener(selection listener);
}