2013-06-30 37 views

回答

0

看一看在平台上的“编辑”部分插件开发者指南,以及然后是IDocument接口,它允许您注册文档更改侦听器。

0

我相信是的。你看过IResourceChangeListenerIResourceDeltaVisitor

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

一旦你实现IResourceChangeListener您可以将其作为一个听众致电登记:

ResourcesPlugin.getWorkspace().addResourceChangeListener

,并通过你的实例来此方法。

谢谢。

+0

这不是我要找的。 ResourceChangeListener观察一个资源的变化,我想听文本编辑器中打开的文档之间的切换... –

+0

啊我明白了。当你说“......更改了打开的文档”时,我以为你的意思是修改它。 –

1

我现在的解决方案:

  1. 创建StartupHandler它采用扩展点org.eclipse.ui.startup
  2. 不要在StartupHandler异步调用(以确保日食开始)通过Display.asyncExec()中,我添加它实现IPartListener2到活动工作台窗口类的新实例:

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

    公共无效partActivated(IWorkbenchPartReference partRef){// 做一些 }

现在每次在查看文档的变化,partActivated()方法将被调用,你可以作出反应。

+0

部分激活与更改文档不同。如果您只想要文档更改,请使用与IDocument关联的文档更改侦听器。 –