我如何获得 IProgressMonitor 的实例?

How do I get an instance of IProgressMonitor?

我正在开发一个 Eclipse 插件,我想获取一个 IProgressMonitor 实例以将其传递给本机 Eclipse 代码。我真正想要的是一个通过 "Progress" 视图通知用户的 IProgressMonitor。

我找到了很多关于如何使用现有 IProgressMonitor 的文档,例如 this page but nothing about getting such IProgressMonitor instance. The only implementations I found are those referenced from IProgressMonitor's JavaDoc,但 none 似乎是相关的。

有几件事会给你一个 IProgressMonitor

如果您 运行 您的代码作为 Job (org.eclipse.core.runtime.jobs.Job),那么您实现的 run 方法会得到一个进度监视器。还有相关的 UIJobWorkspaceJob classes.

IRunnableWithProgress界面中,run方法给出了一个进度监视器。有几个东西支持这个接口,比如

  • 在向导中 IWizardContainerrun 方法

  • ProgressMonitorDialog

  • run方法
  • IWorkbenchWindow workbench window.

  • jfaceProgressMonitorPartclass.

  • WorkspaceModifyOperation

  • 任何其他实现 IRunnableContext

您甚至可以使用 NullProgressMonitor 创建自己的监视器(什么都不做)