Службы поиска, определенные здесь, будут задействованы как участники объединенного поиска только при наличии привязки к текущему продукту, либо при отсутствии атрибута productId
. Так, для данного продукта запускаются службы, привязанные к нему, и службы, не привязанные ни к одному продукту.
Службы поиска могут генерировать один URL возвращать его в href результата. Популярные службы поиска, для поддержки API которых требуется лицензия, можно подключить так. Службы поиска связываются с сервером и получают результаты с меткой, ссылкой, кратким описанием, счетом и т.д. Схема работы локальной службы справки такая же.
Независимо от механизма поиска, службы могут иметь возможность настройки с помощью страниц параметров JFace. К ним можно перейти по ссылке 'Дополнительные параметры' на панели Справка. К корневым страницам параметров можно подключать вложенные страницы с дополнительными параметрами.
Параметры области поиска загружаются и сохраняются с помощью объектов IPreferenceStore
. Параметры для всех служб собраны вместе в наборе областей. При первом открытии создается стандартный набор областей ('Default'), но пользователь может создавать и использовать свои наборы.
Т.к. поддержка объединенного поиска входит в модуль org.eclipse.help.base
, для создания объектов области поиска на основе данных хранилища параметров требуется фабрика. Клиенты, подключающие страницы параметров области поиска, должны также подключать фабрики области поиска.
Службы, определенные в этой точке расширения, по умолчанию не присутствуют в пользовательском интерфейсе. В нем показываются конкретные экземпляры служб поиска, которые могут быть отдельно изменены. Продукты могут поставлять предопределенные экземпляры зарегистрированных типов служб, возможно параметризованных. Кроме этого, пользователь может добавлять собственные экземпляры зарегистрированных служб.
<!ELEMENT extension (engineType* , engine*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
<!ELEMENT engineType (description? , subpage*)>
<!ATTLIST engineType
id CDATA #REQUIRED
label CDATA #REQUIRED
icon CDATA #IMPLIED
class CDATA #REQUIRED
pageClass CDATA #IMPLIED
scopeFactory CDATA #IMPLIED>
определяет тип службы поиска. Тип службы поиска можно использовать для создания настроенных экземпляров службы либо пользователем, либо загруженных заранее продуктом. Типы служб должны быть настраиваемыми, так чтобы используя один тип службы можно было бы создать ряд служб.
org.eclipse.help.search.ISearchEngine
. Этот класс отвечает за
поиск на основании данного запроса и области.org.eclipse.help.ui.RootScopePage
. Эта страница
содержит главный переключатель службы поиска и обычно применяется для содержания виджетов, которые ограничивают область поиска службы.org.eclipse.help.ui.ISearchScopeFactory
. Фабрика отвечает
за создание объектов ISearchScope из параметров, хранящихся в классе IPreferenceStore
. Если задан pageClass
,
фабрика областей также должна быть задана.<!ELEMENT description (#PCDATA)>
краткое описание службы поиска
<!ELEMENT subpage EMPTY>
<!ATTLIST subpage
id CDATA #REQUIRED
label CDATA #REQUIRED
class CDATA #IMPLIED
category CDATA #REQUIRED>
дочерняя страница корневой страницы параметров области, определенной в элементе engine
. Если атрибут службы
pageClass
не определен, вложенные страницы будут игнорироваться.
org.eclipse.help.ui.ISearchScopePage
.<!ELEMENT engine (description? , param*)>
<!ATTLIST engine
productId CDATA #IMPLIED
engineTypeId CDATA #REQUIRED
enabled (true | false)
label CDATA #IMPLIED
id CDATA #REQUIRED>
Задает настроенный экземпляр определенного типа службы поиска. Экземпляр может быть связан с продуктом, для того чтобы быть показанным только если продукт активен. Служба может иметь собственную метку и описание. Если они не заданы, то будут использованы данные типа службы. Наконец, каждый тип службы определяет допустимый набор параметров, с помощью которых ее можно настроить. Службы могут задавать значения этих параметров.
org.eclipse.core.runtime.Platform.getProduct()
). Если не указано, то эта служба появится во всех продуктах.true
, служба будет первоначально включена. Пользователи могут переопределить
это значение в UI.<!ELEMENT param EMPTY>
<!ATTLIST param
name CDATA #REQUIRED
value CDATA #REQUIRED>
необязательный параметр, который применяется для настройки этого экземпляра типа службы поиска. Допустимые параметры определяются типом службы.
<extension point=
"org.eclipse.help.ui.searchEngine"
>
<engineType scopeFactory=
"com.example.xyz.XYZScopeFactory"
label=
"XYZ Search"
class=
"com.example.xyz.search.XYZSearch"
icon=
"icons/etool16/xyzsearch.gif"
pageClass=
"com.example.xyz.search.XYZSearchPage"
id=
"com.example.xyz.XYZSearch"
>
<описание>
производит поиск по сайту XYZ.</description>
</engineType>
<engine enabled=
"true"
engineTypeId=
"com.example.xyz.search.XYZSearch"
id=
"com.example.xyz.XYZSearch"
label=
"XYZ Search"
>
</engine>
<engine enabled=
"true"
engineTypeId=
"org.eclipse.help.ui.web"
id=
"org.eclipse.sdk.Eclipse"
label=
"%search.Eclipse.label"
>
<описание>
%search.Eclipse.desc</description>
<param name=
"url"
value=
"http://eclipse.org/search/search.cgi?q={expression}&ul=&ps=20&m=all"
>
</param>
</engine>
</extension>
class
элемента engineType
должен предоставлять
полное имя класса, реализующего org.eclipse.help.search.ISearchEngine
. Атрибут pageClass
должен предоставлять
полное имя класса, расширяющего org.eclipse.help.ui.RootScopePage
. Атрибут scopeFactory
должен предоставлять
полное имя класса, реализующего org.eclipse.help.ui.ISearchScopeFactory
. Атрибут class
элемента subpage
должен предоставлять полное имя класса, реализующего org.eclipse.help.ui.ISearchScopePage
.
Продукты могут создавать настроенные экземпляры InfoCenter и Web-поиска, используя свои ИД службы и необходимые параметры.
Тип службы InfoCenter имеет engineId org.eclipse.help.ui.infoCenter
и принимает один параметр - url
,
который указывает на удаленный сервер, на котором установлен InfoCenter. Результаты отображаются таким же образом, как и
результаты локальной справки.
Тип службы Web-поиска имеет ИД службы org.eclipse.help.ui.web
и принимает один параметр - url
, который
представляет настроенный запрос поиска, в котором фактическая строка поиска заменена символом подстановки '{выражение}', как в
следующем примере:
http://eclipse.org/search/search.cgi?q={выражение}&ul=&ps=20&m=allРезультаты Web-поиска отображаются в виде одной ссылки, которая открывает web-браузер со строкой поиска, подставленной в параметре
url
.
Copyright (c) 2000, 2005 IBM Corporation и другие.
Все права защищены. Эта программа и сопутствующие материалы распространяются на условиях Eclipse Public License v1.0, поставляемой вместе с продуктом и доступной на Web-сайте
http://www.eclipse.org/legal/epl-v10.html