Beschreibung: An diesem Erweiterungspunkt können neue Editoren zur Workbench hinzugefügt werden. Ein Editor ist eine optische Komponente auf einer Workbench-Seite. Er wird normalerweise verwendet, um ein Dokument bzw. Eingabeobjekt zu bearbeiten oder anzuzeigen. Zum Öffnen eines Editors ruft der Benutzer in der Regel "Open" für ein Objekt IFile auf. Wenn diese Aktion ausgeführt wird, wird anhand der Workbench-Registrierung ermittelt, ob für den Dateityp ein geeigneter Editor vorhanden ist, und anschließend ein neues Exemplar des Editortyps erstellt. Das tatsächliche Ergebnis ist vom Typ des Editors abhängig. Die Workbench enthält eine Unterstützung für die Erstellung interner Editoren, die eng in die Workbench integriert sind, sowie externer Editoren, die in einem separaten Frame-Fenster gestartet werden. Außerdem gibt es zahlreiche Integrationsstufen zwischen diesen Extremen.
Die enge Integration eines internen Editors kann zwischen dem Workbench-Fenster und der Editorkomponente erzielt werden. Menü- und Symbolleiste der Workbench werden mit einer Reihe von allgemeinen Aktionen geladen (z. B. Ausschneiden, Kopieren, Einfügen). Die aktive Komponente (Sicht oder Editor) stellt dann die Implementierung für diese Aktionen bereit. Ein interner Editor kann aber auch neue Aktionen definieren, die im Workbench-Fenster angezeigt werden. Diese Aktionen werden nur dann angezeigt, wenn der Editor aktiv ist.
Die Integration zwischen Workbench und externen Editoren ist weit weniger ausgeprägt. In diesem Fall kann die Workbench einen Editor starten, jedoch anschließend weder den Status des externen Editors ermitteln noch (mit Ausnahme des Dateisystem) anderweitig mit ihm zusammenarbeiten.
Konfigurationsbefehle:
<!ELEMENT editor EMPTY>
<!ATTLIST editor
id
CDATA #REQUIRED
name
CDATA #REQUIRED
icon
CDATA #IMPLIED
class
CDATA #IMPLIED
command
CDATA #IMPLIED
launcher
CDATA #IMPLIED
contributorClass
CDATA #IMPLIED
extensions
CDATA #OPTIONAL
filenames
CDATA #OPTIONAL
default
CDATA (true|false) "false"
Im Folgenden ist ein Beispiel einer Erweiterungsdefinition für einen internen Editor dargestellt:
<extension point="org.eclipse.ui.editors">
<editor
id="com.xyz.XMLEditor"
name="Fancy
XYZ XML editor"
icon="./icons/XMLEditor.gif"
extensions="xml"
class="com.xyz.XMLEditor"
contributorClass="com.xyz.XMLEditorContributor"
default="false">
</editor>
</extension>
API-Informationen:
Falls das Attribut command verwendet wird, wird es als Befehlszeile für ein externes Programm verwendet, die auf eine plattformabhängig Weise ausgeführt wird.
Bei Verwendung des Attributs launcher wird der Editor ebenfalls als externes Programm behandelt. In diesem Fall muss die angegebene Klasse org.eclipse.ui.IEditorLauncher implementieren. Das Startprogramm wird als Exemplar erstellt. Anschließend wird open(IFile file) aufgerufen, um den Editor zu starten.
Wird das Attribut class verwendet, nimmt die Workbench an, dass es sich um einen internen Editor handelt, und die angegebene Klasse muss org.eclipse.ui.IEditorPart implementieren. Es ist gängige Praxis, beim Definieren eines neuen Editortyps org.eclipse.ui.EditorPart als Unterklasse aufzunehmen. Außerdem muss ein Attribut contributorClass definiert werden. Die angegebene Klasse muss org.eclipse.ui.IEditorActionBarContributor implementieren und wird verwendet, um neue Aktionen zu Menü- und Symbolleiste der Workbench hinzuzufügen, die die Funktionen des Editortyps wiedergeben.
In der Workbench kann es mehrere geöffnete Editoren eines bestimmten Typs geben, beispielsweise mehrere geöffnete Java-Editoren. Damit Aktionen und Aktionsimages nicht doppelt erstellt werden müssen, wurde das Editorkonzept zweigeteilt. Eine Schnittstelle IEditorActionBarContributor ist für die Erstellung der Aktionen zuständig. Aufgabe des Editors ist die Implementierung der Aktionen. Des Weiteren wird das Ergänzungselement von allen geöffneten Editoren gemeinsam verwendet. Infolge dieses Designs gibt es für mehrere geöffnete Editoren nur 1 gemeinsames Aktionsset.
Das Ergänzungselement fügt neue Aktionen zu Menü- und Symbolleiste der Workbench hinzu, die den Editortyp wiedergeben. Diese Aktionen werden gemeinsam benutzt und für den aktiven Editor aufgerufen. Der aktive Editor wird an das Ergänzungselement durch einen Aufruf von IEditorActionBarContributor#setActiveEditor übergeben. Die Kennungen für die Aktionen und Hauptgruppen im Workbench-Fenster sind in org.eclipse.ui.IWorkbenchActionConstants definiert. Sie sollten als Verweispunkt für das Hinzufügen neuer Aktionen verwendet werden. Menüs der höchsten Ebene werden erstellt, indem die folgenden Werte für das Attribut path verwendet werden:
Bereitgestellte Implementierung: Die Workbench stellt einen Standardtexteditor zur Verfügung. Im Lieferumfang von Endbenutzerprodukten können weitere Editoren enthalten sein. In einem solchen Fall werden die Editoren mit der oben beschriebenen Syntax als Erweiterungen registriert.