Descrizione: questo punto di estensione viene utilizzato per aggiungere nuovi editor al workbench. Un editor costituisce un componente visivo all'interno di una pagina del workbench. È generalmente utilizzato per modificare o sfogliare un documento o un oggetto di input. 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 tra questi estremi.
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 visualizzazione, è 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 editor EMPTY>
<!ATTLIST editor
id
CDATA #REQUIRED
name
CDATA #REQUIRED
icon
CDATA #IMPLIED
class
CDATA #IMPLIED
command
CDATA #IMPLIED
launcher
CDATA #IMPLIED
contributorClass
CDATA #IMPLIED
extensions
CDATA #OPTIONAL
filenames
CDATA #OPTIONAL
default
CDATA (true|false) "false"
di seguito viene riportato un esempio di definizione dell'estensione di un 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"
default="false">
</editor>
</extension>
Informazione API:
l'attributo command, se utilizzato, sarà considerato una riga di comando di un programma esterno la cui modalità di esecuzione dipenderà 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 è utilizzato l'attributo class, il workbench suppone che si tratti di un editor interno e la classe specificata deve implementare org.eclipse.ui.IEditorPart. Generalmente, durante la definizione di un nuovo tipo di editor, org.eclipse.ui.EditorPart viene inserito in una classe di livello superiore. È, inoltre, necessario definire un attributo contributorClass. La classe specificata deve implementare org.eclipse.ui.IEditorActionBarContributor e viene utilizzata per aggiungere nuove azioni al menu e alla barra degli strumenti del workbench che riflettono le funzioni del tipo di editor.
Nel workbench potrebbe essere aperto più di un editor di un determinato tipo. Ad esempio, potrebbero essere aperti uno o più editor Java. Per evitare la creazione di azioni e immagini di azioni duplicate, il concetto di editor è stato scisso in due parti. Un IEditorActionBarContributor è responsabile della creazione di azioni. L'editor è responsabile dell'implementazione dell'azione. L'elemento responsabile del contributo, inoltre, è condiviso da ciascun editor aperto. Grazie a questa strutturazione, per uno o più editor aperti esiste soltanto una serie di azioni.
L'elemento responsabile del contribuito aggiungerà 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 viene trasferito all'elemento responsabile del contributo richiamando IEditorActionBarContributor#setActiveEditor. Gli identificativi delle azioni e i maggiori gruppi all'interno della finestra del workbench vengono definiti in org.eclipse.ui.IWorkbenchActionConstants. Devono essere utilizzati come punto di riferimento per l'aggiunta di nuove azioni. Menu di livello superiore vengono creati utilizzando i seguenti valori per l'attributo path:
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.l