2011-03-03 45 views
1

如何更新GEF編輯器,如果文件重命名?如何更新GEF編輯器,如果文件重命名?

這適用於文本編輯器。例如在Eclipse中轉到Navigator,在編輯器中打開文件HelloWorld.java,將HelloWorld.java重命名爲Navigator中的HelloWorld2.java。請注意,編輯器現在已更新,標題爲「HelloWorld2.java」。

要做到這一點Eclipse將創建監聽器,並把它添加到ITextEditor: IElementStateListener fElementStateListener= new ElementStateListener() (handles elementMoved and calles setInput((IEditorInput) movedElement)) ITextEditor.getDocumentProvider().addElementStateListener(fElementStateListener);

我想我需要做同樣的事情在org.eclipse.gef.ui.parts.GraphicalEditor,但我不知道如何導致graphicalEditor,沒有documentProvider。

UPD:

有設置有GEF三個例子。其中之一是邏輯 示例: http://wiki.eclipse.org/GEF_Developer_FAQ#How_do_I_Run_the_Logic_Example.3F

在LogicEditor類中,有一個內部類ResourceTracker,它是關鍵。

回答

1

當您檢測到您的資源已移動時,您需要添加資源偵聽器並更新您的編輯器屬性(即標題,工具提示)。

+0

我不確定它應該這樣做。在resourcelistener中,我沒有參考編輯器,所以我需要掃描打開的編輯器,我也會在resourceListener中通知資源更改的後期... – javapowered

+0

您可以讓每個編輯器監聽事件(即添加監聽器在單元方法中,並在編輯器處理時刪除)。 – Eugene

+0

最後的建議聽起來很「醜」。我想做的事情就像他們爲ITextEditor所做的一樣簡單(請參閱描述) – javapowered