Editor interni ed esterni
Identificativo:
org.eclipse.ui.editors
Descrizione:
Questo punto di estensione
viene utilizzato per aggiungere nuovi editor al workbench. Un editor è un componente visivo
all'interno del workbench. Viene generalmente utilizzato per
modificare o esaminare un documento o un oggetto. Per aprire un editor, in
genere si impartisce il comando "Apri" su un file IFile.
Quando viene eseguita questa azione, il registro del workbench viene consultato
per determinare un editor appropriato al tipo di file e viene creata una nuova
istanza del tipo di editor. Il risultato effettivo dipende dal tipo di editor. Il workbench supporta la creazione di editor interni, strettamente integrati
nel workbench, e di editor esterni, che vengono avviati in una finestra frame
separata.
Esistono, inoltre, vari livelli di integrazione intermedi.
Un editor interno può essere strettamente integrato alla finestra del workbench. Nel
menu e nella barra degli strumenti del workbench sono precaricate molte azioni
comuni, come taglia, copia e incolla. La parte attiva, editor o
vista, è incaricata di implementare queste azioni. Un editor interno, inoltre,
può definire nuove azioni che vengono visualizzate nella finestra del workbench. Queste
azioni vengono visualizzate soltanto quando l'editor è attivo.
L'integrazione tra il workbench e gli editor esterni è più debole. In questo caso, il workbench può avviare
un editor ma poi non è in grado di determinare lo stato dell'editor esterno o di collaborare se non
attraverso il file system.
Tag di configurazione:
<!ELEMENT extension (editor*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
- point - identificativo completo del punto di estensione di
destinazione
- id - identificativo dell'istanza dell'estensione
- name - nome dell'istanza dell'estensione facoltativo
<!ELEMENT editor EMPTY>
<!ATTLIST editor
id CDATA #REQUIRED
name CDATA #REQUIRED
icon CDATA #IMPLIED
extensions CDATA #IMPLIED
class CDATA #IMPLIED
command CDATA #IMPLIED
launcher CDATA #IMPLIED
contributorClass CDATA #IMPLIED
default (true | false) "false"
filenames CDATA #IMPLIED
symbolicFontName CDATA #IMPLIED>
- id - un nome univoco che verrà utilizzato per identificare questo editor
- name - un nome che verrà utilizzato nell'interfaccia utente per questo editor
- icon - un nome relativo all'icona che verrà utilizzata per tutte le risorse che corrispondono
alle estensioni specificate.
Un'icona non è necessaria se viene specificato un comando invece di una classe. In questo caso, il workbench utilizzerà l'icona fornita dal sistema
operativo.
- extensions - un campo facoltativo che contiene l'elenco dei tipi di file riconosciuti dall'editor. L'elenco
è costituito da una stringa in cui le estensioni di file sono separate mediante virgole. Ad
esempio, un editor, che riconosce i documenti ipertestuali può essere
registrato per "htm, html".
- class - il nome di una classe che implementa org.eclipse.ui.IEditorPart. Gli
attributi class, command e launcher sono mutualmente esclusivi. Quando uno di questi attributi è definito, è necessario definire
anche contributorClass.
- command - un comando di esecuzione per avviare un editor esterno. Il comando eseguibile deve trovarsi sul percorso del sistema o nella directory del plugin.
Gli attributi class, command e launcher sono mutualmente esclusivi.
- launcher - il nome di una classe che implementa org.eclipse.ui.IEditorLauncher.
Un'utilità di avvio apre un editor esterno. Gli attributi class, command e
launcher sono mutualmente esclusivi.
- contributorClass - il nome di una classe che implementa
org.eclipse.ui.IEditorActionBarContributor. Questo attributo dovrebbe essere definito solo se è
stato definito l'attributo class. Questa classe è utilizzata per aggiungere nuove azioni al menu e alla barra
degli strumenti del workbench che riflettono le funzioni del tipo di editor.
- default - se il valore è impostato su true, questo editor sarà utilizzato come editor predefinito del tipo. L'elemento è rilevante soltanto nel caso in cui per lo stesso tipo sia registrato più di un editor. Anche quando un editor non costituisce l'editor predefinito di un tipo, può
essere avviato utilizzando il sottomenu "Apri con"
della risorsa selezionata.
- filenames - un campo facoltativo che contiene l'elenco dei nomi
file riconosciuti dall'editor. L'elenco è costituito da una stringa in cui i
nomi file sono separati mediante virgole. Ad esempio, un editor, che riconosce
i documenti ipertestuali specifici può essere registrato per "ejb.htm,
ejb.html".
- symbolicFontName - il nome simbolico del tipo di carattere. Il nome
simbolico del tipo di carattere deve essere l'identificativo di un carattere
definito (fare riferimento a org.eclipse.ui.fontDefinitions). Se l'attributo è
mancante o non valido, il nome del tipo di carattere assume il valore di
"org.eclipse.jface.textfont" nelle preferenze dell'editor. Se non è stata
memorizzata una preferenza o se la chiave non è definita, sarà utilizzato il
carattere di testo JFace. L'implementazione dell'editor stabilisce se viene
utilizzato il nome simbolico del carattere.
Esempi:
Di seguito è riportato un esempio di definizione
dell'estensione dell'editor interno:
<extension point=
"org.eclipse.ui.editors"
>
<editor
id=
"com.xyz.XMLEditor"
name=
"Fancy XYZ XML editor"
icon=
"./icons/XMLEditor.gif"
extensions=
"xml"
class=
"com.xyz.XMLEditor"
contributorClass=
"com.xyz.XMLEditorContributor"
symbolicFontName=
"org.eclipse.jface.textfont"
default=
"false"
>
</editor>
</extension>
Informazione API:
L'attributo
command, se utilizzato, sarà considerato come riga comandi di un programma esterno, la cui modalità di
esecuzione dipende dalla piattaforma.
Se viene utilizzato l'attributo launcher, anche l'editor sarà
considerato come un programma esterno. In questo caso, la classe specificata
deve implementare org.eclipse.ui.IEditorLauncher.
Dopo la creazione di un'istanza dell'utilità di avvio, verrà richiamato open(IFile file) per avviare l'editor.
Se viene utilizzato un attributo di classe, il workbench lo considera come un
editor interno e la classe specificata deve implementare
org.eclipse.ui.IEditorPart.
Di norma si definisce una sottoclasse org.eclipse.ui.EditorPart durante la definizione di un
nuovo tipo di editor. Occorre anche definire un
attributo contributorClass.
La classe specificata deve implementare
org.eclipse.ui.IEditorActionBarContributor,
ed è utilizzata per aggiungere nuove azioni al menu e alla barra
degli strumenti del workbench che riflettono le funzioni del tipo di editor.
All'interno del workbench può essere aperto più di un editor di un determinato
tipo. Ad esempio, può essere presente più di un editor Java aperto. Per
evitare la creazione di azioni e immagini di azione duplicate, il concetto di
editor viene suddiviso in due componenti. IEditorActionBarContributor
è responsabile della creazione delle azioni. L'editor è responsabile
dell'implementazione dell'azione. L'elemento responsabile del contributo,
inoltre è condiviso da ciascun editor aperto. Di conseguenza, esiste un solo insieme di azioni per uno o
più editor aperti.
La classe contributor è utilizzata per aggiungere nuove azioni al menu e alla
barra degli strumenti del workbench che riflettono il tipo di editor. Queste
azioni sono condivise e, se richiamate, agiscono sull'editor attivo. L'editor
attivo è trasferito al contributor richiamando
IEditorActionBarContributor.setActiveEditor.
Gli identificativi delle azioni e i maggiori gruppi all'interno della finestra del
workbench vengono definiti in
org.eclipse.ui.IWorkbenchActionConstants.
Questi devono essere utilizzati come punto di riferimento per l'aggiunta di
nuove azioni. I menu di livello superiore vengono creati utilizzando per
l'attributo path i seguenti valori:
-
additions - indica un gruppo posto a sinistra del menu Finestra.
Le azioni e i menu aggiunti in questi percorsi vengono visualizzati soltanto quando l'editor ad essi associato è attivo.
Alla chiusura dell'editor, menu ed azioni vengono rimossi.
Implementazione fornita:
Il
workbench fornisce un editor di testo predefinito. Il prodotto dell'utente finale potrebbe avere in dotazione altri editor. Gli editor, nel caso, saranno registrati come estensioni utilizzando la sintassi sopra descritta.
Copyright (c) 2002, 2004 IBM Corporation e altri.
Tutti i diritti riservati. Questo programma e il materiale di accompagnamento
sono disponibili secondo i termini della Common Public License v1.0 che sono
distribuiti con il prodotto, e disponibili all'indirizzo
http://www.eclipse.org/legal/cpl-v10.html