Bei einem internen Editor kann die enge Integration zwischen dem Workbenchfenster und der Editorkomponente erzielt werden. Das Menü und die Symbolleiste der Workbench werden mit einer Reihe von allgemeinen Aktionen (z. B. Ausschneiden, Kopieren und Einfügen) vorinstalliert. Die aktive Komponente, also die Sicht oder der Editor, stellt erwartungsgemäß die Implementierung für diese Aktionen bereit. Ein interner Editor kann außerdem neue Aktionen definieren, die im Workbenchfenster angezeigt werden. Diese Aktionen sind nur dann sichtbar, wenn der Editor aktiv ist.
Die Integration zwischen der Workbench und externen Editoren ist weniger stark. In diesem Fall kann die Workbench einen Editor zwar starten, hat jedoch anschließend keine Möglichkeit, den Status des externen Editors zu ermitteln oder über andere Wege als das Dateisystem mit ihm zusammenzuarbeiten.
<!ELEMENT extension (editor*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
<!ELEMENT editor (contentTypeBinding*)>
<!ATTLIST editor
id CDATA #REQUIRED
name CDATA #REQUIRED
icon CDATA #IMPLIED
extensions CDATA #IMPLIED
class CDATA #IMPLIED
command CDATA #IMPLIED
launcher CDATA #IMPLIED
contributorClass CDATA #IMPLIED
default (true | false) "false"
filenames CDATA #IMPLIED
symbolicFontName CDATA #IMPLIED
matchingStrategy CDATA #IMPLIED>
Beachten Sie bitte, dass dieses Attribut zu diesem Zeitpunkt nur für Dateinamen- und Erweiterungszuordnungen berücksichtigt wird. Für Inhaltstypsbindings wird es nicht berücksichtigt. Die inhaltstypbasierte Auflösung wird sequentiell vorgenommen und nicht explizit angegeben.
<!ELEMENT contentTypeBinding EMPTY>
<!ATTLIST contentTypeBinding
contentTypeId CDATA #REQUIRED>
Zeigt an, dass der enthaltende Editor den gegebenen Inhaltstyp versteht und in der Lage ist, Dateien dieses Typs zu editieren.
<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"
symbolicFontName=
"org.eclipse.jface.textfont"
default=
"false"
>
</editor>
</extension>
Bei Verwendung des Attributs "launcher" wird der Editor ebenfalls wie ein 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.
Falls das Attribut "class" verwendet wird, geht die Workbench davon aus, dass es sich um einen internen Editor handelt, und die Klasse muss org.eclipse.ui.IEditorPart implementieren. Beim Definieren eines neuen Editortyps hat sich subclass org.eclipse.ui.EditorPart bewährt. Außerdem muss ein Attribut contributorClass definiert werden. Die angegebene Klasse muss org.eclipse.ui.IEditorActionBarContributor implementieren. Sie wird verwendet, um neue Aktionen zum Menü und zur Symbolleiste der Workbench hinzuzufügen, die die Funktionen des Editortyps wiedergeben.
Innerhalb der Workbench können mehrere Editoren eines bestimmten Typs geöffnet sein. So können beispielsweise einer oder mehrere geöffnete Java-Editoren vorhanden sein. Um die Erstellung doppelter Aktionen und Aktionsimages zu verhindern, ist das Editorkonzept zweigeteilt. Ein Ergänzungselement IEditorActionBarContributor ist für die Erstellung von Aktionen zuständig. Der Editor ist für die Aktionsimplementierung verantwortlich. Des Weiteren wird das Ergänzungselement von allen geöffneten Editoren gemeinsam benutzt. Dieser Entwurf bewirkt, dass für einen oder mehrere geöffnete Editoren immer nur ein Aktionsset vorhanden ist.
Das Ergänzungselement fügt neue Aktionen zum Menü und zur Symbolleiste der Workbench hinzugefügt, die den Editortyp wiedergeben. Diese Aktion werden gemeinsam benutzt und bei ihrem Aufruf für den aktiven Editor ausgeführt. Der aktive Editor wird an das Ergänzungselemente durch den Aufruf von IEditorActionBarContributor.setActiveEditor übergeben. Die Kennungen für Aktionen und Hauptgruppe im Workbenchfenster sind in org.eclipse.ui.IWorkbenchActionConstants definiert. Sie sollten als Referenzpunkt für das Hinzufügen neuer Aktionen verwendet werden. Menüs der höchsten Ebene werden unter Verwendung der folgenden Werte für das Attribut "path" erstellt:
Copyright (c) 2002, 2005 IBM Corporation und Andere.
Alle Rechte vorbehalten. Dieses Programm und sein Begleitmaterial werden gemäß den Bedingungen der "Eclipse Public License v1.0" zur Verfügung gestellt, die dieser Lieferung beiliegt und unter
http://www.eclipse.org/legal/epl-v10.html abgerufen werden kann.