Suchmaschinen, die hier definiert sind, werden nicht automatisch als Teilnehmer an der Suche nach Verbundinformationen angezeigt, bis die Suchmaschinenproduktbindung etabliert ist, es sei denn, das Attribut
productId
wird nicht definiert. Für Suchmaschinen, die eine solche Definition aufweisen, werden nur diejenigen angezeigt, die an ein bestimmtes Produkt gebunden sind, wenn das entsprechende Produkt aktiv ist.
Suchmaschinen können einfach eine URL erstellen und nur einen Treffer mit dieser URL als "href" bereitstellen. Gängige Suchmaschinen, die für eine API-Unterstützung eine Lizenz erfordern, können auf diese Weise per Plug-in integriert werden. Am anderen Ende des Spektrums können Suchmaschinen mit dem Server kommunizieren und einzelne Treffer mit Informationen wie z.B. Beschreibung, href, Kurzbeschreibung, Ergebnis, etc. empfangen. Lokale Hilfskomponenten können auf diese Weise Treffer generieren.
Unabhängig vom Suchmechanismus können Suchmaschinen mithilfe von JFace-Benutzervorgabenseiten verschiedene Einstellungen für den Suchbereich bereitstellen. Diese Seiten werden angezeigt, wenn der Link "Erweiterte Einstellungen" in der Hilfesicht aktiviert wird. Zusätzlich zu den mit der Suchmaschine definierten Stammvorgabeseiten können für erweiterte Einstellungen weitere Sub-Seiten für Benutzervorgaben integriert werden.
Suchbereichseinstellungen werden anhand von Objekten des Typs IPreferenceStore
geladen und gespeichert. Suchbereichseinstellungen für alle Suchmaschinen werden unter einer benannten Suchbereichsgruppe zusammengefasst. Bei ersten Öffnen wird die Standardsuchbereichsgruppe ("Default") erstellt, aber Benutzer können weitere Suchbereichsgruppen definieren und zwischen diesen hin- und herwechseln.
Da eine Unterstützung der Suche nach Verbundinformationen Teil des Plug-ins org.eclipse.help.base
ist, wird eine Factory benötigt, um Suchbereichsobjekte aus den Daten im Benutzervorgabespeicher zu erstellen. Clients, die Benutzervorgabenseiten für den Suchbereich integrieren, müssen ebenfalls Suchbereichs-Factorys integrieren.
In diesem Erweiterungspunkt definierte Suchmaschinen werden standardmäßig nicht in der Benutzerschnittstelle angezeigt. Dort wird ein konkretes Exemplar einer Suchmaschine angezeigt, das individuell geändert werden kann. Produkte können die Hilfefunktion mit einer Vielzahl von Exemplaren des registrierten Suchmaschinentyps vorkonfigurieren, möglicherweise mit Parameterangaben, so dass sie sich auf eine gewünschte Art und Weise verhalten. Darüber hinaus können Benutzer eigene Exemplare der registrierten Suchmaschinen hinzufügen und diese nach Belieben konfigurieren.
<!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>
Definiert einen bestimmten Typ für eine Suchmaschine. Mit Suchmaschinentypen können konkrete Exemplare der Suchmaschine entweder durch den Benutzer erstellt oder durch das Produkt vorinstalliert werden. Diese Typen sind jedoch nur dann sinnvoll, wenn sie konfiguriert werden können, damit ausgehend von einem einzigen Suchmaschinentyp eine Reihe von Suchmaschinen erstellt werden können.
org.eclipse.help.search.ISearchEngine
implementiert.Die Klasse ist dafür zuständig, die Suche basierend auf einer bestimmten Abfrage und auf einem angegebenen Bereich auszuführen. org.eclipse.help.ui.RootScopePage
erweitert. Diese Seite enthält die Hauptumschaltfunktion für die Suchmaschine und wird normalerweise als Position für Fensterobjekte verwendet, mit denen der Suchbereich für die Maschine eingegrenzt wird. org.eclipse.help.ui.ISearchScopeFactory
implementiert. Die Factory ist für die Erstellung von Objekten "ISearchScope" aus den Einstellungen zuständig, die in der Klasse IPreferenceStore
gespeichert sind. Falls pageClass
angegeben ist, muss die Bereichsfactory ebenfalls angegeben werden. <!ELEMENT description (#PCDATA)>
Eine Kurzbeschreibung der Suchmaschine.
<!ELEMENT subpage EMPTY>
<!ATTLIST subpage
id CDATA #REQUIRED
label CDATA #REQUIRED
class CDATA #IMPLIED
category CDATA #REQUIRED>
Eine untergeordnete Seite der Stammbenutzervorgabenseite für den Bereich, die im Element engine
definiert ist. Falls das Attribut pageClass
nicht definiert ist, werden untergeordnete Seiten ignoriert.
org.eclipse.help.ui.ISearchScopePage
implementiert. <!ELEMENT engine (description? , param*)>
<!ATTLIST engine
productId CDATA #IMPLIED
engineTypeId CDATA #REQUIRED
enabled (true | false)
label CDATA #IMPLIED
id CDATA #REQUIRED>
Gibt ein konkretes Exemplar eines bestimmten Suchmaschinentyps an. Das Exemplar kann an das Produkt gebunden werden, damit es nur dann angezeigt wird, wenn das Produkt aktiv ist. Maschinen können eigene Bezeichnungen und Beschreibungen haben. Werden diese nicht angegeben, werden die Daten für den Maschinentyp verwendet. Schließlich definiert jeder Maschinentyp eine gültige Gruppe von Parametern, durch deren Übergabe die Konfiguration des Maschinentyps möglich ist. Maschinen können Werte dieser Parameter angeben.
org.eclipse.core.runtime.Platform.getProduct()
definiert) geeignet ist. Falls er nicht angegeben ist, wird die Maschine für alle Produkte angezeigt. true
hat, ist die Maschine anfänglich aktiviert. Benutzer können diesen Wert in der Benutzerschnittstelle überschreiben. <!ELEMENT param EMPTY>
<!ATTLIST param
name CDATA #REQUIRED
value CDATA #REQUIRED>
Mit diesem optionalen Parameter wird dieses Exeplar eines Suchmaschinentyps konfiguriert. Die gültigen Parameter werden durch den Maschinentyp definiert.
<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"
>
<description>
Instances of XYZ Search search the XYZ site.</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"
>
<description>
%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
des Elements engineType
muss den vollständig qualifizierten Namen der Klasse bereitstellen, die org.eclipse.help.search.ISearchEngine
implementiert. Das Attribut pageClass
muss den vollständig qualifizierten Namen der Klasse bereitstellen, die org.eclipse.help.ui.RootScopePage
erweitert. Das Attribut scopeFactory
muss den vollständig qualifizierten Namen der Klasse bereitsteleln, die org.eclipse.help.ui.ISearchScopeFactory
implementiert.
Das Attribut class
für das Element subpage
muss den vollständig qualifizierten Namen einer Klasse bereitstellen, die org.eclipse.help.ui.ISearchScopePage
implementiert.
Produkte können konkrete Exemplare für die Suche im Infocenter und im Web erstellen, indem sie ihre Maschinen-ID und die erforderlichen Parameter verwenden.
Der Maschinentyp für das Infocenter hat die Maschinen-ID org.eclipse.help.ui.infoCenter
und akzeptiert 1 Parameter url
, der auf den fernen Server zeigt, auf dem das Infocenter installiert ist. Ergebnisse werden genauso wie für die lokale Hilfe angezeigt.
Der Typ für die Internetsuchmaschine hat die Maschinen-ID org.eclipse.help.ui.web
und akzeptiert 1 Parameter url
, der eine konkrete Suchabfrage darstellt, bei der der tatsächliche Suchbegriff durch das Substitutionssymbol '{expression}' ersetzt ist. Dies ist im folgenden Beispiel dargestellt:
http://eclipse.org/search/search.cgi?q={expression}&ul=&ps=20&m=allInternetsuchergebnisse werden als Link angezeigt, der den Web-Browser öffnet, wobei der Suchbegriff im Parameter
url
ersetzt ist.
Copyright (c) 2000, 2005 IBM Corporation und Andere.
Alle Rechte vorbehalten. Dieses Programm und sein Begleitmaterial werden gemäß den Bedingungen der "Eclipse Public License v1.0" zur Verfügung gestellt, die dieser Lieferung beiliegt und unter
http://www.eclipse.org/legal/epl-v10.html abgerufen werden kann.