2009-07-29 54 views

回答

0

如果您的问题确实涉及EMF(Eclipse Modeling Framework,全部关于“Model”),那么eclipse帮助页面中的this section可能很有用,特别是当底层Model关注资源(如文件)发生更改时。

这意味着使用EMF MT(EMF Model Transaction),其提供:

  • 管理由多个读写线程访问的编辑域的能力。
  • 设施注册和共享之间不同的客户和听众的编辑域。资源集监听器在事务层中定义,并提供批量通知。
2

作为VonC说,并不很清楚你的模型是什么意思。这里有几个选项。

如果您正在讨论资源更改,Eclipse角上的resource deltas上有一篇(旧的,但仍然有用)的文章,向您展示基本知识。

如果你的意思更改的工作空间的选择(例如在Package Explorer项目的选择),然后检查了这篇文章的selection service

从调试org.eclipse.ui.texteditor.AbstractTextEditor,如下的更新处理:

protected void handleEditorInputChanged() { 
    ... 
    final IDocumentProvider provider= getDocumentProvider(); 
    ... 
    if (provider instanceof IDocumentProviderExtension) { 
     IDocumentProviderExtension extension= (IDocumentProviderExtension) provider; 
     extension.synchronize(input); 

注有代码解决这个负载,以处理其他事件处理程序的同时,停用并重新激活这发生了。如果你能够从AbstractTextEditor扩展,你可能想这样做,以避免必须自己实现。

+0

方案是:一种编辑器显示的文本文件和文本文件是由一些其他对象修改。编辑器会通过propertyChange事件通知此更改。问题是,现在编辑器应该做什么。我是否再次调用编辑器的setInput方法,或者我们是否可以刷新编辑器。 – Duleb 2009-07-30 11:02:56