Suchmaschine

org.eclipse.help.ui.searchEngine

3.1

Dieser Erweiterungspunkt wird verwendet, um Suchteilnehmer in die systemübergreifende Hilfesuchfunktion zu integrieren. Jede Suchmaschine kann individuell konfiguriert werden. Zu Beginn einer Suche werden die jeweiligen Suchmaschinen als Hintergrund-Job ausgeführt. Die Ergebnisse werden dann in der Hilfesicht direkt unter der Abfrage sortiert.

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.



<!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.



<!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.



<!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.



Die folgenden Angaben sind ein Beispiel für die Erweiterung der Hilfefunktionssuche:

   

<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}&amp;ul=&amp;ps=20&amp;m=all"

>

</param>

</engine>

</extension>

Das Attribut 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.

Das Plug-in für die Benutzerschnittstelle der Hilfefunktion stellt Suchmaschinentypen für die lokale Hilfedokumentation, das Infocenter und die Suche im Web sowie ein Suchmaschinenexemplar für die lokale Hilfefunktion zur Verfügung. Dieses Exemplar akzeptiert keine Parameter und hat keine Produkt-ID. Es wird daher in jedem Produkt angezeigt.

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=all

Internetsuchergebnisse werden als Link angezeigt, der den Web-Browser öffnet, wobei der Suchbegriff im Parameter url ersetzt ist.