【问题标题】:Change TrayIcon Tooltip from ProgressMonitorDialog从 ProgressMonitor 对话框更改托盘图标工具提示
【发布时间】:2011-01-28 21:54:06
【问题描述】:

我正在使用 Eclipse RCP 托盘项,描述为 in Vogellas tutorials

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

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

唯一缺少的是可以从我的ProgressMonitorDialog 实例访问托盘项实例。

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

【问题讨论】:

    标签: java eclipse eclipse-rcp rcp


    【解决方案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

    【讨论】:

    • 谢谢!据我所知,在 ProgressMonitorDialog 类/线程中,我没有显示或窗口访问权限....我还尝试使用此类打开一个消息框,但因此失败。还是我做错了什么?
    • @Raven:我不明白:DialogWindowgetShell() 方法应该可用。
    • 原因:org.eclipse.swt.SWTException: Invalid thread access 这就是我在访问 shell/display 后得到的错误消息。我正在使用本教程中的 ProgressDialog:vogella.de/articles/EclipseJobs/article.html
    • @Raven,当然,您需要在 GUI 线程中完成。参见例如dev.eclipse.org/newslists/news.eclipse.newcomer/msg16800.html
    • 是的,这行得通,只是我现在得到了两个托盘图标:-(。已经存在的一个加上冗长操作中的一个。我认为 getTrayIcon() 会得到一个而不是创建另一个一个……
    猜你喜欢
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多