【问题标题】:Eclipse Plugin Development: Listener for change of view of opened documentEclipse 插件开发:用于更改打开文档视图的侦听器
【发布时间】:2013-06-27 11:24:03
【问题描述】:

有没有办法监听用户是否更改了打开的文档? (不只是打开/关闭它;它应该在用户在已打开的文档之间切换时起作用)

最好的问候 弗兰克

【问题讨论】:

    标签: java eclipse plugins editor listener


    【解决方案1】:

    我现在的解决方案:

    1. 创建一个使用扩展点 org.eclipse.ui.startup 的 StartupHandler
    2. 通过 Display.asyncExec() 在 StartupHandler 中进行异步调用(以确保 eclipse 已启动),在其中我将实现 IPartListener2 的类的新实例添加到活动工作台窗口:

      public void earlyStartup() {
          PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
              public void run() {
                  Workbench.getInstance().getActiveWorkbenchWindow().getPartService().addPartListener(new SwitchDocumentListener());
              }
          });
      }
      
    3. 创建实现 IPartListener2 的类:

      public void partActivated(IWorkbenchPartReference partRef) { //做一点事 }

    现在每次查看的文档发生变化,partActivated()方法都会被调用,你可以做出反应。

    【讨论】:

    • 部分激活不同于更改文档。如果您只想更改文档,请使用与 IDocument 关联的文档更改侦听器。
    【解决方案2】:

    查看平台插件开发指南中的“编辑器”部分,然后查看允许您注册文档更改侦听器的 IDocument 接口。

    【讨论】:

      【解决方案3】:

      我相信是的。你看过IResourceChangeListener和IResourceDeltaVisitor吗?

      这些都在org.eclipse.core.resources 包中。

      实现IResourceChangeListener 后,您可以通过调用将其注册为监听器:

      ResourcesPlugin.getWorkspace().addResourceChangeListener

      并将您的实例传递给此方法。

      谢谢。

      【讨论】:

      • 这不是我要找的。 ResourceChangeListener 观察一个资源的变化,我想在文本编辑器中监听打开的文档之间的切换...
      • 啊,我明白了。当您说“...更改了打开的文档”时,我以为您的意思是修改它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 2019-01-15
      • 2016-08-21
      • 1970-01-01
      相关资源
      最近更新 更多