2013-11-21 3 views
1

В нашем приложении RCP Eclipse у нас есть несколько долгосрочных заданий, которые отображаются с помощью стандартного диалогового окна монитора выполнения от Eclipse. В этом диалоговом окне пользователь может выбрать «Всегда работать в фоновом режиме». Мы хотим предоставить пользователю доступ к этой опции с помощью страницы предпочтений, чтобы он мог включить/отключить предпочтение.Избегайте внутренних предпочтений Eclipse. IPreferenceConstants.RUN_IN_BACKGROUND

На нашей странице предпочтения, доступ к которому осуществляется через IPreferenceConstants.RUN_IN_BACKGROUND и хранится в хранилище предпочтений WorkbenchPlugin.getDefault().getPreferenceStore(), оба из которых получают доступ к внутренним библиотекам.

Как хорошая практика, мы хотим удалить весь доступ к внутренним библиотекам из нашего приложения, так как мы можем достичь этого, сохраняя предпочтение пользователю?

Я попытался переключить диалог монитора прогресса в другое хранилище предпочтений и другое имя предпочтения, но я не вижу, как это будет сделано, потому что мы просто внедряем Job, а монитор предоставляется нам как параметр в метод run().

Я использую Eclipse 3.7 в качестве целевой платформы.

ответ

0

Код, который использует этот параметр, org.eclipse.ui.internal.progress.ProgressManager. Он устанавливается в диспетчере заданий в качестве Провайдера прогресса и предоставляет IProgressMonitor для использования для заданий.

Технически возможно установить нового поставщика прогресса в диспетчере заданий, но поскольку ProgressManager также предоставляет IProgressService, это может быть затруднено на практике (это зависит от того, какая часть основных услуг Eclipse используется вашим RCP).

Так что на практике я не думаю, что вы можете что-то сделать.

+0

Спасибо, это то, чего я боялся. –

Смежные вопросы