Ukázkový editor jazyka Java dědí mnoho užitečného chování od třídy AbstractTextEditor. Rámec úprav textu ošetřuje několik dalších zodpovědností, které si můžete přizpůsobit předefinováním metod ve třídě AbstractTextEditor. Chcete-li vidět, jak se ve struktuře přizpůsobuje chování, projděte si implementaci této třídy a ji přiřazených podtříd.
Dále je uvedeno několik užitečných funkcí rámce, které lze konfigurovat.
Textové editory zpravidla přispívají uživatelskými předvolbami, které řídí prezentaci a chování editoru. V textovém rámci má každá instance textového editoru příslušnou paměť předvoleb, která se používá pro přístup k uživatelským předvolbám. Tuto paměť předvoleb může váš editor nastavit, nebo může dědit od pamětí předvoleb, které se již ve vývojovém prostředí používají.
V případě ukázkového editoru jazyka Java se dědí paměť předvoleb inicializovaná třídou TextEditor. Toto je paměť předvoleb, kterou definuje modul plug-in editorů pracovní plochy.
protected void initializeEditor() { ... setPreferenceStore(EditorsPlugin.getDefault().getPreferenceStore()); }S předvolbami modulů plug-in editorů lze manipulovat na stránkách předvoleb Obecné > Editory a Obecné > Editory > Textové editory.
Pokud nechcete ve svém editoru používat standardní předvolby textu pracovní plochy, můžete nastavit jinou paměť předvoleb. To se zpravidla udělá předefinováním metody initializeEditor a nastavením vaší vlastní paměti předvoleb. Pokud používáte svou vlastní paměť předvoleb, musíte rovněž předefinovat metodu handlePreferenceStoreChanged(), která se spouští vždy, když se nějaká předvolba zaktualizuje.
Kontexty vazeb kláves jsou užitečné ke zřízení pořadí vyhledávání pro vazby kláves. Kontextové vazby kláves snižují pravděpodobnost, že různé moduly plug-in vloží konfliktní sekvence kláves. Standardně pracuje pracovní plocha v obecném kontextu pro práci s okny nebo dialogovými okny. Když se textový editor stane aktivní, zodpovídá za přenastavení kontextu na kontext úprav textu, takže budou aktivní vazby kláves specifické pro editor.
V textovém rámci platformy má každá instance textového editoru přiřazeno pole rozsahů vazeb kláves. Když se instance stane aktivní, zodpovídá za nastavení správných rozsahů. AbstractDecoratedTextEditor definuje tento rozsah a stará se o jeho aktivaci. Rozsah se přiřazuje v metodě, která se volá z konstruktoru:
protected void initializeKeyBindingScopes() { setKeyBindingScopes(new String[] { "org.eclipse.ui.textEditorScope" }); }
Argumentem metody je pole ID, která byla pro kontexty definována. Chcete-li ve svém editoru definovat svůj vlastní kontext vazeb kláves, můžete ve třídě svého editoru tuto metodu předefinovat, nebo nastavit rozsah dynamicky pomocí setKeybindingScopes.
Kontext samotný musí být definován s odpovídajícím ID v bodu rozšíření org.eclipse.ui.contexts. Následuje definice pro kontext úprav textu.
<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> ...
(Poznámka: V této diskusi používáme pojmy rozsah a kontext zaměnitelně. Názvy metod v textových třídách se stále odkazují na kontexty vazeb kláves jako na rozsahy. Tyto názvy metod odrážejí původní implementaci kontextů v podobě rozsahů a používají starou terminologii.)