Когда пользователь выделяет ресурс и выбирает команду поиска, модуль поиска вызывает окно, в котором содержатся страницы для различного поиска по содержимому. Эти страницы добавляются с помощью точки расширения org.eclipse.search.searchPages.
Текст для добавления страницы поиска прост. Следующий пример - это добавление страницы поиска Java модулем JDT:
<extension point="org.eclipse.search.searchPages"> <page id="org.eclipse.jdt.ui.JavaSearchPage" icon="icons/full/obj16/jsearch_obj.png" label="%JavaSearchPage.label" sizeHint="460,160" extensions="java:90, jav:90" showScopeSection="true" canSearchEnclosingProjects="true" class="org.eclipse.jdt.internal.ui.search.JavaSearchPage"> </page> </extension>
Следует указать класс, реализующий страницу поиска. В этом классе должен содержаться интерфейс ISearchPage и, как правило, расширение DialogPage. Кроме того, следует указать метку и значок, описывающие поиск в окне поиска. Размер страницы и расположение ее в окне поиска управляется с помощью дополнительных параметров.
Атрибут extensions задает ресурсы, по которым будет вестись поиск. Он форматирован как список расширений файлов, разделенный запятыми. Перед каждым расширением файла через двоеточие должен стоять вес - числовое значение. 0 - минимальный вес. Весовое значение - это относительное значение, с помощью которого инфраструктура поиска может искать страницы, наиболее подходящие заданному ресурсу.
Если необходимо искать все возможные ресурсы, то ставится "*".
Протокол для ISearchPage достаточно прост. Для страницы поиска следует реализовать performAction()
, который вызывается при нажатии кнопки Поиск. Конечно, реализация поиска зависит от функций вашего модуля, но обычно результаты поиска открываются с помощью метода activateSearchResultView(). класса NewSearchUI
За отображение результатов поиска в соответствующей панели отвечает модуль.