Interne und externe Editoren
Kennung:
org.eclipse.ui.editors
Beschreibung:
An diesem Erweiterungspunkt können neue
Editoren zur Workbench hinzugefügt werden. Ein Editor ist eine optische Komponente auf einer Workbenchseite. Er wird in der Regel zum Bearbeiten oder Anzeigen eines Dokuments
oder Eingabeobjekts verwendet. Zum Öffnen eines Editors ruft der Benutzer normalerweise
den Befehl "Öffnen" für ein Objekt IFile auf.
Sobald diese Aktion ausgeführt wird, wird anhand der
Workbenchregistrierung ein geeigneter Editor für den Dateityp
entwickelt und anschließend ein neues Exemplar des Editortyps
erstellt. Das tatsächliche Ergebnis hängt vom Typ des Editors ab. Die Workbench unterstützt die Erstellung interner Editoren, die eng
in die Workbench integriert sind, sowie externer Editoren, die in
einem separaten Framefenster gestartet werden.
Zwischen diesen Extremformen gibt es jedoch verschiedene
Integrationsstufen.
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.
Konfigurationsbefehle:
<!ELEMENT extension (editor*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
- point - Vollständig qualifizierte Kennung des Zielerweiterungspunktes
- id - Optionale ID des Erweiterungsexemplars
- name - Optionaler Name des Erweiterungsexemplars
<!ELEMENT editor EMPTY>
<!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>
- id - Ein eindeutiger Name, der diesen Editor kennzeichnet
- name - Ein übersetzbarer Name, der in der Benutzerschnittstelle für diesen Editor verwendet wird
- icon - Der relative Name des Symbols, das für alle
Ressourcen
verwendet wird, die mit den angegebenen Erweiterungen übereinstimmen.
Wenn Sie statt einer Klasse einen Befehl angeben, ist ein Symbol
nicht erforderlich. In diesem Fall verwendet die Workbench das
Symbol, das durch das Betriebssystem bereitgestellt wird.
- extensions - Ein optionales Feld mit einer Liste der
Dateitypen, die vom Editor erkannt werden. Hierbei handelt es sich um eine Zeichenfolge, die durch Kommata
abgetrennte Dateierweiterungen enthält. Ein Editor, der
Hypertextdokumente erkennt, könnte beispielsweise für die
Erweiterungen "htm, html" registriert werden.
- class - Der Name einer Klasse, die org.eclipse.ui.IEditorPart implementiert. Die Attribute class, command, und launcher schließen sich gegenseitig aus. Falls dieses Attribut definiert ist, sollte das Attribut contributorClass ebenfalls definiert sein.
- command - Ein Befehl, der zum Starten eines externen Editors
ausgeführt werden soll. Der ausführbare Befehl muss sich im Systempfad oder im
Verzeichnis des Plug-ins befinden. Die Attribute class, command, und launcher schließen sich gegenseitig aus.
- launcher - Der Name einer Klasse, die org.eclipse.ui.IEditorLauncher implementiert.
Ein Startprogramm öffnet einen externen Editor. Die Attribute class, command und launcher schließen sich gegenseitig aus.
- contributorClass - Der Name einer Klasse, die org.eclipse.ui.IEditorActionBarContributor implementiert. Dieses Attribut sollte nur dann definiert werden, wenn das Attribut class definiert ist. Mit dieser Klasse werden neue Aktionen zum Menü und zur Symbolleiste der Workbench hinzugefügt, die die Funktionen des Editortyps
wiedergeben.
- default - Wenn dieses Attribut auf den Wert "true" gesetzt
wird, wird der Editor als Standardeditor für den angegebenen Typ
verwendet. Dies ist nur dann von Bedeutung, wenn für einen Dateityp mehrere
Editoren registriert sind. Falls ein Editor nicht als
Standardeinstellung für einen Typ definiert ist, kann er trotzdem
unter Verwendung des Untermenüs "Öffnen mit..."
Untermenü für die ausgewählte Ressource.
- filenames - Ein optionales Feld mit einer Liste der
Dateinamen, die vom Editor erkannt werden. Hierbei handelt es sich um eine Zeichenfolge, die durch
Kommata abgetrennte Dateinamen enthält. Ein Editor, der
spezifische Hypertextdokumente erkennt, könnte beispielsweise für die
"ejb.htm, ejb.html" registriert werden.
- symbolicFontName - Der symbolische Name einer Schriftart. Der
symbolische Schriftartname muss die ID einer definierten Schriftart
sein (siehe
"org.eclipse.ui.fontDefinitions"). Falls das Attribut nicht oder mit
einem ungültigen Wert angegeben ist, wird für den Schriftartnamen
der Wert von
"org.eclipse.jface.textfont" im Benutzervorgabenspeicher des Editors
verwendet. Wenn kein Benutzervorgabenspeicher vorhanden oder der
Schlüssel nicht definiert ist, wird die
JFace-Textschriftart verwendet. Die Editorimplementierung entscheidet, ob sie diesen symbolischen Schriftartnamen zum Festlegen
der Schriftart verwendet.
Beispiele:
Das folgende Beispiel ist eine Erweiterungsdefinition für einen
internen Editor:
<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>
API-Information:
Falls das Attribut 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 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:
-
additions - Stellt eine Gruppe links neben dem Menü "Fenster" dar.
Aktionen und Menüs, die zu diesen Pfaden hinzugefügt werden, werden
nur dann angezeigt, wenn der zugeordnete Editor aktiv ist. Beim Schließen des Editors werden die Menüs und Aktionen entfernt.
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.
Copyright (c) 2002, 2004 IBM Corporation und Andere.
Alle Rechte vorbehalten. Dieses Programm und sein Begleitmaterial werden gemäß
den Bedingungen der 'Common Public License v1.0' zur Verfügung gestellt, die diese Verteilung begleitet und
unter http://www.eclipse.org/legal/cpl-v10.html abgerufen
werden kann.