Wer die Software nicht kommerziell nutzen will, kann sie von der Website des Herstellers (siehe Onlinequellen) ohne Registrierung herunterladen. Eine kommerzielle Sourcecode-Lizenz kostet 900 Euro. Das Archiv der kompletten Distribution beinhaltet neben diversen Applikationen einen Jetty Webcontainer. Im bin-Verzeichnis finden sich alle notwendigen Startskripte, jeweils in einer Unix- und einer Windows-Version. Nicht dabei ist das nötige Java Development Kit in (mindestens) Version 1.4.2.
Eine kleine Beispielanwendung soll die Arbeit mit dem Framework veranschaulichen. Um sie aufrufen zu können, startet man direkt den UnifiedServer (bin/UnifiedServer/WiSer-UnifiedServer.cmd). Anschließend kann man sie über den Browser (http://localhost:8080/Wiser-HelloWorld/), als Swing Fat Client (bin\StandAloneApplications\WiSerHelloWorldSwingFat.cmd) oder Thin Client (bin\SwingThinClients\WiSerHelloWorldSwingClient.cmd) laufen lassen.
Einen Überblick über die mehr als 40 verfügbaren Widgets gibt HelloWorld. Diverse andere Anwendungen sind ebenfalls einen Blick wert, allen voran der GUI Builder, dem Startpunkt für das eigene erste Programm, das in ein paar Minuten fertig ist. Wer möchte, kann es direkt im Webbrowser starten, schneller ist die Nutzung als Swing-Fat-Client. Der GUI Builder präsentiert sich mit drei separaten Fenstern. Den meisten Platz nimmt das Fenster ein, in dem man die Anwendungen zusammenbaut. Daneben stehen ein kleines Meldungsfenster sowie eine Quellcode-Anzeige in XML für die zusammengeklickten Oberflächen.
Die komplexe Oberfläche des GUI Builder ist nicht wirklich intuitiv zu bedienen. Leider kann man die Elemente nicht per Drag & Drop auf die Arbeitsfläche ziehen. Das Zusammenstellen der Oberflächen ähnelt dem Bearbeiten von XML-Daten in einem beliebigen XML-Editor. Diese baumorientierte Darstellung mit einem Vorschaubereich (Preview) pro Element ist gewöhnungsbedürftig.
Als Ausgangspunkt für WidgetServer-Anwendungen dient das XML-Element <application>, dem der Entwickler alle gewünschten Kindelemente hinzufügt. Ein guter Start ist eine <page>, die ein einfacher Rechtsklick auf den gewünschten Knoten (insert Widget) in den Baum einfügt. Anschließend erfolgt das Anlegen eines Formulars per <form>. Erst dem kann man die gewünschten, sichtbaren Seitenelemente zuordnen. Im Beispiel bleibt es zunächst bei einem Label (<label>), einem Eingabefeld (<input>) und einem Button (<button>):
<application [...]>
<page name="mypage" [...]>
<form name="myform" [...]>
<label name="mylabel" [...]></label>
<input name="myinput" [...]></input>
<button name="mybutton" [...]></button>
</form>
</page>
[...]
</application>
Neben einem Namen benötigen die XML-Elemente weitere Attribute. Was hier aus Platzgründen fehlt, muss selbstverständlich dennoch angelegt werden. Ist das geschafft, steht die erste Oberfläche auch schon. Was im Codeausschnitt recht übersichtlich erscheint, bleibt in der Praxis allerdings undurchschaubar. Neben den Widgets selbst werden deren Positionierungen, Größen, Längen, Farben und viele weitere Elemente der Oberflächendarstellung in XML abgebildet. Kein Wunder also, dass eine einfache Anwendung mit den drei Elementen schnell ein XML-Listing mit rund 60 Zeilen füllt. An ein manuelles Erstellen dieser Datei ist daher zumindest für Einsteiger nicht zu denken. Vor allem deshalb, weil es weder XML-Schemata noch DTDs gibt. Hier leistet der GUI Builder wertvolle Hilfe. Dennoch benötigt man für die ersten Schritte das auf der Website des Herstellers verfügbare Tutorial. Nach etwas Einarbeitung stellt man allerdings fest, dass die Beispielanwendung durch die Verwendung von anderen Widgets auf einen 8-Zeiler schrumpfen kann.
Die serverseitigen Anteile der WidgetServer-Applikationen sind JEE-Webanwendungen. Als solche müssen sie zuerst in ein entsprechendes Format gebracht werden. Einen guten Einstieg bietet hier das ebenfalls in der Distribution enthaltene Beispielverzeichnis, das man man unter /deployment template findet. Man kopiert das Verzeichnis und ersetzt jegliches Vorkommen von [your application name] in Datei- und Ordnernamen durch den gewünschten Anwendungsnamen, der eindeutig sein muss, damit es beim Deployment auf einem JEE-Server nicht zu Namenskonflikten kommt.
Auf der nächsten Seite: Default-Werte
Themenforum: Java