【问题标题】:Eclipse: Add to Project Explorer Tree Viewer ProgramaticallyEclipse:以编程方式添加到项目资源管理器树视图
【发布时间】:2016-12-15 03:45:30
【问题描述】:

我正在使用 Eclipse 开发一个 IDE 插件,需要创建一个自定义导入函数,将现有项目添加到项目资源管理器树中,而无需将文件复制到工作区中。理想情况下,用户将能够通过自定义导入向导为程序提供项目目录,将现有项目导入项目资源管理器树。我可以使用 jface AbstractTreeViewer 访问 Project Explorer 树,但使用“add()”函数添加它时遇到困难。具体来说,我不确定需要在“parentElementOrTreePath”和“childElement”字段中提供哪些信息。

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

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

【问题讨论】:

  • 这样的代码是行不通的。树查看器将使用内容提供程序,并且许多操作将从提供程序刷新视图,丢失您所做的任何更改。 IPackagesViewPart 也是 Packages Explorer 视图,而不是 Project Explorer 视图。
  • 哦,我的错我把它们弄混了,但想法是一样的。这样的事情在 Eclipse 中是不可能的吗?

标签: java eclipse eclipse-plugin


【解决方案1】:

这样的代码是行不通的。树查看器将使用内容提供程序,许多操作将从提供程序刷新视图,丢失您所做的任何更改。 IPackagesViewPart 也是 Packages Explorer 视图,而不是 Project Explorer 视图。

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

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

【讨论】:

  • 啊,我之前尝试过使用 createLink 但无济于事,我会尝试从那里重新开始。我真的很感激这个答案,因为我不能 100% 确定 Eclipse 能/不能做什么。
猜你喜欢
  • 1970-01-01
  • 2014-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-21
  • 1970-01-01
  • 1970-01-01
  • 2010-10-14
相关资源
最近更新 更多