【问题标题】:Eclipse: Connecting a TextEditor to the Properties ViewEclipse:将 TextEditor 连接到属性视图
【发布时间】:2011-11-06 22:23:22
【问题描述】:

我目前正在实现一个 Eclipse-Plugin,它使用标准属性视图,连接到一个导航器。它还具有文本编辑器,能够将其文档中的区域连接到可以为 PropertiesView 提供属性的某些对象(即显示在导航器中的相同对象)。 但是,我发现的教程仅处理使用预实现查看器的视图,该查看器已经支持将选定元素传递给属性视图。 TextEditor 不这样做(我正在使用 jface 和 AbstractTextEditor 类的子类),因为它的 SelectionProvider 仅返回有关偏移量和选择长度的信息。 如何修改我的 TextEditor 的 SelectionProvider,以便它提供可用于属性视图的信息?

提前谢谢你

【问题讨论】:

    标签: eclipse eclipse-plugin eclipse-rcp jface


    【解决方案1】:

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

    首先,我必须在TextEditor 的子类中实现getAdapter() 方法,以便它返回IPropertySourceProvider 的适配器,它可以处理在我的AbstractTextEditor 中选择的元素类型.

    然后,我实现了一个扩展TextSelectionISelection,为了不干扰AbstractTextEditor 提供的任何特定于选择的机制,并实现了接口IStructuredSelection,因为Properties View 使用这个接口仅限ISelection

    IStructuredSelection 具有数组的基本方法,但是,在我的情况下,它只能选择单个元素,因此这些方法的实现很简单。

    最后一步是将我的ISelection 放到正确的位置。覆盖 AbstractTextEditor 的ISelectionProvidergetSelection() 方法是不行的,因为很明显,触发SelectionChangedEvents 的方法并没有使用这个方法。

    因此,我没有使用标准的SourceViewer,而是使用了我自己的实现,其中我基本上覆盖了方法fireSelectionChanged(int offset, int length)firePostSelectionChanged(int offset, int lenght),这样它们就可以使用包含我的ISelection 的事件。

    剩下的就是在适配器中为IPropertySourceProvider 处理我的对象,方法是它为给定的对象返回一个IPropertySource,如各种教程中所示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-18
      • 1970-01-01
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      • 2020-02-15
      • 1970-01-01
      相关资源
      最近更新 更多