簡體   English   中英

Eclipse RCP在編輯器中進行更改后更新視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM