【问题标题】:Eclipse RCP SourceProvider listening for changesEclipse RCP SourceProvider 监听变化
【发布时间】:2014-06-10 19:33:26
【问题描述】:

我有一个源提供程序,可以帮助提供启用按钮和菜单项的状态。启用部分工作正常。我的挑战是如何在激活各种编辑器/视图时调用源提供程序。

我已在源提供程序上实现了 IPartListener2,但没有看到以通用 方式为所有 编辑器和视图注册它的方法。 getPartService().addPartListerner(this) 将注册它,但仅适用于特定的工作台部件。此外,在任何部分处于活动状态之前都会调用 Source Provider 的构造函数,因此无法获取有效的部分。

为所有编辑器和视图注册此 Source Provider 的最佳方式是什么?

感谢您阅读我的问题以及您可以提供的任何帮助。

【问题讨论】:

    标签: eclipse rcp


    【解决方案1】:

    使用IWindowListener 监听正在激活的工作台窗口:

    IWorkbench workbench = PlatformUI.getWorkbench();
    
    workbench.addWindowListener(windowListener);
    

    在监听器的windowActivated方法中使用窗口部件服务为窗口添加部件监听器:

    public void windowActivated(IWorkbenchWindow window)
    {
       window.getPartService().addPartListener(partListener);
    }
    

    例如,请参阅org.eclipse.jdt.internal.debug.ui.actions.ActionDelegateHelper

    【讨论】:

    • @gregg-449 感谢您的简短回答!它现在工作正常。指向工作 Eclipse 示例的指针非常有帮助。
    猜你喜欢
    • 1970-01-01
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 2011-11-27
    • 2023-04-07
    相关资源
    最近更新 更多