Der Java-Beispieleditor übernimmt viel nützliches Verhalten vom AbstractTextEditor. Das Textbearbeitungsgerüst übernimmt verschiedene andere Aufgaben, die Sie anpassen können, indem Sie Methoden im AbstractTextEditor überschreiben. Weiterführende Informationen über die Anpassung von Verhalten innerhalb des Gerüsts finden Sie unter der Implementierung dieser Klasse bzw. seiner Unterklassen.
Im Folgenden sind einige hilfreiche Funktionen des Gerüsts aufgeführt, die Sie anpassen können.
Texteditoren ergänzen normalerweise Benutzervorgaben, mit denen die Darstellung und das Verhalten des Editors gesteuert wird. Im Textgerüst verfügt jedes Texteditorexemplar über einen zugeordneten Benutzervorgabenspeicher, der für den Zugriff auf die Benutzervorgaben verwendet wird. Dieser Benutzervorgabenspeicher kann durch den Editor definiert werden. Sie können aber auch Benutzervorgabenspeicher übernehmen, die bereits im Gerüst verwendet werden.
Der Java-Beispieleditor übernimmt den Benutzervorgabenspeicher, der durch TextEditor initialisiert wird. Es handelt sich hierbei um den Benutzervorgabenspeicher, der durch das Plug-in für die Workbencheditoren definiert wird.
protected void initializeEditor() { ... setPreferenceStore(EditorsPlugin.getDefault().getPreferenceStore()); }Die Benutzervorgaben für das Editoren-Plug-in können auf den Benutzervorgabenseiten Allgemein > Editoren und Allgemein > Editoren > Texteditoren bearbeitet werden.
Wenn Sie für Ihren Editor nicht die Standardbenutzervorgaben der Workbench für Text verwenden wollen, können Sie einen anderen Benutzervorgabenspeicher festlegen. Hierzu überschreiben Sie normalerweise initializeEditor und legen Ihren eigenen Benutzervorgabenspeicher fest. Falls Sie einen eigenen Benutzervorgabenspeicher verwenden, müssen Sie auch die Methode handlePreferenceStoreChanged() überschreiben, die bei jeder Aktualisierung einer Benutzervorgabe ausgelöst wird.
Tastenbelegungskontexte sind für die Erstellung einer Suchreihenfolge hilfreich. Kontextbezogene Tastenbelegungen reduzieren das Risiko, das verschiedene Plug-ins durch die Ergänzung von Tastenkombination einen Konflikt verursachen. In der Standardeinstellung operiert die Workbench in einem generischen Kontext für den Umgang mit Fenstern oder Dialogen. Es ist Aufgabe eines Texteditors, bei Aktivierung den Kontext auf den Textbearbeitungskontext zurückzusetzen, so dass editorspezifische Tastenbelegungen aktiviert werden.
Im Textgerüst der Plattform verfügt jedes Texteditorexemplar über eine zugeordnete Gruppe von Tastenbelegungsbereichen. Es ist dafür verantwortlich, bei Aktivierung die korrekten Bereiche zu setzen. AbstractDecoratedTextEditor definiert diesen Bereich und übernimmt die Aktivierung. Der Bereich wird in einer Methode zugeordnet, die vom Konstruktor aufgerufen wird:
protected void initializeKeyBindingScopes() { setKeyBindingScopes(new String[] { "org.eclipse.ui.textEditorScope" }); }
Das Argument für die Methode ist ein Bereich von IDs, die für Kontexte definiert wurden. Wenn Ihr Editor einen eigenen Tastenbelegungskontext definieren soll, können Sie diese Methode in Ihrer Editorklasse überschreiben oder den Bereich unter Verwendung von setKeybindingScopes dynamisch festlegen.
Der Kontext selbst muss mit der entsprechenden ID im Erweiterungspunkt org.eclipse.ui.contexts definiert sein. Das folgende Beispiel definiert den Texteditorkontext.
<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> ...
(Hinweis: In dieser Betrachtung werden die Ausdrücke Bereich und Kontext austauschbar verwendet. Die Methodennamen in den Textklassen bezeichnen auch weiterhin die Tastenbelegungskontexte als Bereiche. Diese Methodennamen geben die ursprüngliche Implementierung von Kontexten als Bereiche wieder und verwenden eine veraltete Terminologie.)