Overige taken van de teksteditor

Voor de Java-voorbeeldeditor worden veel handige gedragspatronen overgenomen van AbstractTextEditor.  Het tekstbewerkingsframework omvat verscheidene andere afhandelingstaken die u kunt aanpassen door methoden in AbstractTextEditor te vervangen.   Blader door de implementatie van deze klasse en daartoe behorende subklassen om te zien hoe u gedragspatronen in het framework kunt aanpassen.

Hieronder vindt u enkele nuttige frameworkfeatures die u kunt configureren.

Voorkeursafhandeling

Teksteditors bevatten gewoonlijk gebruikersvoorkeuren voor besturing van de presentatie en het gedragspatroon van de editor. In het tekstframework is elke teksteditor-instance gekoppeld aan een voorkeurenarchief dat wordt gebruikt om toegang tot gebruikersvoorkeuren te krijgen. Dit voorkeurenarchief kan (automatisch) door uw editor worden ingesteld, maar u kunt ook een bestaand voorkeurenarchief uit het framework overnemen.

In het geval van de Java-voorbeeldeditor, wordt het voorkeurenarchief van TextEditor overgenomen.  Dit is het voorkeurenarchief dat is gedefinieerd door de workbencheditorsplugin.  

protected void initializeEditor() {
	...
	setPreferenceStore(EditorsPlugin.getDefault().getPreferenceStore());
}
De pluginvoorkeuren van de editor kunnen worden bewerkt op de voorkeurenpagina Algemeen > Editors en de voorkeurenpagina Algemeen > Editors > Teksteditors .

Als u niet de standaardvoorkeuren van de workbench voor uw teksteditor wilt gebruiken, stelt u een ander voorkeurenarchief in. Hiertoe vervangt u de instelling initializeEditor met uw eigen voorkeurenverzameling.  In dat geval moet u ook de methode handlePreferenceStoreChanged() vervangen, die standaard wordt geïnitieerd wanneer een voorkeur is bijgewerkt.

Toetskoppelingen

Toetskoppelingscontexten zijn handig voor het bepalen van een zoekvolgorde voor toetskoppelingen. Door contextuele toetskoppelingen te definiëren verkleint u de kans dat verschillende plugins tegenstrijdige toetsencombinaties aanleveren. Standaard wordt de workbench uitgevoerd in een generieke context voor vensters of dialoogvensters. Wanneer een teksteditor wordt geactiveerd, is deze verantwoordelijk voor het opnieuw instellen van de context op de tekstbewerkingscontext, zodat de specifieke toetskoppelingen voor de editor worden geactiveerd.

In het platformtekstframework is elke teksteditor-instance gekoppeld aan een array van toetskoppelingsbereikwaarden. De instance is verantwoordelijk voor de instelling van de juiste bereikwaarden bij activering ervan. AbstractDecoratedTextEditor definieert dit bereik en regelt de activering ervan. Het bereik wordt toegewezen via een methode die wordt aangeroepen vanuit de constructor:

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

Het argument voor de methode is een array van ID's die voor contexten zijn gedefinieerd. Als u zelf een toetskoppelingscontext voor uw editor wilt definiëren, kunt u deze methode in uw editorklasse vervangen of het bereik dynamisch instellen met setKeybindingScopes.

De context zelf moet worden gedefinieerd met de bijbehorende ID in het extensiepunt org.eclipse.ui.contexts. De definitie voor de tekstbewerkingscontext ziet er als volgt uit.

   <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>
	...

(Opmerking:  in dit document worden de begrippen bereik en context door elkaar gebruikt. In de methodenamen in de tekstklassen wordt een toetskoppelingscontext nog een bereik genoemd. Deze methodenamen weerspiegelen de oorspronkelijke implementatie van contexten als bereikwaarden en bevatten verouderde terminologie.)