我正在构建一个在编辑器中执行各种操作的 Eclipse 插件 - 问题是我的代码在 UI 代码加载之前加载和启动(我相信),因此在启动时出现空指针错误。
我找不到一个“isTheInterfaceLoaded()”方法,所以我使用下面的代码来检查接口是否启动。
public static boolean areWeOnline() {
IFile file = null;
IWorkbenchWindow win = getWorkBenchWindow();
IWorkbenchPage page = win.getActivePage();
if (page != null) {
IEditorPart editor = page.getActiveEditor();
if (editor != null) {
IEditorInput input = editor.getEditorInput();
if (input instanceof IFileEditorInput) {
file = ((IFileEditorInput) input).getFile();
}
}
}
if (file == null) {
return false;
}
else
{
return true;
}
//JR got to be a better way - stackoverflow it?
}
(评论确实在代码中) - 现在这有效,但我确信必须有其他一些更优雅的方式来做到这一点 - 有什么想法吗?