问题
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 and 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!
回答1:
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
回答2:
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
回答3:
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)
来源:https://stackoverflow.com/questions/2396297/adding-a-filter-to-the-project-explorer-in-eclipse