Textredigerarens övriga ansvar

I exemplet med Java-redigeraren ärvs många användbara funktioner från AbstractTextEditor.  I textredigeringsramverket hanteras flera andra förpliktelser som du kan anpassa genom att åsidosätta metoder i AbstractTextEditor. Bläddra igenom implementeringen av denna klass och tillhörande subklasser för att se hur beteendefunktioner anpassas i ramverket.

Här nedan visas några av de användbara ramverksfunktioner som kan konfigureras.

Inställningshantering

I textredigerare finns normalt användarinställningar som styr redigerarens presentation och beteende. I textramverket har varje textredigerarförekomst ett associerat inställningsarkiv som används för åtkomst till användarinställningar. Detta inställningsarkiv kan ställas in i din redigerare eller så kan du ärva från inställningsarkiv som redan används i ramverket.

I exemplet med Java-redigeraren ärvs inställningsarkivet som initierats av TextEditor. Detta är inställningsarkivet som definierats i insticksprogrammet för arbetsmiljöredigerare.  

protected void initializeEditor() {
	...
	setPreferenceStore(EditorsPlugin.getDefault().getPreferenceStore());
}
Insticksinställningarna för redigerare kan ändras på inställningssidorna Allmänt > Redigerare AND Allmänt > Redigerare > Textredigerare .

Om du inte vill använda arbetsmiljöns standardtextinställningar kan du definiera ett annat inställningsarkiv. Det görs vanligtvis genom att ersätta initializeEditor och definiera ett eget inställningsarkiv. Om du använder ett eget inställningsarkiv måste du åsidosätta metoden handlePreferenceStoreChanged() som aktiveras är en inställning uppdateras.

Nyckelbindningar

Nyckelbindningskontexter är användbara för etablering av en sökföljd för nyckelbindningar. Genom att ha sammanhangskänsliga nyckelbindningar minskas risken för att olika insticksprogram tillför nyckelsekvenser i konflikt. Vid arbete med fönster och dialogrutor i arbetsmiljön används som standard allmänt kontext. När en textredigerare aktiveras ska den återställa kontexten till textredigeringskontext, så att redigerarens specifika nyckelbindningar aktiveras.

I plattformens textramverk har varje textredigerarförekomst en associerad vektor av nyckelbindningsomfång. När den aktiveras ska den se till att korrekt omfång ställs in. AbstractDecoratedTextEditor definierar detta omfång och aktiverar det. Omfånget tilldelas i en metod som anropas av konstruktionssmodulen:

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

Argumentet till metoden är en vektor av ID:n som definierats för kontexten. Om du vill definiera egen nyckelbindningskontext i din redigerare kan du åsidosätta denna metod i redigerarklassen eller ställa in omfånget dynamiskt via setKeybindingScopes.

Själva kontexten måste definieras med motsvarande ID i utökningspunkten org.eclipse.ui.contexts. Följande är definitionen för textredigeringskontext.

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

(Obs! Vi använder termerna omfång och kontext omväxlande i denna beskrivning. Metodnamnen i textklasserna hänvisar fortfarande nyckelbindningskontext till omfång. Dessa metodnamn återspeglar den ursprungliga implementeringen av kontexter som omfång och använder inaktuell terminologi.)