从插件修改Eclipse UI

时间:2014-05-20 12:15:52

标签: java eclipse eclipse-plugin eclipse-jdt

我正在为eclipse构建一个插件,它对当前在工作区中找到的项目执行一些静态分析。我有AbstractHandler的实现,在Eclipse中按下我的按钮时会调用execute方法。

我的分析完成后,到目前为止,我想在Eclipse中打开一个新的文本窗口,其中包含分析输出。

我在这里跟踪了vogella教程http://www.vogella.com/tutorials/EclipseJobs/article.html#eclipsejobs_uisynchronize 这解释了我需要注入一个UISynchronizer对象(或者更确切地说,eclipse会为我注入它)并从处理程序中调用asynch(Runnable)方法。但是,当我导入UISynchronizer时,Eclipse会发出警告:

Discouraged access: The type UISynchronizer is not accessible due to restriction on required library /Applications/eclipse/plugins/org.eclipse.ui.workbench_3.105.2.v20140211-1711.jar

这是否阻止普通用户使用UISynchronizer课程?或者我应该使用其他方法从我的处理程序更新UI?

1 个答案:

答案 0 :(得分:2)

UISynchronizer用于Eclipse e4样式应用程序,因为您使用的是AbstractHandler,您必须编写Eclipse 3.x样式的插件,因此使用它不合适。

而是使用Display.asyncExec

Display.getDefault().asyncExec(runnable);

这实际上是UISynchronizer在内部使用的内容。

为了记录“不鼓励访问”'警告是因为UISynchronizer接口尚未最终确定并且可能会更改。对于e4应用程序,可以忽略此警告。

更新

再次检查e4类是UISynchronize而非UISynchronizer这是一个内部类,不应该使用它。