2

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

最好的问候弗兰克

4

3 回答 3

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() 方法,您可以做出反应。

于 2013-07-01T10:14:15.547 回答
0

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

于 2013-06-30T06:33:33.923 回答
0

我相信是这样。你看过IResourceChangeListenerIResourceDeltaVisitor吗?

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

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

ResourcesPlugin.getWorkspace().addResourceChangeListener

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

谢谢。

于 2013-06-30T20:09:59.613 回答