如何以编程方式定义 WizardNewFileCreationPage 中的项目浏览器将显示的项目类型
How to programmatically define the project types that the project explorer in a WizardNewFileCreationPage will display
我正在开发一个 Eclipse 插件项目,该项目实现了导入文件向导,专为属于自定义项目类型的文件而设计。向导的页面之一是 WizardNewFileCreationPage
页面,其中自动显示项目浏览器(据我所知)。此项目浏览器显示工作区中可用的所有项目。然而,正如我所说,由于向导处理的文件对一种特定项目类型有用,我想限制资源管理器并仅显示该自定义类型的项目。
我知道如何 select 自定义类型的项目:
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();
}
在此link找到:Get a list of all java projects open in an Eclipse workspace
我假设 WizardNewFileCreationPage
class 在幕后包含 TreeViewer
或类似内容。无论如何,如何在此向导页面中过滤项目资源管理器的内容?
我查看了以下问题:How to programmatically change the selection within package explorer,但在我的例子中,activePart
变量的类型为
org.eclipse.ui.navigator.resources.ProjectExplorer
没有 getTreeViewer()
方法。它有一个 createPartControl()
方法:
public void createPartControl(Composite aParent);
这对我想要的有用吗?或者是使用扩展点的情况?
提前感谢您的回答。
没有办法做到这一点。
虽然 WizardNewFileCreationPage
中显示的树看起来类似于项目资源管理器,但它并非基于该代码。
用于显示树的代码是 org.eclipse.ui.internal.ide.misc.ContainerSelectionGroup
,它本身包含在 org.eclipse.ui.internal.ide.misc.ResourceAndContainerGroup
中。这些 类 不支持太多自定义,并且在任何情况下都无法在 WizardNewFileCreationPage
之外访问。
我正在开发一个 Eclipse 插件项目,该项目实现了导入文件向导,专为属于自定义项目类型的文件而设计。向导的页面之一是 WizardNewFileCreationPage
页面,其中自动显示项目浏览器(据我所知)。此项目浏览器显示工作区中可用的所有项目。然而,正如我所说,由于向导处理的文件对一种特定项目类型有用,我想限制资源管理器并仅显示该自定义类型的项目。
我知道如何 select 自定义类型的项目:
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();
}
在此link找到:Get a list of all java projects open in an Eclipse workspace
我假设 WizardNewFileCreationPage
class 在幕后包含 TreeViewer
或类似内容。无论如何,如何在此向导页面中过滤项目资源管理器的内容?
我查看了以下问题:How to programmatically change the selection within package explorer,但在我的例子中,activePart
变量的类型为
org.eclipse.ui.navigator.resources.ProjectExplorer
没有 getTreeViewer()
方法。它有一个 createPartControl()
方法:
public void createPartControl(Composite aParent);
这对我想要的有用吗?或者是使用扩展点的情况?
提前感谢您的回答。
没有办法做到这一点。
虽然 WizardNewFileCreationPage
中显示的树看起来类似于项目资源管理器,但它并非基于该代码。
用于显示树的代码是 org.eclipse.ui.internal.ide.misc.ContainerSelectionGroup
,它本身包含在 org.eclipse.ui.internal.ide.misc.ResourceAndContainerGroup
中。这些 类 不支持太多自定义,并且在任何情况下都无法在 WizardNewFileCreationPage
之外访问。