【问题标题】:Imitating Eclipse's "Open Project" UI Functionality模仿 Eclipse 的“Open Project”UI 功能
【发布时间】:2014-08-07 00:35:56
【问题描述】:

我正在开发一个在 Eclipse 工作台中运行的 Ant 任务。

Ant 任务需要完成一个简单的任务:关闭和重新打开一个项目。

但是,下面的代码:

IProject project = ...;
project.close(null);
project.open(null);

似乎与关闭一个项目并使用 UI重新打开它的结果并不完全相同。

在我看来,“打开项目”的UI操作不仅仅是调用project.open();类似于调用“响应”项目的open() 调用的插件。

有没有一种方便的方法来模仿 Eclipse 打开项目的 UI 功能?我认为这段代码必须封装在某个地方,但是通过 Eclipse 的大量源代码似乎并没有发现太多。

编辑背景:

我实际上正在使用 Rational Application Developer (v9)。我正在使用projectSetImport Ant 任务将现有项目从文件系统导入工作台。这些项目是 Git 存储库的一部分。我注意到,一旦将项目导入工作区,EGit 功能在这些项目上不可用,除非我关闭项目并重新打开它们(通过 UI)。

【问题讨论】:

  • 模仿Eclipse的UI功能是什么意思? project.open() 触发感兴趣的听众响应的 ResourceChangeEvents。如果您还希望打开引用的项目,请查看 org.eclipse.ui.actions.OpenResourceAction
  • 为什么要先关闭再打开?可能有更好的方法来做你想要实现的任何事情。
  • @greg-449 我相应地更新了我的问题。希望清楚...

标签: eclipse eclipse-pde


【解决方案1】:

Project Open GUI 代码除了调用IProject.open 之外没有更多的功能,它确实使用进度监视器和IWorkspaceRunnable - 这将稍微改变资源更改事件的生成方式。

代码是org.eclipse.jdt.ui.actions.OpenProjectAction - 特别是internalRun 方法。

【讨论】:

  • 嗯。的确。我已经按照那里写的内容尝试了一些东西,但是没有用。那么我想问题出在其他地方。不过,你回答了这个问题,所以我会接受它。
猜你喜欢
  • 2010-10-09
  • 1970-01-01
  • 2012-01-21
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 2015-12-01
  • 1970-01-01
相关资源
最近更新 更多