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.