Изменить подсказку TrayIcon с ProgressMonitorDialog
-
20-09-2019 - |
Вопрос
Я использую элемент лотка Eclipse RCP, который описан в руководствах Vogellas.
Теперь требуется не только отображать название приложения во всплывающей подсказке, но и процент при выполнении длительных операций.
Я понимаю, что атрибут Trayitem является частным из ApplicationWorkbenchWindowAdvisor
, поэтому я добавил метод получения и установки.
Единственное, чего не хватает, это возможности доступа к экземпляру лотка из моего ProgressMonitorDialog
пример.
Подскажите, как бы вы решили эту головоломку?
Спасибо
Решение
Поскольку вы можете построить TrayItem
вокруг SystemTray
из любых окон:
final Tray tray = window.getShell().getDisplay().getSystemTray();
TrayItem trayItem = new TrayItem(tray, SWT.NONE);
, вам нужен доступ что TrayItem
экземпляр из ApplicationWorkbenchWindowAdvisor
?
Вы можете поместить его в более доступный класс или даже создать его там, где и когда он вам понадобится.
Говоря об отображении процентов при выполнении длительных операций, я просто хотел упомянуть значки последних задач. улучшения в Eclipse3.6M6 (не системный трей, но связанные с ними теперь могут служить хорошим индикатором состояния).Видеть Фрагмент 336 для примера.
- Изображение наложения TaskItem
Новый API
TaskItem#setOverlayImage(Image)
позволяет клиентам устанавливать изображение, которое будет отображаться поверх кнопки приложения на панели задач.
- Текст наложения TaskItem
Новый API
TaskItem#setOverlayText(String)
позволяет клиентам устанавливать короткий текст, который будет отображаться поверх кнопки приложения на панели задач.
- Ход выполнения элемента задачи
Новые API
TaskItem#setProgress(int)
иTaskItem#setProgressState(int)
позволяет клиентам отображать индикацию прогресса в кнопке приложения на панели задач.