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
   >

   <!ELEMENT editor EMPTY>

   <!ATTLIST editor
      id               CDATA #REQUIRED
     name             CDATA #REQUIRED
      icon             CDATA #IMPLIED
      extensions       CDATA #IMPLIED
     class            CDATA #IMPLIED
     command          CDATA #IMPLIED
     contributorClass CDATA #IMPLIED
     default          (true | false) "false"
     filenames        CDATA #IMPLIED
     launcher         CDATA #IMPLIED
     symbolicFontName CDATA #IMPLIED
   >

Esempi: di seguito è riportato un esempio di un punto di estensione di 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> 

Informazioni 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:

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,2003 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