Changer TrayIcon infobulle de ProgressMonitorDialog
-
20-09-2019 - |
Question
J'utilise l'Eclipse RCP trayitem, qui est décrit en Vogellas tutoriels .
L'exigence est maintenant non seulement pour afficher le nom de l'application dans l'infobulle, mais aussi un pourcentage tout en faisant des opérations longues.
Je comprends que l'attribut trayitem est un organisme privé de ApplicationWorkbenchWindowAdvisor
, alors j'ai ajouté une méthode getter et setter.
La seule chose qui manque est possible d'accéder à l'instance de trayitem de mon instance ProgressMonitorDialog
.
Pouvez-vous me dire, comment vous résoudre ce casse-tête?
Merci
La solution
Comme vous pouvez construire une TrayItem
autour du SystemTray
de toutes les fenêtres:
final Tray tray = window.getShell().getDisplay().getSystemTray();
TrayItem trayItem = new TrayItem(tray, SWT.NONE);
, avez-vous accès que instance TrayItem
de ApplicationWorkbenchWindowAdvisor
?
Vous pouvez le mettre dans une classe plus accessible ou même construire un où et quand vous en avez besoin.
En parlant de montrer le pourcentage tout en faisant des opérations longues, je voulais juste les dernières tâches mentionnées icônes Snippet 336 pour un exemple.
- TaskItem image overlay
La nouvelle
TaskItem#setOverlayImage(Image)
API permet aux clients de définir une image à afficher au-dessus du bouton d'application dans la barre des tâches.
- TaskItem texte de recouvrement
La nouvelle
TaskItem#setOverlayText(String)
API permet aux clients de définir un court texte à afficher au-dessus du bouton d'application dans la barre des tâches.
- TaskItem cours
Les nouvelles API
TaskItem#setProgress(int)
etTaskItem#setProgressState(int)
permet aux clients de montrer une indication de progression dans le bouton d'application dans la barre des tâches.