我正在使用eclipse插件,我想使用编辑器,在当前页面上设置一些侦听器(好的术语?),并在用户切换到另一页面时删除这些侦听器(基本上,用户正在编辑多个文件) ,就像使用默认的JAVA编辑器一样)。
目前,我已经编写了一个扩展StructuredTextEditor的类。插件的行为是预期的,但是当我尝试处理多个文件时,会出现许多问题。据我说,主要的问题是,当用户打开另一个页面时,我无法得到通知。
我阅读(并测试了)有关MultiPageEditor的一些知识,但似乎它没有将XML编辑器集成为默认编辑器。如何获得具有XML语法颜色的MultiPageEditor并在用户更改当前页面以调整我的侦听器时得到通知?
谢谢阅读。
最佳答案
在编辑器中,您可以使用以下方法收听编辑器文本中的选择更改:
getSelectionProvider().addSelectionChangedListener(listener);
其中
listener
实现ISelectionChangedListener
。这适用于从
AbstractTextEditor
(包括StructuredTextEditor
派生的)任何编辑器。您需要在编辑器创建的后期进行此操作。在
createPartControl
方法中工作:@Override
public void createPartControl(final Composite parent)
{
super.createPartControl(parent);
getSelectionProvider().addSelectionChangedListener(listener);
}