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.
<!ELEMENT extension (editor*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
<!ELEMENT editor (contentTypeBinding*)>
<!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
matchingStrategy CDATA #IMPLIED>
Notare che questo attributo attualmente viene rispettato solo per le associazioni di nome file ed estensione. Non viene rispettato per le associazioni del tipo di contenuto. La risoluzione in base al tipo di contenuto non è specificata esplicitamente.
<!ELEMENT contentTypeBinding EMPTY>
<!ATTLIST contentTypeBinding
contentTypeId CDATA #REQUIRED>
Indica che l'editor riconosce il tipo di contenuto fornito ed è adatto alla modifica di file di questo tipo.
<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>
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:
Copyright (c) 2002, 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