2009-07-29 62 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