避免Eclipse的内部首选项IPreferenceConstants.RUN_IN_BACKGROUND

时间:2013-11-21 08:16:05

标签: java eclipse eclipse-rcp

在我们的Eclipse RCP应用程序中,我们有几个长时间运行的作业,它们与Eclipse的标准进度监视器对话框一起显示。在此对话框中,用户可选择“始终在后台运行”。我们希望通过首选项页面授予用户访问此选项的权限,以便他可以打开/关闭首选项。

在我们的首选项页面中,首选项通过IPreferenceConstants.RUN_IN_BACKGROUND访问,并存储在首选项存储WorkbenchPlugin.getDefault().getPreferenceStore()中,两者都访问内部库。

作为一种好的做法,我们希望从应用程序中删除对内部库的所有访问权限,那么我们如何在保持用户可用的首选项的同时实现这一目标呢?

我尝试将进度监视器对话框切换到不同的首选项存储和不同的首选项名称,但是我看不出这是如何完成的,因为我们只是实现了Job a监视器被提供给我们run()方法中的参数。

我正在使用Eclipse 3.7作为目标平台。

1 个答案:

答案 0 :(得分:0)

使用此首选项的代码是org.eclipse.ui.internal.progress.ProgressManager。它作为Progress Provider安装在作业管理器中,并提供用于作业的IProgressMonitor

技术上可以在作业管理器中设置新的进度提供程序,但由于ProgressManager还提供了IProgressService,这在实践中可能很难(这取决于您的RCP使用的Eclipse核心服务的数量)。 / p>

所以在实践中,我认为你无能为力。