De zoekmachines die hier zijn gedefinieerd worden pas automatisch als federatieve
zoekopdrachtdeelnemers afgebeeld wanneer een zoekmachine-product-binding tot stand is gebracht, tenzij het kenmerk
productId
niet gedefinieerd wordt. Zoekmachines waarvoor dit kenmerk wel is gedefinieerd en die
gebonden zijn aan een bepaald product, worden alleen afgebeeld wanneer dat product wordt uitgevoerd.
Zoekmachines kunnen eenvoudig een URL samenstellen en slechts één treffer aanleveren met die URL als href. Populaire zoekmachines waarvoor licenties nodig zijn om door de API te kunnen worden ondersteund, kunnen op deze wijze worden ingevoegd. Aan de andere kant kunnen zoekmachines communiceren met de server en afzonderlijke treffers ontvangen met gegevens als een label, href, korte beschrijving, score, enzovoort. De lokale Help-zoekmachine kan op die manier treffers genereren.
Ongeacht het zoekmechanisme kunt u diverse zoekbereikinstellingen voor zoekmachines configureren op de JFace-voorkeurenpagina's. Deze pagina's worden afgebeeld wanneer u op de link 'Geavanceerde instellingen' in de Help-view klikt. Naast de basisvoorkeurenpagina's die met de zoekmachine worden gedefinieerd, kunnen aanvullende subvoorkeurenpagina's voor meer geavanceerde instellingen worden ingevoegd.
Bereikinstellingen worden geladen en opgeslagen met IPreferenceStore
-objecten.
Bereikinstellingen voor alle zoekmachines worden gegroepeerd in een benoemde bereikset.
De eerste keer wordt een standaardbereikset ('Default') gemaakt, maar gebruikers kunnen
meer bereiksets definiëren en vervolgens van set wisselen.
Omdat federatieve zoekondersteuning deel uitmaakt van de plugin org.eclipse.help.base
,
is er een factory nodig om zoekbereikobjecten te maken op basis van de gegevens in het
voorkeurenarchief. Clients die bereikvoorkeurenpagina's willen invoegen moeten ook bereikfactory's invoegen.
Zoekmachines die in dit extensiepunt worden gedefinieerd, worden niet standaard in de gebruikersinterface afgebeeld. Wat hier is afgebeeld, is een concrete instance van een zoekmachine die afzonderlijk kan worden aangepast. In producten kan het Help-systeem vooraf worden geconfigureerd met een aantal instances van de geregistreerde zoekmachinetypen, die mogelijk geparametriseerd zijn om te worden uitgevoerd volgens een gewenst gedragspatroon. Daarnaast kunnen gebruikers zelf instances van de geregistreerde zoekmachines toevoegen en deze naar wens configureren.
<!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>
definieert een bepaald type zoekmachine. Het zoekmachinetype kan worden gebruikt om concrete zoekmachine-instances te maken per gebruiker of deze vooraf te laden per product. Om bruikbaar te zijn, moeten zoekmachinetypen configureerbaar zijn zodat een aantal zoekmachines kan worden gemaakt met behulp van een enkel zoekmachinetype.
org.eclipse.help.search.ISearchEngine
implementeert. De klasse is verantwoordelijk voor het zoeken op basis van een bepaalde query en een bepaald bereik.org.eclipse.help.ui.RootScopePage
omvat. Deze pagina bevat de hoofdschakelaar voor de zoekmachine en wordt meestal gebruikt om widgets te hosten die worden gebruikt om het zoekbereik voor de zoekmachine te beperken.org.eclipse.help.ui.ISearchScopeFactory
implementeert. De factory is verantwoordelijk voor het maken van ISearchScope-objecten van instellingen die zijn opgeslagen in IPreferenceStore
class. Als pageClass
is opgegeven, moet de scopefactory ook worden opgegeven.<!ELEMENT description (#PCDATA)>
Een korte beschrijving van de zoekmachine
<!ELEMENT subpage EMPTY>
<!ATTLIST subpage
id CDATA #REQUIRED
label CDATA #REQUIRED
class CDATA #IMPLIED
category CDATA #REQUIRED>
Een onderliggende pagina naar de hoofdbereikvoorkeurenpagina die is gedefinieerd in het element engine
. Als het zoekmachinekenmerk pageClass
niet gedefinieerd is, worden subpagina's genegeerd.
org.eclipse.help.ui.ISearchScopePage
implementeert.<!ELEMENT engine (description? , param*)>
<!ATTLIST engine
productId CDATA #IMPLIED
engineTypeId CDATA #REQUIRED
enabled (true | false)
label CDATA #IMPLIED
id CDATA #REQUIRED>
Hiermee wordt een concrete instance van een bepaald zoekmachinetype opgegeven. Deze instance kan gekoppeld zijn aan het product en verschijnt alleen als dat product actief is. De zoekmachine kan een eigen label en beschrijving hebben. Als u niets opgeeft, worden de gegevens van het zoekmachinetype gebruikt. Tenslotte wordt met elk zoekmachinetype een geldige set parameters gedefinieerd die kunnen worden doorgegeven om de zoekmachine te configureren. Zoekmachines kunnen waarden voor deze parameters opgeven.
org.eclipse.core.runtime.Platform.getProduct()
). Als deze waarde niet is opgegeven, verschijnt de zoekmachine voor alle producten.true
is, wordt de zoekmachine aanvankelijk ingeschakeld. Gebruikers kunnen deze waarde vervangen in de gebruikersinterface.<!ELEMENT param EMPTY>
<!ATTLIST param
name CDATA #REQUIRED
value CDATA #REQUIRED>
een optionele parameter die wordt gebruikt om deze instance van een zoekenginetype te configureren. Geldige parameters worden gedefinieerd per zoekmachinetype.
<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 van XYZ Search zoeken in de site 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"
>
<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
van het element engineType
moet een volledig gekwalificeerde naam bevatten van de klasse die org.eclipse.help.search.ISearchEngine
implementeert. Het kenmerk pageClass
moet een volledig gekwalificeerde naam bevatten van de klasse die org.eclipse.help.ui.RootScopePage
uitbreidt. Het kenmerk scopeFactory
moet een volledig gekwalificeerde naam bevatten van de klasse die org.eclipse.help.ui.ISearchScopeFactory
implementeert.
Het kenmerk class
van het element subpage
moet een volledig gekwalificeerde naam bevatten van een klasse die org.eclipse.help.ui.ISearchScopePage
implementeert.
Producten kunnen concrete instances van InfoCenter en zoekopdrachten voor internet maken met behulp van hun zoekmachine-ID en de vereiste parameters.
Het zoekmachinetype voor het Informatiecentrum heeft zoekmachine-IDorg.eclipse.help.ui.infoCenter
en accepteert een parameter url
die verwijst naar de server op afstand waarop het Informatiecentrum is geïnstalleerd. De resultaten worden op dezelfde manier afgebeeld als de lokale Help-resultaten.
Het zoekmachinetype voor internet heeft zoekmachine-ID org.eclipse.help.ui.web
en accepteert een parameter url
die een concrete zoekquery vertegenwoordigt waarbij de daadwerkelijk zoekreeks wordt vervangen door een vervangingssymbool '{expression}', zoals in het volgende voorbeeld:
http://eclipse.org/search/search.cgi?q={expression}&ul=&ps=20&m=allInternetzoekresultaten worden afgebeeld als een link waarmee de webbrowser wordt geopend en de zoekreeks in de parameter
url
wordt vervangen.
Copyright (c) 2000, 2005 IBM Corporation en anderen.
Alle rechten voorbehouden. Dit programma en het begeleidende materiaal zijn beschikbaar gesteld onder de voorwaarden van de Eclipse Public License v1.0 die bij deze distributie is geleverd en beschikbaar is op http://www.eclipse.org/legal/epl-v10.html.