Eclipse RCP在编辑器中更改后更新View

时间:2010-09-30 10:43:34

标签: java eclipse-rcp

我是Eclipse RCP的新手并拥有以下场景:

  • 一个插件,即应用程序
  • 另一个女巫是一个观点并且确实表现出来 一些数据
  • 第三个是 编辑器。

在视图中我可以右键单击一条记录,然后选择编辑打开编辑器的内容并让我更改数据。

不,我想在保存编辑器时刷新视图。我认为这是实现Whiteboard模式的经典场景。不幸的是我并不熟悉它,可能有些人可以展示一个简单的例子如何在Eclipse RCP中实现它。

先谢谢 约翰内斯

2 个答案:

答案 0 :(得分:3)

您的视图需要实现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);
} 

两个代码只是展示这个想法的一个例子!

我希望我能帮到你

答案 1 :(得分:2)

视图必须听编辑器,或者 - 甚至更好 - 听编辑的模型。如果它侦听编辑器,请查找一些“保存”事件。就个人而言,我会让模型本身可观察,并通知听众(如你的观点)实际的变化。

然后,视图需要一些逻辑来从模型中提取其信息。因此,观察者模式应该是您设计的正确选择,而不是白板 -


值得一试:将IPropertyListener添加到编辑器的IEditorPart实例并等待属性更改。保存后,IEditorPart.PROP_DIRTY属性应从“脏”变为“不脏”。 eclipse rcp内容的代码片段/代码示例很难开发和沟通。使用我的答案中的流行语来搜索eclipse帮助,API和谷歌上的一些搜索。并且:祝你好运;) - 顺便说一下,考虑购买一些关于eclipse插件/ rcp开发的好书,它们值得花费每一欧元/美元。