我正在开发一个在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)。
答案 0 :(得分:1)
Project Open GUI代码除了调用IProject.open
之外没有什么用处,它确实使用了进度监视器和IWorkspaceRunnable
- 这将改变稍微生成资源更改事件的方式。
代码为org.eclipse.jdt.ui.actions.OpenProjectAction
- 尤其是internalRun
方法。