package com.python.pydev.analysis.search_index; import org.eclipse.jface.viewers.TreeViewer; import org.python.pydev.shared_core.structure.TreeNodeContentProvider; import org.python.pydev.shared_ui.ImageCache; import org.python.pydev.shared_ui.SharedUiPlugin; import org.python.pydev.shared_ui.UIConstants; import org.python.pydev.shared_ui.search.AbstractSearchIndexResultPage; import org.python.pydev.shared_ui.search.AbstractSearchResultsViewerFilter; import org.python.pydev.shared_ui.search.GroupByAction; /** * Show line matches when viewing in table * Filtering through this UI without requiring a new search */ public class PySearchIndexResultPage extends AbstractSearchIndexResultPage { public PySearchIndexResultPage() { ImageCache imageCache = SharedUiPlugin.getImageCache(); fGroupByActions = new GroupByAction[] { new GroupByAction(this, PySearchIndexTreeContentProvider.GROUP_WITH_PROJECT, imageCache.getDescriptor(UIConstants.PROJECT_ICON), "Group: Projects"), new GroupByAction(this, PySearchIndexTreeContentProvider.GROUP_WITH_MODULES, imageCache.getDescriptor(UIConstants.FOLDER_PACKAGE_ICON), "Group: Packages"), new GroupByAction(this, PySearchIndexTreeContentProvider.GROUP_WITH_FOLDERS, imageCache.getDescriptor(UIConstants.FOLDER_ICON), "Group: Folders"), }; } @Override protected AbstractSearchResultsViewerFilter createFilterFilter(String text, boolean wholeWord) { return new PySearchResultsViewerFilter(text, wholeWord); }; @Override protected TreeNodeContentProvider createTreeContentProvider(TreeViewer viewer) { return new PySearchIndexTreeContentProvider(this, viewer); } @Override protected String getFilterText() { return "F&ilter module names"; } @Override protected String getFilterHelp() { return "Filters applied to module names (i.e.: my.pack.mod)\n" + "comma-separated\n" + "* = any string\n" + "? = any char\n" + "!x = negates x\n" + "\n" + "i.e.: my.pack*, !*.test*"; } }