2011-08-12 49 views
1

我想知道是否有辦法讓一次不能打開一個以上的編輯器?我現在擁有的是一個按鈕,每次按下它都會給出一個新的編輯器。 我使用Eclipse RCP的一次只有一個編輯器? RCP

感謝

+1

你爲什麼使用編輯器? - 不會讓點擊按鈕時刷新的ViewPart更有意義嗎? - 如果編輯器很髒,會發生什麼情況,如果編輯器包含無效值會怎麼樣? –

回答

1

你可以在一個新的編輯器打開時關閉所有其他編輯的IWorkbenchWindowIPartService添加IPartListener。您可以通過IWorkbenchPage.getEditorReferences()找到當前編輯器。

+0

假設總是隻有一個編輯器打開,IWorkbenchPage.getActiveEditor()應該是足夠的;) –

+1

@Tom呃,問題是,你只會得到通知_after_新的編輯器打開,然後'IWorkbenchPage.getActiveEditor()'將返回新的編輯器而不是舊的編輯器。無論如何,我通常更喜歡儘可能少的前置條件的算法 - 即使它稍微複雜一些... :-) –

+0

你是對的。我的評論是誤導性的,getActiveEditor必須在**打開新編輯器之前調用**。無論如何,最簡單的可能是IWorkbenchPage.closeAllEditors(保存),然後再打開一個新的:) –