L'editor di esempio Java eredita un numero elevato di utili funzionalità predefinite da AbstractTextEditor. Il framework 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à nel framework.
Di seguito sono riportate alcune utili funzioni del framework che è possibile configurare.
Gli editor di testo generalmente forniscono le preferenze utente che controllano la presentazione e le funzionalità dell'editor. Nel framework 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 nel framework.
Nel caso dell'editor di esempio Java, questo eredita l'archivio delle preferenze inizializzato da TextEditor. Si tratta dell'archivio delle preferenze definito dal plugin degli editor del workbench.
protected void initializeEditor() { ... setPreferenceStore(EditorsPlugin.getDefault().getPreferenceStore()); }È possibile modificare le preferenze plugin degli editor nelle pagine delle preferenze Generale > Editor e Generale > 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.
I contesti di associazione di tasti sono utili per stabilire un ordine di ricerca per le associazioni dei tasti. Se si dispone di collegamenti chiave contestuali, si riduce le probabilità di avere plugin diversi che determinano sequenze di tasti in conflitto. Per impostazione predefinita, il workbench opera in un contesto generico per la gestione di finestre o finestre di dialogo. Quando diventa attivo un editor di testo, questo deve reimpostare il contesto con il contesto dell'editor di testo, in modo che siano attive le associazioni di tasti specifiche dell'editor.
Nel framnework del testo della piattaforma, a ciascuna istanza dell'editor di testo è associata una matrice di ambiti di associazione tasti. Questa matrice è responsabile dell'impostazione degli ambiti corretti quando l'editor diventa attivo. AbstractDecoratedTextEditor 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 definiti per i contesti. Se si desidera che l'editor definisca il proprio contesto di associazione tasti, è possibile sostituire questo metodo nella classe dell'editor oppure impostare dinamicamente l'ambito mediante setKeybindingScopes.
Il contesto stesso deve essere definito con l'id corrispondente nel punto di estensione org.eclipse.ui.contexts. Di seguito è riportata la definizione del contesto dell'editor di testo.
<extension point="org.eclipse.ui.contexts"> <context name="%context.editingText.name" description="%context.editingText.description" id="org.eclipse.ui.textEditorScope" parentId="org.eclipse.ui.contexts.window"> </context> ...
(Nota: i termini ambito e contesto vengono utilizzati in modo intercambiabile. I nomi dei metodi nelle classi di testo fanno ancora riferimento ai contesti di collegamento chiave come ambiti. Questi nomi riflettono l'implementazione originale dei contesti come ambiti ed utilizzano la terminologia aggiornata.)