【问题标题】:Eclipse PDE: How to load a new project in Package Explorer programmatically?Eclipse PDE:如何以编程方式在 Package Explorer 中加载新项目?
【发布时间】:2017-05-30 06:24:32
【问题描述】:

我开发了一个 Eclipse 插件,它使用 INewWizard 通过项目创建向导创建一个新的自定义项目。

一旦用户输入信息并点击“完成”,项目就会在工作空间内成功创建。问题是包资源管理器不会在“完成”事件时加载这个新创建的项目。在最终向导页面的 performFinish() 下应该实现什么来自动加载 Package Explorer 中的项目?

如何在包资源管理器中以编程方式加载这样新创建的项目?

【问题讨论】:

  • 我遇到了 updatePerspective() 方法,但不知道如何使用它。
  • 您是否在使用IProject.create 和其他IFile API?使用正确的 API 应该会自动获取项目。
  • @greg-449 实际上两者都不是...我在文件系统上创建了一个自定义模板(带有少量附加库的简单 C++ 项目),并将其复制到 performFinish() 上的工作区。我找不到以编程方式创建 C++ 项目的“工作”方式。如果您能指出正确的步骤,那就太好了!

标签: java eclipse eclipse-plugin eclipse-rcp


【解决方案1】:

理想情况下,应使用IProject.create 的版本创建项目,该版本采用IProjectDescriptor。但是,如果您以其他方式创建项目文件,您仍然需要使用IProject 创建项目以告知 Eclipse。你可以使用类似的东西:

IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
IProject project = root.getProject(projectName);
if (!project.exists()) {
    project.create(monitor);
} else {
    project.refreshLocal(IResource.DEPTH_INFINITE, monitor);
}

// TODO add files

project.refreshLocal(IResource.DEPTH_INFINITE, monitor);

【讨论】:

  • 谢谢!上面的代码成功创建并自动在 Project Explorer 中呈现项目目录。一个问题:我仍然需要右键单击项目目录并选择“打开项目”来呈现“包含”部分。有没有办法自动化这种情况。这纯粹是一个 C++ 项目,几乎没有额外的库。
猜你喜欢
  • 2012-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-12
  • 1970-01-01
  • 1970-01-01
  • 2010-09-20
相关资源
最近更新 更多