为XML创建MultipageEditor

时间:2016-05-04 09:05:51

标签: java xml eclipse editor

我正在开发一个eclipse插件,我想使用一个编辑器,在当前页面设置一些监听器(好的术语?),并在用户切换另一个页面时删除这些监听器(基本上,用户是编辑多个文件,就像使用默认的JAVA编辑器一样。)

目前我已经编写了一个扩展StructuredTextEditor的类。插件的行为是预期的,但是当我尝试处理多个文件时,会出现许多问题。据我所知,主要问题是当用户打开另一页时我无法收到通知。

我阅读(并测试过)有关MultiPageEditor的一些内容,但似乎并没有将XML编辑器集成为默认编辑器。我应该如何处理以获取具有XML语法着色的MultiPageEditor,并在用户更改当前页面以调整我的侦听器时收到通知?

感谢阅读。

2 个答案:

答案 0 :(得分:2)

代码并不完美,但至少你会有一个集成XMLEditor的MultiPageEditor示例:https://github.com/fusesource/fuseide/blob/8.0.0.Beta2/editor/plugins/org.fusesource.ide.camel.editor/src/org/fusesource/ide/camel/editor/CamelEditor.java

我们的想法是在createPages()方法中调用addPage(new StructuredTextEditor())。

的问候,

答案 1 :(得分:1)

在编辑器中,您可以使用以下方式收听编辑器文本中的选择更改:

getSelectionProvider().addSelectionChangedListener(listener);

其中listener实现ISelectionChangedListener

这适用于源自AbstractTextEditor的任何编辑器(包括StructuredTextEditor

您需要在编辑器创建中相当晚。在createPartControl方法中起作用:

@Override
public void createPartControl(final Composite parent)
{
  super.createPartControl(parent);

  getSelectionProvider().addSelectionChangedListener(listener);
}