2010-03-07 110 views
6

我想向项目资源管理器中添加一个新过滤器,从而向用户隐藏一些在Eclipse RCP应用程序中自动创建的项目。将过滤器添加到Eclipse中的项目资源管理器中

到目前为止,我已经发现了两个扩展点:

org.eclipse.ui.ide.resourceFilters

让我来过滤导航

org.eclipse.jdt.ui .javaElementFilters

允许我过滤Java观看者

我期望Project Explorer有一个类似的扩展点,但到目前为止我还没有得到任何好运。

我试图导入org.eclipse.ui.navigator和org.eclipse.ui.navigator.resources,但我无法找到任何看起来很有趣的扩展点,无论是

我使用Eclipse 3.3.2为基础此RCP应用程序

谢谢!

回答

7

我找到了正确的组扩展点。这是我所期望的更多的痛苦,因为项目浏览器是通用导航器的专业化。

这是一个两步骤的过程:

  • 延伸org.eclipse.ui.navigator.navigatorContent

    • 添加公共过滤器来此扩展点。
    • 设置的名称和ID发送到过滤器
    • 实现与期望的逻辑滤波器观察者
  • 延伸org.eclipse.ui.navigator.viewer

    • 添加viewerContentBinding
    • 将内容ID设置为org.eclipse.ui.navigator.ProjectExplorer
    • 添加两个包含
    • 在第一添加包括相匹配的公共过滤器
    • 的id在第二一图案包括添加的ID org.eclipse.ui.navigator.resourceContent

然后,将过滤器被关联到共同的项目资源管理器

+0

@Mario:非常有趣;谢谢你的回答,尽管你可以详细一点;)。 +1 – VonC 2010-03-09 20:36:42

2

过滤器...为项目资源管理器视图?

上有一些长期存在的bug:

这可能requiere一些具体的发展(如建议this thread

你也许可以通过crea来实现这个创建一个扩展了ViewFilter的类并将您的类与项目浏览器相关联。

(注:FilterViewer为broken in Eclipse3.3.1,一些使用3.3.2这里是一个不错的主意)

+0

此评论给了一个提示。的确,它是通过扩展ViewFilter完成的。棘手的部分是获得正确的扩展点组合注册到项目浏览器。 – 2010-03-09 20:03:32

8

你去那里:

<extension point="org.eclipse.ui.navigator.navigatorContent"> 
    <commonFilter 
     description="Hides *.pj resources" 
     id="com.xyz.commonFilter.hidePj" 
     name="*.pj resources" 
     activeByDefault="true"> 
     <filterExpression> 
      <and> 
       <adapt type="org.eclipse.core.resources.IResource"> 
        <test property="org.eclipse.core.resources.name" value="*.pj"/> 
       </adapt> 
      </and> 
     </filterExpression> 
    </commonFilter> 
</extension> 
<extension point="org.eclipse.ui.navigator.viewer"> 
    <viewerContentBinding 
      viewerId="org.eclipse.ui.navigator.ProjectExplorer"> 
      <includes> 
      <contentExtension pattern="com.xyz.commonFilter.hidePj"/> 
      </includes> 
    </viewerContentBinding> 
</extension> 

不要忘了导入org.ec lipse.ui.navigator

+0

我完美地工作,很高兴你不需要创建一个班级。谢谢! – 2011-10-17 10:59:38

相关问题