[英]Eclipse RCP update a View after changes in the editor
我是Eclipse RCP的新手,並具有以下情形:
在視圖中,我可以右鍵單擊一條記錄,然后選擇“編輯”,這將打開編輯器並讓我更改數據。
不,保存編輯器時,我想刷新視圖。 我認為這是實現白板模式的經典方案。 不幸的是,我並不真正熟悉它,也許有人可以展示一個簡單的示例,說明如何在Eclipse RCP中實現它。
在此先感謝約翰內斯
您的視圖需要實現IPartListener2(http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/IPartListener2.html)
您可以通過兩種方式重寫方法partInputChanged(IWorkbenchPartReference partRef)來刷新視圖:1)如果具有視圖的插件對具有編輯器的插件具有依賴性
If (partRef instanceOf YourEditorClass){
YourData yourData = editor.getInput().getxxx();
}
2)如果帶視圖的插件不依賴於帶有編輯器的插件,則需要使用適配器。 您可以在編輯器中重寫getAdapter方法以返回所需的數據,然后視圖從適配器獲取數據。
If (partRef instanceOf EditorPart){
YourData yourData = Platform.getAdapterManager().getAdapter(this, YourData.class);
}
兩個代碼僅是顯示此想法的示例!
希望對你有幫助
視圖必須收聽編輯器,或者甚至更好地收聽已編輯的模型。 如果它收聽編輯器,請查找一些“保存”事件。 就我個人而言,我將使模型本身可觀察,並將實際更改通知給偵聽器(如您的視圖)。
然后,視圖需要一些邏輯以從模型中提取其信息。 因此,觀察者模式應該是您設計的正確選擇,而不是花哨的面板。
值得一試:將IPropertyListener添加到編輯器的IEditorPart實例,然后等待屬性更改。 保存后,IEditorPart.PROP_DIRTY屬性應從“臟”更改為“不臟”。 eclipse rcp內容的代碼片段/代碼示例很難開發和交流。 使用答案中的流行詞在Eclipse幫助,API和Google上進行一些搜索。 並且:祝你好運;)-順便說一句,考慮購買一些有關eclipse插件/ rcp開發的好書,他們值得每花$ / $。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.