Eclipse插件:在右键弹出菜单中添加了新项目,如何确定文件名/路径?



在菜单上选择新项时触发的执行方法中的 ExecutionEvent 似乎不是指右键单击的文件。我想知道我是否需要为此添加侦听器,如果是这样,这会干扰执行方法。

您在事件中得到的是当前选择,该选择可能是文件,也可能是其他内容,具体取决于您如何定义菜单"enabledWhen"。您可以从选择中获取文件。

IStructuredSelection selection = HandlerUtil.getCurrentStructuredSelection(event);
if (!selection.isEmpty()) {
IFile file = Adapters.adapt(selection.getFirstElement(), IFile.class, true);
if (file != null) {
... your code
}
}

在某些情况下,IFile适配器不可用,但IResource适配器可用。在这种情况下,请使用:

IResource resource = Adapters.adapt(selection.getFirstElement(), IResource.class);
if (resource instanceof IFile) {
IFile file = (IFile)resource;
}

注意:getCurrentStructuredSelectionAdapters是相对较新的 API。在旧版本的 Eclipse 中,您将需要稍微复杂的代码。

HandlerUtilorg.eclipse.ui.handlers.HandlerUtilorg.eclipse.ui.workbench插件中,Adaptersorg.eclipse.core.runtime.Adapters

最新更新