Hakuohjelma

org.eclipse.help.ui.searchEngine

3.1

Tämän laajennuspisteen avulla lisätään haun osapuolia hajautettuun ohjehakuun. Kunkin hakuohjelman voi määrittää yksilöllisesti. Kun haku aloitetaan, kukin hakuohjelma ajetaan tausta-ajossa ja tulokset kootaan ohjenäkymään kyselyn alle.

Tässä määritetyt hakuohjelmat eivät näy hajautetun haun osapuolina automaattisesti, ennen kuin ohjelman tuotesidonta toteutetaan, paitsi jos productId-määritettä ei määritetä. Niiden ohjelmien osalta, joissa se määritetään, vain tiettyyn tuotteeseen sidotut ohjelmat näkyvät, kun kyseinen tuote on ajossa.

Hakuohjelmat voivat yksinkertaisesti koostaa URL-osoitteen ja tuottaa vain yhden osuman, joka sisältää kyseisen URL-osoitteen href-tunnisteena. Suositut hakuohjelmat, joiden API-tuki edellyttää lisenssiä, voi lisätä tällä tavalla. Toisaalta hakuohjelmat voivat viestiä palvelimen kanssa ja vastaanottaa yksittäisiä osumia, joissa on sellaisia tietoja kuin nimiö, href, lyhyt kuvaus, pistemäärä ja niin edelleen. Paikallinen ohjetoiminto voi tuottaa osumia tällä tavalla.

Hakumenetelmästä huolimatta hakuohjelmissa voi käyttää erilaisia hakualueiden asetuksia JFace-oletusasetussivujen avulla. Nämä sivut tulevat näkyviin, kun seuraat Ohje-näkymän Lisäasetukset-linkkiä. Ohjelmaan määritettyjen perusoletusasetussivujen lisäksi voi lisätä uusia oletusasetusten alisivuja, joissa on lisäasetuksia.

Alueiden asetukset ladataan ja tallennetaan IPreferenceStore-objektien avulla. Kaikkien ohjelmien vaikutusalueiden asetukset ryhmitellään yhteen nimetyn aluejoukon alaisuuteen. Ensimmäisen avauksen yhteydessä luodaan oletusarvoinen aluejoukko ('Default'), mutta käyttäjät voivat määrittää enemmän joukkoja ja valita niiden välillä.

Koska hajautetun haun tuki on osa org.eclipse.help.base-lisäosaa, hakualueobjektien luonti oletusasetusten varaston tiedoista edellyttää factory-metodia. Työasemien, jotka liittyvät alueen oletusasetussivuihin, on liityttävä myös alueen factory-metodeihin.

Tässä laajennuspisteessä määritetyt ohjelmat eivät näyt käyttöliittymässä oletusarvon mukaan. Käyttöliittymässä on näkyvissä hakuohjelman konkreettinen ilmentymä, jota voi muokata yksilöllisesti. Tuotteet voivat määrittää ohjejärjestelmään ennalta joukon rekisteröidyn ohjelman lajien ilmentymiä, joiden parametreja on voitu muokata niin, että ne toimivat halutulla tavalla. Lisäksi käyttäjät voivat lisätä omat ilmentymänsä rekisteröidyistä ohjelmista ja määrittää ne tarpeitaan vastaaviksi.

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

Määrittää tietynlajisen hakuohjelman. Käyttäjä voi käyttää hakuohjelman lajia konkreettisten ohjelman ilmentymien luontiin, tai tuote voi esiladata ilmentymät. Jotta ohjelmien lajit olisivat hyödyllisiä, niiden kokoonpanon tulee olla määritettävissä. Näin useita ohjelmia voi luoda käyttämällä yhtä ohjelman lajia.



<!ELEMENT description (#PCDATA)>

Hakuohjelman lyhyt kuvaus



<!ELEMENT subpage EMPTY>

<!ATTLIST subpage

id       CDATA #REQUIRED

label    CDATA #REQUIRED

class    CDATA #IMPLIED

category CDATA #REQUIRED>

Elementissä engine määritetyn juurihakualueen oletusasetussivun alisivu. Jos pageClass-ohjelmamääritettä ei ole määritetty, alisivut ohitetaan.



<!ELEMENT engine (description? , param*)>

<!ATTLIST engine

productId    CDATA #IMPLIED

engineTypeId CDATA #REQUIRED

enabled      (true | false)

label        CDATA #IMPLIED

id           CDATA #REQUIRED>

Määrittää tietyn hakuohjelman lajin konkreettisen ilmentymän. Ilmentymä voidaan sitoa tuotteeseen niin, että se näkyy vain, kun kyseinen tuote on toiminnassa. Ohjelmalla voi olla oma nimiönsä ja kuvauksensa. Jos kohtaa ei määritetä, käytetään ohjelman lajitietoja. Kukin ohjelman laji määrittää joukon kelvollisia parametreja, jotka ohjelmaan välittämällä voidaan määrittää ohjelman kokoonpano. Ohjelmat voivat määrittää kyseisten parametrien arvoja.



<!ELEMENT param EMPTY>

<!ATTLIST param

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Vaihtoehtoinen parametri, jota käytetään määrittämään kyseisen hakuohjelman lajin ilmentymän kokoonpano. Ohjelman laji määrittää kelvolliset parametrit.



Seuraavassa on esimerkki ohjehaun laajennuspisteestä:

   

<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"

>

<kuvaus>

XYZ Search -haun ilmentymiä - XYZ-sivusto.

</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"

>

<kuvaus>

%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>

Elementin engineType määritteen class on toimitettava sen luokan tarkennettu nimi, joka toteuttaa kohteen org.eclipse.help.search.ISearchEngine. Määritteen pageClass on toimitettava sen luokan tarkennettu nimi, joka laajentaa luokan org.eclipse.help.ui.RootScopePage. Määritteen scopeFactory on toimitettava sen luokan tarkennettu nimi, joka toteuttaa kohteen org.eclipse.help.ui.ISearchScopeFactory. Elementin subpage määritteen class on toimitettava sen luokan tarkennettu nimi, joka toteuttaa kohteen org.eclipse.help.ui.ISearchScopePage.

Ohjeen käyttöliittymälisäosa tuo käyttöön hakuohjelman lajeja paikalliseen ohje-, InfoCenter- ja Web-hakuun sekä myös paikallisen ohjehakuohjelman ilmentymän. Kyseinen ilmentymä ei hyväksy parametreja, eikä sillä ole tuotetunnusta. Näin ollen se näkyy jokaisen tuotteen yhteydessä.

Tuotteet voivat luoda konkreettisia InfoCenter- ja Web-hakujen ilmentymiä käyttämällä niiden ohjelmatunnusta ja tarvittavia parametreja.

Ohjelman InfoCenter-lajin engineId-tunnus on org.eclipse.help.ui.infoCenter. Se hyväksyy yhden parametrin (url), joka osoittaa etäpalvelimeen, jolle InfoCenter on asennettu. Haun tulokset näytetään samalla tavalla kuin paikallisen ohjehaun tulokset.

Web-haun ohjelman lajin ohjelmatunnus on org.eclipse.help.ui.web, ja se hyväksyy yhden parametrin (url), joka esittää konkreettista hakukyselyä. Kyselyn todellinen haettava merkkijono on siinä korvattu korvaussymbolilla "{expression}" seuraavan esimerkin tapaan:

http://eclipse.org/search/search.cgi?q={expression}&ul=&ps=20&m=all

Web-haun tulokset näytetään yhtenä linkkinä, joka avaa Web-selaimessa parametriin url korvatun haettavan merkkijonon mukaisen osoitteen.