我正在开发一个实现导入文件向导的 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);
这对我想要的有用吗?还是使用扩展点的情况?
预先感谢您的回答。