De søgeprogrammer, der defineres her, vises ikke automatisk som fødererede søgedeltagere, før programproduktbindingen er etableret, medmindre attributten
productId
ikke er defineret. For de programmer, der definerer denne attribut, er det kun dem, der er bundet til et bestemt produkt, som vises, når produktet kører.
Søgeprogrammer kan blot sammensætte en URL og kun stille en forekomst til rådighed, der indeholder den pågældende URL som href. Populære søgeprogrammer, hvortil API-understøttelse kræver licens, kan installeres på denne måde. I den anden ende af spektrummet kan søgeprogrammer kommunikere med serveren og modtage individuelle forekomster med oplysninger om f.eks. etiket, href, kort beskrivelse og antal forekomster osv. Et lokalt hjælpeprogram kan producere forekomster på denne måde.
Uanset søgemekanismen kan programmer stille forskellige søgeomfangsindstillinger til rådighed vha. JFace-indstillingssiden. Disse sider vises, når linket 'Udvidede indstillinger' følges fra oversigten Hjælp. Foruden de rodindstillingssider, der er defineret med programmet, kan yderligere indstillingsundersider installeres i de udvidede indstillinger.
Omfangsindstillinger indlæses og lagres vha. IPreferenceStore
-objekter. Omfangsindstillinger for alle programmer grupperes sammen under et navngivet omfangssæt. Første gang det åbnes, oprettes standardomfangssættet ('Standard'), men brugere kan definere flere omfangssæt og skifte frem og tilbage mellem dem.
Da fødereret søgeunderstøttelse er en del af org.eclipse.help.base
-plugin'en, kræves der en fabrik til at oprette søgeomfangsobjekter fra dataene i indstillingslageret. Klienter, der installerer omfangsindstillingssider, skal også installere omfangsfabrikker.
Programmer, der defineres i dette udvidelsespunkt, vises ikke som standard i grænsefladen. Det, der vises der, er en konkret forekomst af hvert program, der kan ændres individuelt. Produkter kan forudkonfigurere hjælpen med et antal forekomster af de registrerede programtyper, muligvis med angivelse af parametre, så det fungerer på en bestemt måde. Desuden kan brugere tilføje deres egne forekomster af registrerede programmer og konfigurere dem efter behov.
<!ELEMENT extension (engineType* , engine*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
navn 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>
Definerer en bestemt type søgeprogram. Søgeprogramtypen kan anvendes til at oprette konkrete programforekomster af brugeren eller forudindlæste, der kommer med produktet. For at være nyttige, skal programtyper kunne konfigureres, så et antal programmer kan oprettes vha. en enkelt programtype.
org.eclipse.help.search.ISearchEngine
. Denne klasse er ansvarlig for søgning baseret på en given forespørgsel og et givet omfang. org.eclipse.help.ui.RootScopePage
. Denne side indeholder master-switch'en for søgeprogrammet og anvendes typisk som vært for widgets, der anvendes til at indsnævre søgeomfanget for programmet. org.eclipse.help.ui.ISearchScopeFactory
. Fabrikken er ansvarlig for oprettelse af ISearchScope-objekter fra indstillinger, der er gemt i klassen IPreferenceStore
. Hvis pageClass
er angivet, skal omfangsfabrikken også angives. <!ELEMENT description (#PCDATA)>
En kort beskrivelse af søgeprogrammet
<!ELEMENT subpage EMPTY>
<!ATTLIST subpage
id CDATA #REQUIRED
label CDATA #REQUIRED
class CDATA #IMPLIED
category CDATA #REQUIRED>
En underordnet side til indstillingssiden for rodomfang, der er defineret i elementet engine
. Hvis programattributten pageClass
ikke er defineret, ignoreres underordnede sider.
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>
Angiver en konkret forekomst af en bestemt søgeprogramtype. Forekomsten kan bindes til produktet for kun at blive vist, når produktet er aktivt. Programmet kan have sin egen etiket og beskrivelse. Hvis disse ikke er angivet, anvendes programtypens data. Endelig angiver søgeprogramtypen et gyldigt sæt parametre, der kan overføres til den for at konfigurere den. Programmer kan angive værdier for disse parametre.
org.eclipse.core.runtime.Platform.getProduct()
). Hvis den ikke er angivet, vil programmet vises for alle produkter. true
, er programmet initialt aktiveret. Brugere kan overskrive denne værdi i UI.<!ELEMENT param EMPTY>
<!ATTLIST param
name CDATA #REQUIRED
value CDATA #REQUIRED>
En valgfri parameter, der anvendes til at konfigurere denne forekomst af søgeprogramtypen. Gyldige parametre er defineret af programtypen.
<extension point=
"org.eclipse.help.ui.searchEngine"
>
<engineType scopeFactory=
"com.example.xyz.XYZScopeFactory"
label=
"XYZ-søgning"
class=
"com.example.xyz.search.XYZSearch"
icon=
"icons/etool16/xyzsearch.gif"
pageClass=
"com.example.xyz.search.XYZSearchPage"
id=
"com.example.xyz.XYZSearch"
>
<beskrivelse>
Forekomster af XYZ-søgning gennemsøger XYZ-webstedet.</description>
</engineType>
<engine enabled=
"true"
engineTypeId=
"com.example.xyz.search.XYZSearch"
id=
"com.example.xyz.XYZSearch"
label=
"Søg efter XYZ"
>
</engine>
<engine enabled=
"true"
engineTypeId=
"org.eclipse.help.ui.web"
id=
"org.eclipse.sdk.Eclipse"
label=
"%search.Eclipse.label"
>
<beskrivelse>
%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
for elementet engineType
skal indeholde et fuldstændigt navn på den klasse, der implementererorg.eclipse.help.search.ISearchEngine
. Attributten pageClass
skal indeholde et fuldstændigt navn på den klasse, der udvider org.eclipse.help.ui.RootScopePage
. Attributten scopeFactory
skal indeholde et fuldstændigt navn på den klasse, der implementerer org.eclipse.help.ui.ISearchScopeFactory
.
Attributten class
for elementet subpage
skal indeholde et fuldstændigt navn på en klasse, der implementerer org.eclipse.help.ui.ISearchScopePage
.
Produkter kan oprette konkrete forekomster af InfoCenter og websøgninger ved at bruge deres program-id og de påkrævede parametre.
InfoCenter-programtypen har engineId org.eclipse.help.ui.infoCenter
og acceptere én parameter-url
, der peger på den eksterne server, hvor InfoCenter er installeret. Resultater vises på samme måde som de lokale hjælperesultater.
Websøgeprogramtypen har program-id'en org.eclipse.help.ui.web
og accepterer én parameter url
, der repræsenterer en konkret søgeforespørgsel, hvor den aktuelle søgestreng erstattes af et substitutionssymbol '{udtryk}' som i det følgende eksempel:
http://eclipse.org/search/search.cgi?q={expression}&ul=&ps=20&m=allWebsøgeresultater vises om ét link, der åbner webbrowseren, hvor søgestrengen er erstattet i
url
-parameteren.
Copyright (c) 2000, 2005 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made
available under the terms of the Eclipse Public License v1.0 which accompanies
this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html