在 Eclipse Common Navigator Framework 视图中过滤内容

Filtering contents in Eclipse Common Navigator Framework view

我正在开发一个基于 3.x 的 Eclipse RCP 应用程序。在应用程序部分,我正在实现 Eclipse 本身的 Common-navigator 插件,以便在工作区中显示资源。我已经创建了如下所示的导航器视图:

但我只想显示一个树子元素。更具体地说,我只想显示 clause 文件夹及其元素。

正确的做法是什么?

  • 如果 plugin.xml 中不存在,则添加 org.eclipse.ui.navigator 的依赖项。
  • 在扩展选项卡中添加扩展点 org.eclipse.ui.navigator.navigatorContent
  • 在其下创建 CommonFilter 并将您的值提供给右侧的属性。
  • 创建一个扩展 'org.eclipse.jface.viewers.ViewerFilter' 的 class 并在覆盖的 public boolean select(Viewer viewer, Object parentElement, Object element) 中实现你的逻辑(注意 :return true 会保留导航器中的资源,否则它将被隐藏。
  • 在 CommonFilter 中为 class 属性 配置扩展 class。
  • 你可以去参加测试了。

顺便说一句,这种方式是在所有导航器中添加通用过滤器。如果您需要为特定的导航器进行配置,那么您需要获取它的视图,然后从中获取查看器并将您的过滤器附加到查看器。为此,您可能需要一个触发点,例如 menu/button/startup 扩展!