2011-06-28 28 views

回答

7

您可以通過訪問IEditorPart爲此,使用getAdapter(IDocument.class)然後添加一個監聽器,這個...

但是,這確實是一個黑客... ;-)

編輯:在請求,這裏是更多的代碼。

public void hookToEditor() { 
    IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); 
    if (page == null) return; 
    IEditorPart editor = page.getActiveEditor(); 
    if (editor == null) return; 
    IDocument doc = (IDocument) editor.getAdapter(IDocument.class); 
    if (doc == null) return; 

    doc.addDocumentListener(new IDocumentListener() { 
     @Override 
     public void documentChanged(DocumentEvent event) { 
      // Do something 
     } 

     @Override 
     public void documentAboutToBeChanged(DocumentEvent event) { 
      // About to do something 
     } 
    }); 
} 

注意

  • 有很多方法可以讓頁面 - 例如通過當前站點
  • 獲得編輯器部分的方法有很多 - 例如,通過處理器
  • 許多編輯器沒有嵌入文檔 - 例如, PDE編輯器
+0

如果沒有別的東西,黑客就會做;) – Johnny

+0

@TonnyMadsen你能舉一個更具體的例子嗎? – RoflcoptrException

2

您可以添加資源更改偵聽器。

IResourceChangeListener listener = new IResourceChangeListener() { 
    @Override 
    public void resourceChanged(IResourceChangeEvent arg0) { 
     System.out.println("Text changed"); 
    } 
}; 
ResourcesPlugin.getWorkspace().addResourceChangeListener(listener); 
相關問題