将过滤器添加到Eclipse中的Project Explorer

Mar*_*gón 7 java eclipse eclipse-rcp

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

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

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应用程序的基础

谢谢!

小智 9

你去:

<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>
Run Code Online (Sandbox Code Playgroud)

不要忘记导入org.eclipse.ui.navigator


Mar*_*gón 7

我找到了正确的扩展点集.这更像是我所期待的痛苦,因为Project Explorer是常见导航器的专业化.

这是一个两步过程:

  • 扩展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

然后,过滤器与常见的Project Explorer相关联