2011-11-06 23 views
0

我目前正在实现一个正在使用标准属性视图的Eclipse-Plugin,它连接到一个Navigator。它还具有一个文本编辑器,它能够将其文件内的区域连接到某些对象,可以提供特性的PropertiesView(即相同的对象,显示在导航)。 然而,我发现Tuturials只涉及所使用的预实现的浏览器,它已经支持通过选定的元素属性视图的意见。 的文本编辑没有做到这一点(我使用的JFace和AbstractTextEditor类的子类),因为它是SelectionProvider返回关于偏移,只有选择的长度信息。 如何做我必须修改我的文本编辑的SelectionProvider,使得其提供可用于属性查看信息?Eclipse:将TextEditor连接到属性视图

谢谢你提前

回答

0

好的,我已经设法找到解决方案我自己。

首先,我不得不实施getAdapter()方法在我的TextEditor,使得它返回一个适配器IPropertySourceProvider子类,可以处理那些在我AbstractTextEditor所选元素的类型。

然后,我实现了一个ISelection是扩展TextSelection,为了不与由AbstractTextEditor提供任何具体的选择机制干扰,并实现了接口IStructuredSelection,因为属性查看作品仅为ISelection这个接口。

一个IStructuredSelection功能数组的基本方法,但是,在我的情况下,只能选择一个单一的元素,所以这些方法的实现是微不足道的。

最后一步是让我的ISelection到正确的地方。覆盖getSelection() - AbstractTextEditor的ISelectionProvider的方法并不够用,因为很显然,触发SelectionChangedEvents的方法不使用此方法。

因此,而是采用了标准SourceViewer,我用我自己的实现中,我基本上overrid方法fireSelectionChanged(int offset, int length)firePostSelectionChanged(int offset, int lenght),使得它们使用含有我ISelection事件。

其余的是在IPropertySourceProvider的适配器中实现对我的对象的处理方式,它为给定的对象返回IPropertySource,如各种教程中所示。