我正在为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?
答案 0 :(得分:2)
UISynchronizer
用于Eclipse e4样式应用程序,因为您使用的是AbstractHandler
,您必须编写Eclipse 3.x样式的插件,因此使用它不合适。
而是使用Display.asyncExec
:
Display.getDefault().asyncExec(runnable);
这实际上是UISynchronizer
在内部使用的内容。
为了记录“不鼓励访问”'警告是因为UISynchronizer
接口尚未最终确定并且可能会更改。对于e4应用程序,可以忽略此警告。
更新
再次检查e4类是UISynchronize
而非UISynchronizer
这是一个内部类,不应该使用它。