package com.python.pydev.analysis.search_index; import org.eclipse.jface.viewers.Viewer; import org.python.pydev.shared_core.structure.TreeNode; import org.python.pydev.shared_ui.search.AbstractSearchResultsViewerFilter; public class PySearchResultsViewerFilter extends AbstractSearchResultsViewerFilter { public PySearchResultsViewerFilter(String text, boolean wholeWord) { super(text, wholeWord); } @Override public boolean isLeafMatch(Viewer viewer, Object element) { if (element instanceof PyModuleMatch) { PyModuleMatch moduleMatch = (PyModuleMatch) element; element = moduleMatch.getLineElement(); } if (element instanceof TreeNode<?>) { element = ((TreeNode<?>) element).data; } if (element instanceof PyModuleLineElement) { PyModuleLineElement moduleLineElement = (PyModuleLineElement) element; String moduleName = moduleLineElement.modulesKey.name; if (filterMatches(moduleName, stringMatcher)) { return true; } return false; } if (element instanceof PyCustomModule) { PyCustomModule package1 = (PyCustomModule) element; String moduleName = package1.modulesKey.name; if (filterMatches(moduleName, stringMatcher)) { return true; } return false; } // If not PyModuleLineElement nor PyCustomModule it's a folder/project, so, // never a leaf match. return false; } }