我創建了一個簡單的Eclipse RCP應用程序,我可以根據用戶操作打開多個編輯器實例。我有一個單獨的視圖(ViewPart),我在這裏監聽編輯器上的選擇更改。 問題是,視圖只會通知上次打開的編輯器的選擇,其他先前打開的編輯器不再提供事件/或者視圖只能監聽上次打開的編輯器,而沒有其他任何內容。即使先前開放的編輯者獲得關注,也會發生這種情況。Eclipse RCP - 如何從焦點編輯器中偵聽選擇
換句話說,只有編輯器區域中最新的編輯器提供了選擇事件,我想要的是,當我點擊其他編輯器的選項卡時,我想查看當前點擊之前打開的視圖上的更改編輯。
我認爲我使用:
IWorkbench workbench = PlatformUI.getWorkbench();
workbench.getActiveWorkbenchWindow().getActivePage().addSelectionListener(DocumentsEditor.ID,(ISelectionListener)this);
其中DocumentEditor是一種編輯器應用程序編輯器區域打開。
非常感謝,這正是我一直在尋找的。 – Kris
對不起,爲什麼你在最後一個例子中使用* post * SelectionListener,而其餘的答案是關於正常的選擇監聽器?它是出於某種原因還是打字錯誤? – Alex
'ss.addPostSelectionListener(listener)'和'ss.addSelectionListener(listener)'是相等的,除非選擇將來自「可滾動」小部件,如表格。這裏'ss.addSelectionListener(listener)'會通知每個選擇改變的監聽器,而'ss.addPostSelectionListener(監聽器)'只會在最後一次改變後400ms通知監聽器。我總是使用後期版本。 –