Altre responsabilità dell'editor di testo

L'editor di esempio Java eredita un numero elevato di utili funzionalità predefinite da AbstractTextEditor.  La struttura di modifica del testo gestisce diverse altre responsabilità che è possibile personalizzare mediante la sostituzione dei metodi in AbstractTextEditor.  Esplorare l'implementazione di questa classe e delle relative sottoclassi per scoprire come vengono personalizzate le funzionalità nella struttura.

Di seguito sono riportate alcune utili funzioni della struttura che è possibile configurare.

Gestione delle preferenze

Gli editor di testo generalmente forniscono le preferenze utente che controllano la presentazione e le funzionalità dell'editor.  Nella struttura del testo, a ciascun editor di testo è associato un archivio di preferenze che viene utilizzato per l'accesso alle preferenze dell'utente.  Tale archivio può essere impostato dall'editor oppure ereditato dagli archivi già utilizzati nella struttura.

Nel caso dell'editor di esempio Java, questo eredita l'archivio delle preferenze inizializzato da TextEditor.  Si tratta dell'archivio delle preferenze definito dal plug-in degli editor del workbench.  

protected void initializeEditor() {
	...
	setPreferenceStore(EditorsPlugin.getDefault().getPreferenceStore());
}
È possibile modificare le preferenze plug-in degli editor nelle pagine delle preferenze Workbench > Editor e Workbench > Editor > Editor di testo.

Se non si desidera utilizzare le preferenze di testo del workbench standard per l'editor, è possibile impostare un diverso archivio delle preferenze.  Questa operazione viene generalmente eseguita mediante la sostituzione di initializeEditor e l'impostazione dell'archivio delle preferenze.  Se si utilizza un proprio archivio delle preferenze, sarà necessario anche sostituire il metodo handlePreferenceStoreChanged() che viene attivato ogni volta che viene aggiornata una preferenza.

Associazioni di tasti

Gli ambiti di associazione di tasti sono utili per stabilire un ordine di ricerca per le associazioni dei tasti.  Se si dispone di ambiti contestuali, si riduce le probabilità di avere plug-in diversi che determinano sequenze di tasti in conflitto.  Per impostazione predefinita, il workbench opera in un ambito globale.  Quando diventa attivo un editor di testo, questo deve reimpostare l'ambito con l'ambito dell'editor di testo, in modo che siano attive le associazioni di tasti specifiche dell'editor.

Nella struttura del testo della piattaforma, a ciascuna istanza dell'editor di testo è associato un ambito di associazione tasti.  Questo è responsabile dell'impostazione di questo ambito quando diventa attivo.   TextEditor definisce l'ambito e si occupa di renderlo attivo.  L'ambito viene assegnato in un metodo chiamato dal costruttore:

protected void initializeKeyBindingScopes() {
	setKeyBindingScopes(new String[] { "org.eclipse.ui.textEditorScope" });  
}

L'argomento per il metodo è una matrice di id stringa di ambiti di associazione tasti.  Se si desidera che l'editor definisca il proprio ambito di associazione tasti, è possibile sostituire questo metodo nella classe dell'editor oppure impostare dinamicamente l'ambito mediante setKeybindingScopes.

L'ambito stesso deve essere definito con l'id corrispondente nel punto di estensione org.eclipse.ui.commands.  Di seguito è riportata la definizione dell'ambito dell'editor di testo.

<extension
         point="org.eclipse.ui.commands">
      ...
      <scope
            name="%scope.text.name"
            parent="org.eclipse.ui.globalScope"
	    description="%scope.text.description"
            id="org.eclipse.ui.textEditorScope">
      </scope>
   </extension> 

Copyright IBM Corporation e altri 2000, 2003.