I motori di ricerca qui definiti non verranno mostrati automaticamente come partecipanti alla
ricerca federati fino a quando non viene stabilito il collegamento al prodotto, a meno che
l'attributo productId
non sia lasciato non definito. Per i motori che lo definiscono, solo i
collegamenti ad un particolare prodotto vengono mostrati quando il prodotto è in esecuzione.
I motori di ricerca possono semplicemente comporre un URL e fornire solo un risultato che contiene un URL, quale href. I più diffusi motori di ricerca per i quali il supporto API richiede una licenza possono essere collegati in questo modo. D'altra parte, i motori di ricerca possono comunicare con il server e ricevere risultati individuali con informazioni quali etichetta, href, descrizione breve, livello, ecc. Il motore della guida locale può produrre risultati in questo modo.
Qualsiasi sia il meccanismo della ricerca, i motori possono fornire diverse impostazioni dell'ambito di ricerca utilizzando le pagine delle preferenze JFace. Queste pagine sono visualizzate quando si segue il collegamento "Impostazioni avanzate" dalla vista Guida. Oltre alle pagine delle preferenze principali definite con il motore, possono essere collegate altre pagine delle preferenze secondarie per utilizzare impostazioni più avanzate.
Le impostazioni di ambito sono caricate e archiviate memorizzando gli oggetti IPreferenceStore
. Le
impostazioni di ambito per tutti i motori sono raggruppate in un insieme di ambito denominato. Quando
viene aperto per la prima volta, viene creato l'insieme di ambito predefinito (Default), ma gli utenti
possono definire più insiemi di ambiti e passare dall'uno all'altro.
Dal momento che il supporto di ricerca federato è parte del plugin org.eclipse.help.base
, è
necessario un factory per creare gli oggetti di ambito della ricerca dai dati presenti nell'archivio delle
preferenze. I client che collegano pagine delle preferenze di ambito devono collegare anche factory di
ambito.
I motori definiti in questo punto di estensione non sono mostrati nell'interfaccia utente per impostazione predefinita. Quello che viene mostrato è un'istanza concreta del motore di ricerca che può essere modificata individualmente. I prodotti possono preconfigurare il sistema della guida con diverse istanze dei tipi di motore registrati, possibilmente parametrizzati per l'esecuzione. Inoltre, gli utenti possono aggiungere le proprie istanze dei motori registrati e configurarle in base alle esigenze.
<!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>
Definisce un determinato tipo di motore di ricerca. Il tipo di motore di ricerca può essere utilizzato per creare istanze di motore concrete dall'utente o pre-caricate dal prodotto. Per poter essere utili, i tipi di motore devono essere configurati in modo che possa essere creato un determinato numero di motori mediante un unico tipo.
org.eclipse.help.search.ISearchEngine
. La classe è responsabile della ricerca in base a una determinata query e in un determinato ambito. org.eclipse.help.ui.RootScopePage
. Questa pagina contiene l'alternanza principale per il motore di ricerca ed è di solito utilizzata per contenere i widget utilizzati per limitare l'ambito di ricerca per il motore. org.eclipse.help.ui.ISearchScopeFactory
. Il factory è responsabile della creazione di oggetti ISearchScope dalle impostazioni memorizzate nella classe IPreferenceStore
. Se viene specificato pageClass
, è necessario specificare anche il factory dell'ambito. <!ELEMENT description (#PCDATA)>
Una breve descrizione del motore di ricerca
<!ELEMENT subpage EMPTY>
<!ATTLIST subpage
id CDATA #REQUIRED
label CDATA #REQUIRED
class CDATA #IMPLIED
category CDATA #REQUIRED>
Un pagina secondaria della pagina delle preferenze dell'ambito root definita nell'elemento engine
. Se l'attributo del motore pageClass
non è definito, le pagine secondarie verranno ignorate.
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>
Specifica un'istanza concreta di un determinato tipo di motore di ricerca. L'istanza può essere collegata al prodotto in modo da essere visualizzata solo quando il prodotto è attivo. Un motore può avere la propria etichetta e la propria descrizione. Se non specificato diversamente, verranno utilizzati i dati del tipo di motore. Infine, ogni tipo di motore definisce un insieme di parametri validi che possono essere inoltrati per la relativa configurazione. I motori possono specificare i valori di questi parametri.
org.eclipse.core.runtime.Platform.getProduct()
). Se non viene specificato, il motore verrà visualizzato per tutti i prodotti. true
, il motore sarà inizialmente abilitato. Gli utenti possono ignorare questo valore nell'interfaccia utente. <!ELEMENT param EMPTY>
<!ATTLIST param
name CDATA #REQUIRED
value CDATA #REQUIRED>
Un parametro facoltativo utilizzato per configurare questa istanza di un tipo di motore di ricerca. I parametri validi sono definiti dal tipo di motore.
<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"
>
<descrizione>
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"
>
<descrizione>
%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
dell'elemento engineType
deve fornire un nome completo della classe che implementa org.eclipse.help.search.ISearchEngine
. L'attributo pageClass
deve fornire un nome completo della classe che estende org.eclipse.help.ui.RootScopePage
. L'attributo scopeFactory
deve fornire un nome completo della classe che implementa org.eclipse.help.ui.ISearchScopeFactory
.
L'attributo class
dell'elemento subpage
deve fornire un nome completo di una classe che implementa org.eclipse.help.ui.ISearchScopePage
.
I prodotti possono creare istanze concrete di ricerche Web e nel centro informazioni utilizzando il relativo ID del motore e i parametri richiesti.
Il tipo di motore InfoCenter ha engineId org.eclipse.help.ui.infoCenter
e accetta un parametro url
che fa riferimenti al server remoto su cui è installato il centro informazioni. I risultati sono visualizzati nello stesso modo in cui sono visualizzati i risultati della guida locale.
Il tipo di motore di ricerca Web ha un ID di motore org.eclipse.help.ui.web
e accetta un parametro url
che rappresenta una query di ricerca concreta con la stringa di ricerca corrente con un simbolo di sostituzione '{expression}', come riportato nel seguente esempio:
http://eclipse.org/search/search.cgi?q={expression}&ul=&ps=20&m=allI risultati della ricerca Web vengono visualizzati come un unico collegamento che apre il browser Web con la stringa di ricerca sostituita nel parametro
url
.
Copyright (c) 2000, 2005 IBM Corporation e altri.
Tutti i diritti riservati. Questo programma e il materiale di accompagnamento sono disponibili secondo i termini della Eclipse Public
License v1.0 che sono distribuiti con il prodotto, e disponibili all'indirizzo
http://www.eclipse.org/legal/epl-v10.html