Common filter makes contents of unfilter projects disappearing [message #330455] |
Tue, 29 July 2008 13:51 |
Eclipse User |
|
|
|
Originally posted by: longhong1985.gmail.com
Hello. I am now using CNF to design a navigator view. I want the view to
show only a kind of IProject which contains my own IProjectNature(named
BSProjectNature). My filter is as following:
<extension
point="org.eclipse.ui.navigator.navigatorContent">
<commonFilter
activeByDefault="true"
id="org.opensuse.bs.ui.filters.hideNonBSProject"
name="Hide Non BS-Project">
<filterExpression>
<not>
<adapt
type="org.eclipse.core.resources.IProject">
<test
property="org.eclipse.core.resources.projectNature"
value="org.opensuse.bs.ui.bsprojectnature">
</test>
</adapt>
</not>
</filterExpression>
</commonFilter>
</extension>
The filter works, filtering all the non-bsproject. But it also makes
bsprojects to be just IProject nodes-folders and files of a bsproject
cannot be seen in the navigator then! I don't know why...Can anyone help?
|
|
|
Re: Common filter makes contents of unfilter projects disappearing [message #330457 is a reply to message #330455] |
Tue, 29 July 2008 14:31 |
Eclipse User |
|
|
|
Originally posted by: longhong1985.gmail.com
Instead of using org.eclipse.core.expression in the Common filter, I
extends the ViewerFilter to filter nessesary IProjects. The MyViewFilter
just do the same work as the expression:
public class NonBSProjectFilter extends ViewerFilter {
public boolean select(Viewer viewer, Object parentElement, Object
element) {
if(element instanceof IProject) {
IProject project = (IProject) element;
try {
if(project.hasNature("org.opensuse.bs.ui.bsprojectnature")) {
return true;
}
else {
return false;
}
}catch(CoreException e) {
e.printStackTrace();
}
}
return true;
}
}
MyViewFilter doesn't filter elements of bsprojects. I don't know why
expression filters elements of bsprojects.
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04000 seconds