2016-12-14 88 views
0

我正在开发一个Eclipse插件,在工作中需要创建一个自定义导入功能,将现有项目添加到项目资源管理器树中,而不需要将文件复制到工作区中。理想情况下,用户可以通过自定义导入向导向项目目录提供项目目录,从而将现有项目导入到Project Explorer树中。我可以使用jface AbstractTreeViewer访问Project Explorer树,但是我很难用'add()'函数添加它。具体而言,我不确定需要提供哪些信息到'parentElementOrTreePath'和'childElement'字段中。Eclipse:以编程方式添加到项目资源管理器树查看器

我目前正在使用的代码是这样的:

final IWorkbenchPart activePart = getActivePart(); 
    if (activePart != null && activePart instanceof IPackagesViewPart) { 
     AbstractTreeViewer tree = ((IPackagesViewPart) activePart).getTreeViewer(); 
     tree.add(parentElementOrTreePath, childElement); 
    } 
+0

这样的代码只是不起作用。树查看器将使用内容提供者,许多操作将刷新提供者的视图,从而失去您所做的任何更改。此外,IPackagesViewPart是Packages Explorer视图,而不是Project Explorer视图。 –

+0

哦,我的错误,我把他们弄混了,但想法是一样的。在Eclipse中是不可能的? –

回答

0

代码一样,只是没有去上班。树查看器将使用内容提供者,许多操作将刷新提供者的视图,从而失去您所做的任何更改。另外IPackagesViewPart是Packages Explorer视图,而不是Project Explorer视图。

您只能使用Eclipse提供的适当接口和扩展点来添加类似的视图。你不能只尝试和破解东西。您不会将不在工作区中的东西显示在Packages/Project视图中 - 这些视图确实需要适当的工作区对象。

可以使用IFolder.createLinkIFile.createLink方法创建到工作区外的对象的链接。

+0

啊我以前尝试过使用createLink但无济于事,我会尝试从那里重新开始。我非常感谢答案,因为我不能100%确定Eclipse能做什么/不能做什么。 –

相关问题