Der Java-Beispieleditor übernimmt einen Großteil nützlichen Standardverhaltens aus dem ObjektAbstractTextEditor. Das Textbearbeitungsgerüst verarbeitet mehrere andere Aufgabenbereiche, die Sie durch das Überschreiben der Methoden im Objekt AbstractTextEditor anpassen können. Wenn Sie die Implementierung dieser Klasse und ihrer Unterklassen anzeigen, können Sie feststellen, wie das Verhalten im Gerüst angepasst wird.
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 kann auf den Benutzervorgabenseiten Workbench > Editoren und Workbench > Editoren > Texteditor 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.
Tastenbelegungsbereiche sind hilfreich, um eine Suchreihenfolge für Tastenbelegungen einzurichten. Das Vorhandensein von kontextbezogenen Bereichen verringert das Risiko, dass unterschiedliche Plug-ins sich widersprechende Tastenkombinationen ergänzen. Standardmäßig operiert die Workbench in einem globalen Bereich. Sobald ein Texteditor aktiv wird, ist er für das erneute Festlegen des Bereichs auf den Texteditorbereich zuständig, damit die editorspezifischen Tastenbelegungen aktiviert werden.
Im Textgerüst der Plattform ist jedem Texteditorexemplar ein Tastenbelegungsbereich zugeordnet. Das Exemplar ist für die Festlegung dieses Bereichs zuständig, wenn es aktiv wird. TextEditor definiert diesen Bereich und achtet darauf, dass er aktiviert wird. Der Bereich wird in einer Methode zugeordnet, die aus dem Konstruktor heraus aufgerufen wird:
protected void initializeKeyBindingScopes() { setKeyBindingScopes(new String[] { "org.eclipse.ui.textEditorScope" }); }
Das Argument für die Methode ist ein Bereich von IDs für Zeichenfolgenbereiche von Tastenbelegungen. Wenn Ihr Editor einen eigenen Tastenbelegungsbereich definieren soll, können Sie diese Methode in Ihrer Editorklasse überschreiben oder den Bereich unter Verwendung von setKeybindingScopes dynamisch festlegen.
Der Bereich selbst muss mit der entsprechenden ID im Erweiterungspunktorg.eclipse.ui.commands definiert sein. Das folgende Beispiel definiert den Texteditorbereich:
<extension point="org.eclipse.ui.commands"> ... <scope name="%scope.text.name" parent="org.eclipse.ui.globalScope" description="%scope.text.description" id="org.eclipse.ui.textEditorScope"> </scope> </extension>