Beispiel - Java-Editor

Einführung

Das Beispiel des Java-Editors demonstriert die Standardfunktionen, die für angepasste Texteditoren zur Verfügung stellen. Es veranschaulicht außerdem, wie Sie einen Editor für eine Dateierweiterung (in diesem Fall ".jav") registrieren und einen angepassten Dokument-Provider definieren, der durch diesen Editor verwendet werden soll. Das Beispiel ist lediglich zur Veranschaulichung gedacht. Die Unterstützung für die Bearbeitung von Java-Dateien wird durch die Java-Tools von Eclipse zur Verfügung gestellt.

Im Beispieleditor demonstrierte Funktionen

Nicht demonstrierte Funktionen

Beispieleditor ausführen

  1. Erstellen Sie ein Projekt.
  2. Erstellen Sie im neu erstellten Projekt eine Datei mit der Dateierweiterung ".jav". Der Java-Beispieleditor wird automatisch geöffnet.
  3. Fügen Sie Java-Code ein. Der Java-Code wird dynamisch mit Farben versehen. Der Beispieleditor verwendet unterschiedliche Farben zum Anzeigen der folgenden Sprachenelement: mehrzeilige Kommentare, einzeilige Kommentare, reservierte Wörter, Zeichenfolgen und Zeichenkonstanten der Java-Sprache, normaler Java-Code sowie mehrzeilige Kommentare gemäß der JavaDoc-Richtlinien. Innerhalb solcher JavaDoc-Kommentare werden JavaDoc-Schlüsselwörter und Tags in unterschiedlichen Farben angezeigt.
  4. Öffnen Sie einen neuen mehrzeiligen Java-Kommentar, indem Sie außerhalb eines Java-Kommentars die Zeichen "/*" eingeben. Die Farbe des gesamten Textes zwischen den eingefügten Zeichen "/*" und dem ersten Vorkommen der Zeichen "*/" bzw. dem Textende ändert sich in Rot. Hängen Sie ein weiteres Zeichen "*" an. Die Farbe ändert sich von Rot in Grün, da der normale mehrzeilige Kommentar nun als Kommentar betrachtet wird, der JavaDoc-Angaben enthält. Rufen Sie die Unterstützung für den Inhalt auf, indem Sie gleichzeitig die Taste Strg und die Leertaste drücken. Die Unterstützung für den Inhalt soll dem Benutzer beim Schreiben von Code helfen. Bei ihrem Aufruf sollte die Unterstützung für den Inhalt eine Liste mit allen möglichen Fertigstellungen für die Position anzeigen, an der sie aufgerufen wurde. Innerhalb von JavaDoc schlägt der Beispieleditor immer alle JavaDoc-Schlüsselwörter vor.
  5. Rufen Sie außerhalb eines Java-Kommentars den Tipp für Inhalt auf, indem Sie gleichzeitig die Taste Strg, die Umschalttaste und die Leertaste drücken. Es werden fünf Vorschläge aufgelistet. Wählen Sie einen der Vorschläge aus, und drücken Sie die Eingabetaste. Über der aktuellen Zeile wird in Rot ein kleines variables Fenster angezeigt, das den ausgewählten Vorschlag enthält. Der beabsichtigte Zweck eines Tipps für den Inhalt ist, dass der Benutzer seine Absicht ausdrückt (z. B. Eingabe eines Methodenaufrufs) und dann kontextbezogene Informationen aufgerufen werden, die ihn hierbei anleiten können. Im Beispieleditor ist der Vorschlag für fünf Zeichen um die Position herum gültig, für die er ursprünglich aufgerufen wurde. Während der Tipp für den Inhalt angezeigt wird, rufen Sie die Unterstützung für den Inhalt auf, indem Sie die Taste Str und die Leertaste drücken. Die in einer solchen Situation aufgerufene Unterstützung für den Inhalt soll dem Benutzer dabei helfen, die im Tipp für den Inhalt angegebene Absicht umzusetzen. Innerhalb des normalen Java-Codes schlägt der Beispieleditor immer alle Java-Schlüsselwörter vor.
  6. Speichern Sie den Java-Code. Durch die Speicherung wird die Inhaltsgliederung aktualisiert. Die Inhaltsgliederung enthält zehn Einträge. Jeder dieser Einträge stellt eines der zehn gleich großen Segmente des Java-Codes im Editor dar. Diese Darstellung der Inhaltsgliederung wurde gewählt, um deutlich zu machen, dass die Semantik von hervorgehobenen Bereichen willkürlich definiert werden kann. (Siehe nächste Schritte.)
  7. Wählen Sie einen der Einträge in der Inhaltsgliederung aus. Die entsprechenden Zeilen werden in der linken vertikalen Skala des Editors durch einen blauen Balken gekennzeichnet.
  8. Schalten Sie nun im Java-Editor auf den Modus für die segmentierte Darstellung um. Hierzu stellen Sie sicher, dass der Editor fokussiert ist, und drücken Sie die Schaltfläche in der Desktop-Symbolleiste, deren Kurzinfo angibt, dass die Anzeigefunktion für die segmentierte Quelle aktiviert/inaktiviert wird. Diese Funktion ist beispielsweise für die Verwendung in Sichten mit einfachen Methoden gedacht.
  9. Wählen Sie in der Inhaltsgliederung einen anderen Eintrag aus. Jetzt zeigt der Editor lediglich das ausgewählte Segment an. Wenn Sie den Eintrag in der Inhaltsgliederung abwählen, wird wieder der gesamte Java-Code angezeigt.
  10. Wählen Sie in der Inhaltsgliederung einen Eintrag aus, wählen Sie einen Teil des sichtbaren Textes aus, und fügen Sie eine Task für die Auswahl hinzu. Die Task wird daraufhin in der Taskliste angezeigt. Ändern Sie den sichtbaren Code. Wählen Sie in der Taskliste die zuvor erstellte Task aus, und drücken Sie die Schaltfläche "Gehe zu Datei". Die Task wird im sichtbaren Bereich ausgewählt, wobei die zuvor angelegten Änderungen korrekt berücksichtigt werden.
  11. Wählen Sie in der Inhaltsgliederung einen anderen Eintrag aus. Zeigen Sie die zuvor hinzugefügte Task in der Taskliste an. Die Hervorhebungsbereich des Editors wird automatisch vergrößert und schließt den Bereich der angezeigten Task ein.
  12. Öffnen Sie einen neuen Arbeitsbereich. Öffnen Sie im neuen Arbeitsbereich einen Java-Editor für dieselbe Datei wie im ersten Arbeitsbereich. Ändern Sie den Inhalt des Editors. Wechseln Sie zurück in den ersten Arbeitsbereich. Der Editor zeigt die Änderungen an, die im anderen Arbeitsbereich vorgenommen wurden. Die beiden Editoren, die dieselbe Datei anzeigen, sind direkt miteinander verbunden.

Grundregeln für die Erstellung von angepassten Texteditoren

Die folgenden Schritte müssen normalerweise ausgeführt werden, wenn ein angepasster Texteditor entwickelt wird.
  1. Erstellen Sie einen Dokument-Provider. Ein Dokument-Provider (siehe IDocumentProvider) erstellt und verwaltet Dokumente (siehe IDocument), die eine Textdarstellung von Eingabeelementen eines Editors enthalten. Es muss unbedingt festgelegt werden, wie die Umsetzung zwischen Element- und Textdarstellung aussehen soll und ob der Dokument-Provider von mehreren Editoren gemeinsam benutzt werden soll oder nicht. Weitere Informationen finden Sie in der Klasse "FileDocumentProvider" des Java-Beispieleditors.
  2. Erstellen Sie eine Funktion für die Dokumentpartitionierung. Eine solche Funktion (siehe IDocumentPartitioner) unterteilt ein Dokument in unverknüpfte Bestandteile. Die Partitionierungsfunktion ordnet jedem Bestandteil 1 Inhaltstyp aus einer Gruppe von Inhaltstypen zu, die in der Partitionierungsfunktion vordefiniert sind. Die Partitionierung des Dokuments muss bei jeder Dokumentänderung aktualisiert werden. Weitere Informationen finden Sie in der Klasse "JavaPartitioner" des Java-Beispieleditors. Die Klasse "JavaPartitioner" bestimmt Bereiche der Typen "Mehrzeiliger Kommentar", "JavaDoc-Kommentar" und "Anderes". Es muss sichergestellt sein, dass der Dokument-Provider für jedes Dokument definiert ist, das durch den Dokument-Provider erzeugt wird.
  3. Legen Sie fest, welche Plug-ins für Quellenanzeigefunktionen bereitgestellt werden sollen. Unterstützte Plug-ins sind unter anderem Strategien für die automatische Einrückung, Strategien für Doppelklicken, Formatierungsprogramme für Inhalt und Anpassungsfunktionen für die Textdarstellung. Die anschließende Beschreibung beschränkt sich auf die Anpassungsfunktion für die Textdarstellung (siehe IPresentationReconciler). Im Java-Beispieleditor, wird die Anpassungsfunktion für die Textdarstellung verwendet, um die Syntaxhervorhebung zu implementieren.
  4. Erstellen Sie für alle Plug-ins für Quellenanzeigefunktionen die entsprechenden Erweiterungen für jeden unterstützten Inhaltstyp. Wie bereits erläutert definiert die Funktion für die Dokumentpartitionierung die unterstützten Inhaltstypen. Die Standardimplementierung von IPresentationReconciler unterstützt die Erweiterungen IPresentationDamagers und IPresentationRepairers. Diese Erweiterungen werden als spezifische Erweiterungen für einen bestimmten Inhaltstyp betrachtet. Daher muss der Benutzer für einen angepassten Editor zunächst eine Untergruppe der unterstützten Inhaltstypen auswählen. In Bereichen eines Typs, der zur ausgewählten Untergruppe gehört, wird beispielsweise die Syntax hervorgehoben. Die Erweiterungen für jeden dieser Typen müssen implementiert werden. Siehe JavaDamagerRepairer und JavaDocDamagerRepairer im Beispieleditor.
  5. Erstellen Sie eine Konfiguration für die Quellenanzeigefunktion, indem Sie die zuvor erstellten Plug-ins und Erweiterungen verwenden. Siehe JavaSourceViewerConfiguration im Beispieleditor.
  6. Passen Sie die Klasse "TextEditor" oder "AbstractTextEditor" an die entwickelte Funktion für die Dokumentpartitionierung und die Konfiguration der Quellenanzeigefunktion an. Fügen Sie Aktionen hinzu, oder ersetzen Sie Aktionen, und übernehmen Sie den Aufbau des Kontextmenüs im Editor. In der tatsächlichen Version muss diese Anpassung in einer Unterklasse erfolgen. Siehe JavaEditor im Beispieleditor.
  7. Definieren Sie eine geeignete Ergänzung für die Aktionsleistes, die die Symbolleiste und die Menüs des Desktops durch editorbezogene Aktionen ergänzt. Siehe JavaActionContributor im Beispieleditor.
  8. Erweitern Sie die XML-Konfigurationsdatei des Editor-Plug-ins, damit der Editor am vordefinierten Editorerweiterungspunkt für eine spezifische Gruppe von Dateierweiterungen registriert wird. Definieren Sie außerdem die Ergänzung für die Aktionsleiste in der XML-Datei. Siehe Datei "plugin.xml" dieses Beispiels.

Codeaufbau im Beispiel

Der Beispielcode ist in vier Pakete aufgeteilt:
 

Copyright IBM Corporation und Andere 2000, 2003