Java 在Eclipse中向Project Explorer添加筛选器

Java 在Eclipse中向Project Explorer添加筛选器,java,eclipse,eclipse-rcp,Java,Eclipse,Eclipse Rcp,我想向projectexplorer添加一个新的过滤器,以向用户隐藏在eclipsercp应用程序中自动创建的一些项目 到目前为止,我发现了两个扩展点: org.eclipse.ui.ide.resourceFilters 允许我过滤导航 org.eclipse.jdt.ui.javaElementFilters 允许我过滤Java查看器 我希望ProjectExplorer也有类似的扩展点,但到目前为止,我还没有得到它 我尝试导入org.eclipse.ui.navigator和org.ecl

我想向projectexplorer添加一个新的过滤器,以向用户隐藏在eclipsercp应用程序中自动创建的一些项目

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

org.eclipse.ui.ide.resourceFilters

允许我过滤导航

org.eclipse.jdt.ui.javaElementFilters

允许我过滤Java查看器

我希望ProjectExplorer也有类似的扩展点,但到目前为止,我还没有得到它

我尝试导入org.eclipse.ui.navigator和org.eclipse.ui.navigator.resources,但也找不到任何有趣的扩展点

我使用Eclipse3.3.2作为这个RCP应用程序的基础

谢谢

过滤器。。。对于Project Explorer视图

这上面有一些长期存在的错误:

  • (2008年)
  • (…2001!)
这可能需要一些具体的发展(如中所述)

您可能可以通过创建一个扩展
ViewFilter
的类并将您的类与项目浏览器关联来实现这一点


(注意:FilterWeber是,一些使用3.3.2的人在这里是个好主意)

我找到了正确的扩展点集。这比我预想的更痛苦,因为ProjectExplorer是CommonNavigator的一个专门化

这是一个分为两步的过程:

  • 扩展org.eclipse.ui.navigator.navigator内容

    • 将公共筛选器添加到此扩展点
    • 设置过滤器的名称和id
    • 使用所需的逻辑实现过滤器查看器
  • 扩展org.eclipse.ui.navigator.viewer

    • 添加viewerContentBinding
    • 将内容id设置为org.eclipse.ui.navigator.ProjectExplorer
    • 添加两个包含项
    • 在第一个包含中,添加与公共过滤器id匹配的图案
    • 在第二个包含中,添加id org.eclipse.ui.navigator.resourceContent
然后,过滤器与公共项目资源管理器相关联,即:

<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.eclipse.ui.navigatorpackage

这条评论给出了一个提示。实际上,这是通过扩展ViewFilter来实现的。棘手的部分是获得正确的扩展点组合,以便将其注册到项目浏览器。@Mario:非常有趣;谢谢你的回答,不过你可以再详细一点;)+1对我来说非常有效,很好,您不需要创建单个类。谢谢