Samstag, 25. April 2009

Swing GUI Builder

Für die Entwicklung von Swing Anwendungen finde ich einen GUI Builder eine recht angenehme Sache. Man erhält zu Beginn der GUI-Entwicklung recht flott ansehnliche Ergebnisse und später muß man sich für kleinere Änderungen nicht durch den oft ewig langen GUI Code wühlen. Vor allem, wenn eine vielfalt an Komponenten in einem GridBagLayout versammelt sind, ist nachträgliches Ändern mit einiger Lesearbeit verbunden. All das kann ein GUI Builder vereinfachen.

Letztes Jahr habe ich nach langem wieder einmal mit einem neuen Swing Projekt begonnen. Da stand also als erstes die Frage nach einem vernünftigen GUI Builder im Raum. Früher habe ich das mit dem Netbeans eignenen GUI Builder Matisse gemacht. Dieses malsollte die Entwicklung jedoch mit Eclipse vonstatten. Ein Rundumblick freier Swing GUI Builder Plugins ließ aber recht schnell Ernüchterung einkehren. Die Auswahl ernst zu nehmender Plugins ist recht übersichtlich.

Zunächst habe ich mich dem Eclipse VEP befasst. Nach dem ich den Abhängigkeitszoo endlich im Griff hatte und das gute Stück in Augenschein nehmen konnte, dominierte vor allem das Gefühl der Enttäuschung. Trägheit und Bugs an allen Ecken und Enden haben mich das Plugin schnell ins Jenseits befördern lassen.

Das Jigloo Plugin, das ich mir als nächste vorgenommen habe, konnte mich ebenfalls nicht so recht überzeugen. Als angenehm habe ich das Arbeiten damit jedenfalls nicht empfunden und auch hier eine Vielzahl von Unzulänglichkeiten entdeckt. Beide GUI Builder scheinen mir erheblich besser für SWT als für die Swing Entwicklung geeignet zu sein. Also ging die GUI Entwicklung doch wieder mit Netbeans/Matisse vonstatten. Matisse verwendet XML-Daten und generiert daraus den Javacode - hat also nicht den Anspruch mit Livecode zu arbeiten, wie VEP und Jigloo. Letztere verplempern mit dem Livecode während des Bearbeits einiges an Zeit. Manuelle Änderungen am Code haben dann auch gleich spührbare Wartezeiten zur Folge.

Einige Zeit später bin ich noch auf das Eclipse Plugin Matisse4Eclipse gestoßen. Das Plugin basiert auf Netbeans Matisse, wurde jedoch für Eclipse umgeschrieben. Matisse4Eclipse ist eigentlich Bestandteil der kommerziellen MyEclipse Enterprise Workbench, läßt sich jeodch auch einzeln installieren. Matisse4Eclipse ist sehr flott, bringt aber leider einige Features des Orginals nicht mit. Währen Netbeans/Matisse die eingegebene Texte und Images gleich lokalisiert ablegt, muß diese Arbeit bei Matisse4Eclipse von Hand gemacht werden, was auch gleich zur Folge hat, dass die Komponenten im Designer keine Texte/Bilder anzeigen, sondern nur auf "user code" hinweisen. Weiteres Manko sind die wenig unterstützden Refactoring Möglichkeiten. Das umbenennen der Javaklassen hat zwar auch gleich die passende Auswirkung auf die dazugehörige Form-XML Datei, damit ist dann aber auch schon schluß mit den Möglichkeiten. Packages umbenennen, in denen sich eine Form-XML befindet, schlägt grundsätzlich fehl. Beim Umbennen oder Verschieben von Klassen werden die Referenzen in den Form-XML Dateien nicht mitgezogen. Hat man sich daran gewöhnt, sind es eben immer ein paar Handgriffe mehr, die man ausführen muß, um zu refaktorisieren.

Ebenfalls unangenehm aufgefallen ist mir die fehlende Unterstützung des ApplicationFramework, dass Netbeans/Matisse einem automatisch aufdrängt. Ganz Rund ist die Sache also nicht - bestenfalls ein Kompromiss. Die Kombination aus Eclipse und Matisse4Eclipse finde ich trotz alledem noch halbwegs angenehm. Alles in allem drängt sich mir aber das Gefühl auf, dass in Saceh Swing Builder seit langem nicht mehr viel passiert ist.

Links:
http://www.myeclipseide.com/
http://www.cloudgarden.com/jigloo/
http://www.eclipse.org/vep/WebContent/main.php

Keine Kommentare:

Kommentar veröffentlichen