1 回答
TA贡献1824条经验 获得超8个赞
您在事件中获得的是当前选择,它可能是一个文件,也可能是其他内容,具体取决于您如何定义菜单“enabledWhen”。您可以从选择中获取文件。
IStructuredSelection selection = HandlerUtil.getCurrentStructuredSelection(event);
if (!selection.isEmpty()) {
IFile file = Adapters.adapt(selection.getFirstElement(), IFile.class, true);
if (file != null) {
... your code
}
}
在某些情况下,适配器 toIFile不可用,但一个 to 可用IResource。在这种情况下使用:
IResource resource = Adapters.adapt(selection.getFirstElement(), IResource.class);
if (resource instanceof IFile) {
IFile file = (IFile)resource;
}
注意:getCurrentStructuredSelection和Adapters是相对较新的 API。在旧版本的 Eclipse 中,您将需要稍微复杂的代码。
HandlerUtil是org.eclipse.ui.handlers.HandlerUtil的org.eclipse.ui.workbench插件,Adapters是org.eclipse.core.runtime.Adapters
添加回答
举报