【问题标题】:Open two editors with the same label打开两个具有相同标签的编辑器
【发布时间】:2015-02-11 10:12:55
【问题描述】:

我最近使用 eclipse e4 开发了一个新的 RCP 应用程序,现在我遇到了一个问题,每当我想打开另一个具有相同标签的编辑器时,我无法打开它,因为我总是检查是否已经打开具有相同标签的编辑器,然后授予此编辑器焦点,以便将其置于零件堆栈的顶部。 每当用户双击树元素然后使用树元素名称作为标签时,我使用部件描述符动态打开编辑器。现在可能会发生某些树元素具有相同的标签... 除了将所有打开的编辑器的标签与我要打开的编辑器的标签进行比较之外,eclipse e4 中是否还有其他方法可以检查编辑器是否已经打开?

任何帮助或指点将不胜感激。

【问题讨论】:

  • 被编辑的对象是否不同?你能比较对象而不是标签吗?
  • @greg-449 是的,正在编辑的对象不同,但我不知道如何访问这些对象...我遍历编辑器堆栈中所有打开的 MPart,但如何访问各个 MPart 正在编辑的对象?
  • MPart.getObject() 为您提供编辑器类,或在 MPart 瞬态数据中存储一些内容。
  • @greg-449 谢谢这正是我要找的 ;)

标签: eclipse editor eclipse-rcp e4


【解决方案1】:

默认方式是在创建编辑器时分配输入 uri(e4 中的 InputPart)

MInputPart inputPart = MBasicFactory.INSTANCE.createInputPart();
inputPart.setInputURI("someInputUri");

然后你可以调用:

Collection<MInputPart> inputParts = partService.getInputParts("someInputUri");

其中partServiceEPartService 的一个实例。您可以使用这种方法管理一组输入部分。

【讨论】:

  • MInputPart 现已弃用
猜你喜欢
  • 2011-01-04
  • 1970-01-01
  • 2010-09-25
  • 1970-01-01
  • 1970-01-01
  • 2018-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多