【发布时间】:2013-06-27 11:24:03
【问题描述】:
有没有办法监听用户是否更改了打开的文档? (不只是打开/关闭它;它应该在用户在已打开的文档之间切换时起作用)
最好的问候 弗兰克
【问题讨论】:
标签: java eclipse plugins editor listener
有没有办法监听用户是否更改了打开的文档? (不只是打开/关闭它;它应该在用户在已打开的文档之间切换时起作用)
最好的问候 弗兰克
【问题讨论】:
标签: java eclipse plugins editor listener
我现在的解决方案:
通过 Display.asyncExec() 在 StartupHandler 中进行异步调用(以确保 eclipse 已启动),在其中我将实现 IPartListener2 的类的新实例添加到活动工作台窗口:
public void earlyStartup() {
PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
public void run() {
Workbench.getInstance().getActiveWorkbenchWindow().getPartService().addPartListener(new SwitchDocumentListener());
}
});
}
创建实现 IPartListener2 的类:
public void partActivated(IWorkbenchPartReference partRef) { //做一点事 }
现在每次查看的文档发生变化,partActivated()方法都会被调用,你可以做出反应。
【讨论】:
查看平台插件开发指南中的“编辑器”部分,然后查看允许您注册文档更改侦听器的 IDocument 接口。
【讨论】:
我相信是的。你看过IResourceChangeListener和IResourceDeltaVisitor吗?
这些都在org.eclipse.core.resources 包中。
实现IResourceChangeListener 后,您可以通过调用将其注册为监听器:
ResourcesPlugin.getWorkspace().addResourceChangeListener
并将您的实例传递给此方法。
谢谢。
【讨论】: