【问题标题】:Eclipse RCP update a View after changes in the editor编辑器中的更改后 Eclipse RCP 更新视图
【发布时间】:2010-11-10 02:52:07
【问题描述】:

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

  • 一个插件就是应用程序
  • 另一个女巫是一个视图并且确实显示 一些数据
  • 第三个是 编辑。

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

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

提前致谢 约翰内斯

【问题讨论】:

    标签: java eclipse-rcp


    【解决方案1】:

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

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

    希望对你有帮助

    【讨论】:

      【解决方案2】:

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

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


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

      【讨论】:

      • 谢谢你的回复,但是你有一个简单的源代码示例我如何告诉视图,听编辑器?
      猜你喜欢
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      相关资源
      最近更新 更多