0

我正在开发一个实现导入文件向导的 Eclipse 插件项目,该向导专为与自定义项目类型相关的文件而设计。向导的页面之一是一个WizardNewFileCreationPage页面,其中自动显示项目资源管理器(据我所知)。此项目资源管理器显示工作区中可用的所有项目。但是,正如我所说,由于向导处理的文件对一种特定的项目类型很有用,我想限制资源管理器并仅显示该自定义类型的项目。

我知道如何选择自定义类型的项目:

  List<IProject> projectList = new LinkedList<IProject>();
  try {
     IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
     IProject[] projects = workspaceRoot.getProjects();
     for(int i = 0; i < projects.length; i++) {
        IProject project = projects[i];
        if(project.hasNature("com.example.www.myNature")) {
           projectList.add(project);
        }
     }
  }
  catch(CoreException ce) {
     ce.printStackTrace();
  }

在此链接中找到:获取在 Eclipse 工作区中打开的所有 Java 项目的列表

我假设该WizardNewFileCreationPage课程在幕后包括 aTreeViewer或类似的东西。无论如何,如何在此向导页面中过滤项目资源管理器的内容?我看了一下以下问题:如何以编程方式更改包资源管理器中的选择,但在我的情况下,activePart变量是类型

org.eclipse.ui.navigator.resources.ProjectExplorer

它没有getTreeViewer()方法。它有一个createPartControl()方法:

public void createPartControl(Composite aParent);

这对我想要的有用吗?还是使用扩展点的情况?

预先感谢您的回答。

4

1 回答 1

0

没有办法做到这一点。

尽管显示的树WizardNewFileCreationPage看起来类似于项目资源管理器,但它不是基于该代码。

用于显示树的代码org.eclipse.ui.internal.ide.misc.ContainerSelectionGroup本身包含在org.eclipse.ui.internal.ide.misc.ResourceAndContainerGroup. 这些类不支持太多自定义,并且在任何情况下都无法在WizardNewFileCreationPage.

于 2016-06-13T15:02:53.670 回答