2. Eclipse

Bei Eclipse [ecl] handelt es sich um ein Framework, das zuerst einmal nur aus einem rudimentären Kern besteht, der sich dann durch Plug-ins beliebig erweitern lässt. Die Plug-ins enthalten die eigentlichen Funktionalitäten und stellen diese dem Anwender im Eclipse-System zur Verfügung. Zu ihnen gehören auch Plug-ins, die Eclipse zu einer Java-IDE werden lassen. Und genau für diesen Zweck wird das Eclipse-System primär eingesetzt. Die notwendigen Plug-ins dafür sind deshalb auch in einer erweiterten SDK-Version von Eclipse bereits standardmäßig enthalten.

Obwohl auch Plug-ins für die Entwicklung von Programmen in anderen Programmiersprachen existieren, wie etwa für C++ oder PHP, so werden diese bis jetzt noch deutlich weniger genutzt als die für Java, da zum einen der Funktionsumfang noch deutlich geringer ausfällt und zum anderen die Entwicklung und Integration dieser Plug-ins bei weitem noch nicht so fortgeschritten ist, wie dies für Java der Fall ist.

Dass primär die Java-Unterstützung vorliegt, mag daran liegen, dass Eclipse selbst und seine Plug-ins vollständig in Java implementiert sind. Dieser Umstand fällt einem aufgrund der Optik aber zuerst einmal nicht auf, da zur Erstellung der graphischen Oberfläche von Eclipse SWT verwendet wird. Da SWT keine plattformunabhängige Bibliothek ist, sondern auf Komponenten des jeweiligen Betriebssytems zurückgreift, ist Eclipse ebenfalls nicht plattformunabhängig. Eclipse wird jedoch für viele verschiedene Betriebssyteme angeboten, unter denen sich die weit verbreitesten Systeme befinden.

Da sich Eclipse sehr gut als IDE für Java-Applikationen benutzen lässt und Plug-ins für Eclipse solche Java-Programme sind, macht es natürlich sehr viel Sinn, Plug-ins für Eclipse mithilfe von Eclipse zu entwickeln. Dieser goldene Weg wird durch das Plug-in Development Toolkit (PDT) gefördert. Das PDT ist natürlich selbst nur ein Plug-in für Eclipse, das den Entwickler mit vielen Funktionen bei der Entwicklung seines Plug-ins unterstützt.

Die von Plug-ins zur Verfügung gestellten Funktionalitäten lassen sich dabei nahtlos in das Eclipse-System einfügen und können sowohl von den bereits vorhandenen Kernfunktionalitäten des Frameworks Gebrauch machen als auch von Funktionen, die durch andere Plug-ins bereitgestellt werden. Jedes Plug-in kann dabei insbesondere von dem hervorragenden Fenster-System profitieren, welches durch neue Editoren oder Ansichten für die in einem Editor bearbeitete Ressource erweitert werden kann. Diese Ansichten werden in Eclipse Views genannt. Es existieren bereits einige Standard-Views, die jeder Editor für sich nutzen kann, um zusätzliche Informationen über die in ihm zur Zeit bearbeitete Ressource bereitzustellen. Die Erstellung eines Werkzeugs als Plug-in unter Eclipse bietet also sowohl bei der Entwicklung als auch durch den bereits zur Verfügung stehenden Funktionsumfang große Vorteile.

Besonders bei der Erstellung eines graphischen Editors unter Eclipse unterstützt einen das Graphical Editor Framework (GEF). Dieses spezielle Plug-in bietet Grundfunktionalitäten an, die es ermöglichen, mithilfe eines Model-View-Controller (MVC) Konzepts ein beliebiges Modell innerhalb eines Editors zu bearbeiten. Dabei erweitert und spezialisiert das GEF die vom Eclipse-Framework vorgegebenen Konzepte zur Bereitstellung von Funktionalitäten hinsichtlich der besonderen Anforderungen eines graphischen Editors. GEF bietet Entwicklern zudem Standard-Implementierungen vieler Funktionen an, die bei der graphischen Editierung eines Modells nützlich sind. Diese Standards können dann entweder einfach übernommen werden, wenn sie einem gefallen, oder durch eigene Entwicklungen ergänzt oder ersetzt werden.

Das MVC-Konzept von GEF ist sehr offen gehalten, so dass es für jedes beliebige Modell eingesetzt werden kann. Die Controller-Komponenten werden in GEF Parts genannt. Dabei existieren bereits universell einsetzbare Parts, die dann lediglich für die eigenen Zwecke durch Spezialisierung angepasst werden müssen. Dazu dienen sogennante Edit-Policies, welche für ein Part festlegen, wie von GEF erkannte Benutzereingaben in Änderungen des Modells umgesetzt werden. Änderungen am Modell werden von sogenannten Commands vorgenommen.

Die graphische Repräsentation von Modell-Elementen wird durch Figures realisiert. Figures stammen aus dem Plug-in Draw2d, welches von GEF verwendet wird, um ein Modell dem Anwender zu präsentieren. Figures lassen sich hierarchisch strukturieren und mit entsprechenden Layout-Managern ausrichten. Draw2d bietet zudem viele Funktionen zur Darstellung und Zeichnung von graphischen Elementen an.

Die Rahmenbedingungen zur Entwicklung eines graphischen Editors unter Eclipse sind also mehr als gut. Das Konzept, Plug-ins mit dem Tool zu erstellen, für das man das Plug-in entwickelt, ist bestechend. Und die hochwertigen und detaillierten Dokumentationen, die zum Eclipse-System zur Verfügung stehen, ermöglichen einen relativ raschen Einstieg in die Materie. Aus diesen Gründen haben wir uns dazu entschlossen, unseren Editor GuiBuilder als Plug-in unter Eclipse zu realisieren.

Figure 2.1: Symbol für Eclipse-Plug-ins
 
ready.png

Übrigens: Selbst diese Dokumentation, die Sie gerade lesen, wurde mithilfe eines Plug-ins für LATEX unter Eclipse erstellt. Die Möglichkeit, wirklich ein komplettes Projekt einschließlich dessen Dokumentation vollständig unter einer Entwicklungsumgebung zu erstellen und zu verwalten, ist ein weiteres positives Merkmal von Eclipse. GuiBuilder lässt sich zudem noch von unserem Server über den Eclipse-eigenen Install/Update-Mechanisums installieren. Wir vertreiben also auch noch unser Plug-in mithilfe von Eclipse.


i3D. Hannwacker - A. Gebel - M. Dürksen