我正在开发一个带有Eclipse的IDE插件,需要创建一个自定义导入功能,将现有项目添加到Project Explorer树中,而不将文件复制到工作区。理想情况下,用户可以通过自定义导入向导为程序提供项目目录,从而将现有项目导入Project Explorer树。我可以使用jface AbstractTreeViewer访问Project Explorer树,但是我在添加' add()'时遇到了困难。功能。具体来说,我不确定我需要在“父母元素”中提供哪些信息。和' childElement'领域。
我目前正在使用的代码是:
final IWorkbenchPart activePart = getActivePart();
if (activePart != null && activePart instanceof IPackagesViewPart) {
AbstractTreeViewer tree = ((IPackagesViewPart) activePart).getTreeViewer();
tree.add(parentElementOrTreePath, childElement);
}
答案 0 :(得分:0)
这样的代码根本不起作用。树查看器将使用内容提供程序,并且许多操作将从提供程序刷新视图,从而丢失您所做的任何更改。此外,IPackagesViewPart
是Packages Explorer视图,而不是Project Explorer视图。
您只能使用Eclipse提供的适当接口和扩展点添加到此类视图。你不能只是试图破解东西。您不会在“工具包”/“项目”视图中显示工作空间中未显示的内容 - 这些视图确实需要适当的工作空间对象。
可以使用IFolder.createLink
和IFile.createLink
方法创建指向工作区外部对象的链接。