我是Eclipse RCP的新手并拥有以下场景:
在视图中我可以右键单击一条记录,然后选择编辑打开编辑器的内容并让我更改数据。
不,我想在保存编辑器时刷新视图。我认为这是实现Whiteboard模式的经典场景。不幸的是我并不熟悉它,可能有些人可以展示一个简单的例子如何在Eclipse RCP中实现它。
先谢谢 约翰内斯
答案 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开发的好书,它们值得花费每一欧元/美元。