Forrásmegjelenítő beállítása

Eddig áttekintettük a SourceViewer elemet a forráskód-feljegyzések kezelése kontextusban.

A SourceViewer a központi egység is a szerkesztő cserélhető jellemzőkkel beállításához, mint például a lebegő szöveg és a szintaxiskiemelés.  Ezen funkciók esetén a szerkesztő biztosítja a SourceViewerConfiguration elemet, amelyet létrehozáskor a SourceViewer beállításához használ a rendszer. A Java példaszerkesztőnek csak az igényeknek megfelelő SourceViewerConfiguration elemet kell biztosítania. Az alábbi részlet megjeleníti, hogy a JavaTextEditor hogyan hozza létre a konfigurációt:

protected void initializeEditor() {
	super.initializeEditor();
	setSourceViewerConfiguration(new JavaSourceViewerConfiguration());
	...

Mint csinál a JavaSourceViewerConfiguration? A jellemzők nagy része a SourceViewerConfiguration elemtől kerül öröklésre, amely megadja az alapértelmezett stratégiákat a cserélhető szerkesztőjellemzőkhöz, mint például az automatikus behúzás, visszavonás viselkedése, dupla kattintás viselkedése, lebegő szöveg, szintaxiskiemelés és formázás.  A SourceViewerConfiguration nyilvános metódusai biztosítják a súgóobjektumokat, amelyek megvalósítják ezeket a jellemzőket.

Ha a SourceViewerConfiguration részben megadott alapértelmezett jellemző nem felel meg a szerkesztőnek, akkor a fent látható módon felül kell írni az initializeEditor() funkciót, és be kell állítani a saját forrásmegjelenítő-konfigurációt a szerkesztőben.  A konfiguráció felül tudja írni a SourceViewerConfiguration metódusait az egyéni súgóobjektumok biztosításához, amelyek megvalósítják a viselkedést a szerkesztőhöz. Az alábbi részlet két módszert mutat be, amellyel a JavaSourceViewerConfiguration biztosítja az egyéni súgóobjektumokat a Java szerkesztő példához:

public IAnnotationHover getAnnotationHover(ISourceViewer sourceViewer) {
	return new JavaAnnotationHover();
}
	
public IAutoIndentStrategy getAutoIndentStrategy(ISourceViewer sourceViewer, String contentType) {
	return (IDocument.DEFAULT_CONTENT_TYPE.equals(contentType) ? new JavaAutoIndentStrategy() : new DefaultAutoIndentStrategy());
}

Az első metódusban meg van adva egy egyéni súgóosztály a lebegő feljegyzés megvalósításához. A második metódusban a dokumentum alapértelmezett tartalomtípusa lekérdezésre kerül annak meghatározásához, hogy az egyéni automatikus behúzási stratégiát vagy az alapértelmezett stratégiát kell használni.

Tekintse meg a SourceViewerConfiguration API hivatkozást a forrásmegjelenítő felülírási metódusok segítségével konfigurálásának módjaiért.