2010-03-18 46 views
2

我正在使用Eclipse RCP trayitem,其描述为in Vogellas tutorials从ProgressMonitorDialog更改TrayIcon工具提示

现在的要求不仅是在工具提示中显示应用程序的名称,而且还要在执行冗长操作时显示一个百分比。

据我所知,trayitem属性是ApplicationWorkbenchWindowAdvisor中的一个私有属性,所以我添加了getter和setter方法。

唯一缺失的是从我的ProgressMonitorDialog实例访问trayitem实例的可能性。

你能告诉我,你将如何解决这个难题?
感谢

回答

1

既然你可以从任何窗口建立SystemTray围绕TrayItem

final Tray tray = window.getShell().getDisplay().getSystemTray(); 
TrayItem trayItem = new TrayItem(tray, SWT.NONE); 

,你必须从ApplicationWorkbenchWindowAdvisor访问TrayItem实例?

你可以把它放在一个更容易访问的类中,甚至可以在需要的时候创建它。


显示,在做冗长的操作百分比来说,我只是想提到的最新任务图标improvements in Eclipse3.6M6(非系统盘,但现在他们的相关可以提供良好的状态指示器)。一个例子见Snippet 336

  • TaskItem覆盖图像

新的API TaskItem#setOverlayImage(Image)允许客户端设置为被显示在任务栏上的应用程序按钮的顶部的图像。

alt text http://download.eclipse.org/eclipse/downloads/drops/S-3.6M6-201003121448/images/overlayimage.png

  • TaskItem叠加文本

新的API TaskItem#setOverlayText(String)允许客户设置要显示在任务栏中的应用程序按钮之上的简短文字。

alt text http://download.eclipse.org/eclipse/downloads/drops/S-3.6M6-201003121448/images/overlaytext.png

  • TaskItem进步

新的API TaskItem#setProgress(int)TaskItem#setProgressState(int)允许客户以显示在任务栏中的应用程序按钮进度指示。

alt text http://download.eclipse.org/eclipse/downloads/drops/S-3.6M6-201003121448/images/progress.png

+0

谢谢!据我所知ProgressMonitorDialog类/线程内我没有显示或窗口访问....我也试图打开这个类的消息框,它因此失败。或者我做错了什么? – Raven 2010-03-18 08:09:22

+0

@Raven:我不明白:'Dialog'是一个'Window'。 'getShell()'方法应该可用。 – VonC 2010-03-18 08:19:33

+0

原因:org.eclipse.swt.SWTException:无效的线程访问 这就是我访问shell/display后得到的errormessage。 我正在使用本教程中的ProgressDialog:http://www.vogella.de/articles/EclipseJobs/article.html – Raven 2010-03-18 08:24:03