I want to add a new filter to the Project Explorer, to hide from the user some projects that are created automatically in an Eclipse RCP Application.
So far I've found two extension points:
org.eclipse.ui.ide.resourceFilters
Allows me to filter Navigation
org.eclipse.jdt.ui.javaElementFilters
Allows me to filter the Java Viewers
I expect there is a similar extension point for the Project Explorer, but so far I haven't had any luck getting it.
I tried importing org.eclipse.ui.navigator an开发者_高级运维d org.eclipse.ui.navigator.resources but I could not find any interesting looking extension point either
I am using Eclipse 3.3.2 as the basis for this RCP Application
Thanks!
There you go:
<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>
Don't forget to import org.eclipse.ui.navigator package
I found the right set of extension points. It is more of a pain that I expected, because the Project Explorer is a specialization of the common navigator.
This is a two-step process:
extend org.eclipse.ui.navigator.navigatorContent
- Add a common filter to this extension point.
- Set a name and id to the filter
- Implement the filter viewer with the desired logic
extend org.eclipse.ui.navigator.viewer
- Add a viewerContentBinding
- Set the content id to org.eclipse.ui.navigator.ProjectExplorer
- Add two includes
- In the first include add a patter that matches the id of the common filter
- In the second include add the id org.eclipse.ui.navigator.resourceContent
And then, the filter is associated to the common Project Explorer
Filters... for the Project Explorer view?
There are some long standing bugs on that:
- bug 226046:
CommonNavigator
, add "Name filter patterns" freetext filter (2008) - bug 1970: initially same request from the Navigation View (... 2001!)
That may requiere some specific development (as suggested in this thread)
you could probably accomplish this by creating a class that extends
ViewFilter
and associating your class with the project explorer.
(Note: FilterViewer were broken in Eclipse3.3.1, some using 3.3.2 here is a good idea)
精彩评论