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

时间:2010-03-07 12:58:36

标签: java eclipse eclipse-rcp

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

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

org.eclipse.ui.ide.resourceFilters

允许我过滤导航

org.eclipse.jdt.ui.javaElementFilters

允许我过滤Java查看器

我希望项目资源管理器有一个类似的扩展点,但到目前为止我还没有运气好。

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

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

谢谢!

3 个答案:

答案 0 :(得分: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.eclipse.ui.navigator

答案 1 :(得分: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

相关联

答案 2 :(得分:2)

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

有一些长期存在的错误:

这可能需要某些特定的开发(如this thread中所述)

  

您可以通过创建一个扩展ViewFilter的类并将您的类与项目资源管理器相关联来实现此目的。

(注意:FilterViewer是broken in Eclipse3.3.1,有些人使用3.3.2这是个好主意)