我需要以某种方式获得激活器中选择服务的参考。我试过这个:
IWorkbench wb = PlatformUI.getWorkbench();
IWorkbenchWindow ww = wb.getActiveWorkbenchWindow();
ww.getSelectionService().addSelectionListener(new GlobalSelectionListener());
但ww
总是null
。我还没有找到另一个代码来获取选择服务参考。此代码仅在Eclepse完全初始化时有效。
答案 0 :(得分:0)
您需要确保在Display线程上调用getActiveWorkbenchWindow()以获得非null返回。
尝试:
final IWorkbench workbench = PlatformUI.getWorkbench();
workbench.getDisplay().asyncExec(new Runnable() {
public void run() {
IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
if (window != null) {
// do something
}
}
});
该示例来自org.eclipse.ui.IStartup的javadoc。如果您希望在初始化工作台后尽快执行代码,则应考虑扩展org.eclipse.ui.startup扩展点。