W e b d e s i g n | Rapid Java mit XDEV 3 Java-Oberflächen schnell entwickeln Mit XDEV 3 können Web-Entwickler schnell und produktiv in Java einsteigen. In Teil 1 unserer Rapid-JavaSerie zeigen wir, wie Sie Java-Benutzeroberflächen mit XDEV 3 ohne Java-Know-how erstellen können. U nzählige IT- und Fachabteilungen setzen bei der Anwendungsentwicklung auf 4GL-Tools wie Microsoft Access, FoxPro oder Filemaker, weil sich damit einfache Softwarelösungen schnell, komfortabel und bereits mit geringen Programmierkenntnissen in Eigenregie umsetzen lassen. Damit entwickelte Lösungen sind jedoch nicht webfähig, sodass sie in vielen Fällen als nicht mehr zeitgemäß gelten und eine Ablösung durch eine echte Webanwendung sehr vorteilhaft wäre. Wer jedoch eine moderne Webanwendung entwickeln möchte, muss mittlerweile verschiedenste Webtechnologien beherrschen, u.a. HTML, JavaScript, CSS, AJAX, XML, JSON sowie Frameworks wie jQuery für die Programmierung der Oberfläche und darüber hinaus mindestens eine weitere Sprache wie PHP, ASP oder JSP für die Umsetzung des Server-Teils. Mit XDEV 3 lassen sich Java-Oberflächen wie mit einem Grafikprogramm per Drag & Drop designen. Java-Kenntnisse braucht man dazu nicht, denn der Code wird automatisch generiert. 44 Da nur die wenigsten Fachabteilungen über ausreichend Know-how in dem erforderlichen Umfang verfügen, bleiben viele wichtige Projekte auf der Strecke oder liegen einfach für unbestimmte Zeit auf Eis. Mit XDEV 3 gibt es jetzt eine Alternative für alle Entwickler, die Webanwendungen genauso schnell und einfach wie mit Access entwickeln möchten. XDEV 3 ist eine RAD-Entwicklungsumgebung (Rapid Application Development), mit der Sie sowohl Web- als auch herkömmliche Desktop-Applikationen auf Basis von Java um ein Vielfaches schneller und einfacher realisieren können als mit konventionellen Java-Editoren wie Eclipse. XDEV 3 ist unter www.xdev-software. de frei verfügbar und auch für den kom- merziellen Einsatz völlig lizenzkostenfrei. Version 3 befindet sich im finalen Betastadium und soll in Kürze als Final Release verfügbar sein. Der erste Teil unserer sechsteiligen Serie beschreibt, wie Sie mit XDEV 3 professionelle Weboberflächen blitzschnell per Drag & Drop designen können, ohne auch nur eine Zeile Javacode schreiben zu müssen. Web-Oberflächen per Drag&Drop Oberflächenentwicklung in Java ist gewöhnlich mit sehr viel Programmier- und Experimentierarbeit verbunden und damit sehr zeitaufwendig. Viele Java Entwickler vermissen einen komfortablen GUI-Builder (Graphical User Interface), mit dem man grafische Oberflächen schnell und einfach zusammenklicken kann. Genau darauf hat man in XDEV 3 großen Wert gelegt und die Umgebung mit dem komfortabelsten GUIBuilder ausgestattet, den es für Java gibt. Wie mit einem Grafikprogramm lassen sich damit Java-Oberflächen in Rekordzeit und völlig ohne Programmierung erstellen. Auch Designer ohne JavaKnow-how werden damit auf Anhieb zurechtkommen und können ohne Probleme die komplette Oberfläche einer Java Anwendung umsetzen. Alle Oberflächenelemente 0511 internet magazin Rapid Java mit XDEV 3 |Webdesign Java Applets Applets sind weder langsam noch unsicher. Diese Vorurteile stammen noch aus der Anfangszeit des Webs, als der Netzzugriff noch über Modem erfolgte und Applets zu allem Überfluss meist so programmiert waren, dass sie vollständig geladen wurden. Die XDEV-Entwickler haben diesen Mängel jedoch mit einer automatisierten Nachladeprozedur gelöst. XDEV 3 splittet ein Applet einfach in viele einzelne Dateien auf. Der Ladevorgang funktioniert dann ähnlich wie bei Ajax und Flash. Bei Aufruf werden anfangs nur Programmkern und Startfenster geladen. Alle weiteren Fenster und Dialoge werden erst bei Bedarf nachgeladen. Egal wie groß eine Anwendung ist, sie bleibt immer performant. Das Nachladen geht sogar deutlich schneller als bei Ajax-Frontends. Da Applet-Dateien aus kompri- miertem Bytecode bestehen, ist eine komplette Java-Oberfläche nicht größer als gerade einmal 10 bis 20 KByte. Eine vergleichbare HTML-/ JavaScript-Oberfläche wäre leicht zehnmal größer. Wenn es um die Sicherheit geht, wird Java aufgrund der Namensgleichheit immer wieder mit JavaScript verwechselt, das Hacker seit jeher bevorzugt für Viren und Trojaner verwenden. Während Applets mit JavaScript nicht das Geringste zu tun haben, sind es vielmehr AjaxAnwendungen, deren Oberflächen überwiegend in JavaScript geschrieben sind. Java Applets sind dagegen um ein Vielfaches sicherer, weil sie schon immer in einer Sandbox laufen. Dabei handelt es sich um ein Sicherheitskonzept, das den unerlaubten Zugriff auf einen frem- den Rechner unmöglich macht. Damit zählen Applets zu den sichersten Webtechnologien überhaupt. Java Applets stellen eine mächtige und sichere Webtechnologie dar, die Ajax-Frontends in nahezu allen Belangen überlegen sind. Anders als Ajax-Techniken ist Java standardisiert, ausgereift, robust, bietet deutlich mehr Features für Oberflächen und ist völlig Browser-unabhängig. Wegen der Komplexität wurde Java bislang überwiegend im Enterprise-Bereich eingesetzt. Mit XDEV 3 wird die Java-Entwicklung jedoch nun so einfach, dass jeder Webentwickler damit in der Lage ist, leistungsfähige Webanwendungen vollständig in Java zu entwickeln, wodurch sich für viele Entwickler völlig neue Möglichkeiten ergeben werden. lassen sich aus einem Palettenfenster per Drag & Drop in das Arbeitsfenster einfügen und dort pixelgenau positionieren. Für Design und Funktionalität einer Oberfläche steht Ihnen die volle Power von Java mit all seinen GUI-Komponenten zur Verfügung, unter anderem Tabellen, Trees, Split-Panes (bewegbare Bildschirm-Splitter), TabbedPanes (Registerreiter), Menüleisten und Kontextmenüs, alle Formularkomponenten sowie alle für eine Applikation wichtigen GUI-Konzepte wie Fenstertechnik (wie Internal Frames) und echtes Drag & Drop, welches auch in Verbindung mit parallel laufenden Anwendungen funktioniert. Sogar die Registrierung und Verarbeitung von Ereignissen auf der Oberfläche (EventHandling) übernimmt der GUI-Builder, sodass man sich nur noch um die reine Aktionslogik kümmern muss. Darüber hinaus bringen Java-Komponenten von Haus aus jede Menge Standardfunktionen mit, die nicht extra programmiert werden müssen, wie alphabetische Sortierung in Tabellen, Interaktion zwischen GUI-Komponenten sowie Fokus-Management. Für jede Komponente kann man zudem individuelle Eigenschaften wie Hintergrundfarbe, Rahmen oder Texteinstellungen festlegen. Visual Basic- und Delphi-Entwickler werden sehr viele Parallelen feststellen und sich wie zu Hause fühlen. Viele Komponenten kann man zusätzlich mit einem Icon dekorieren. Dafür braucht man nur die gewünschte Bilddatei aus dem Medienkatalog oder direkt aus dem Dateimanager heraus per Drag & Drop auf das jeweilige Element ziehen. Die verwendeten Bilder werden dabei automatisch in eine Ressourcen-Datei kopiert. Für die Konstruktion von Menüleisten und Kontextmenüs steht ein Assistent zur Verfügung. Die dort angelegten Menüs zieht man einfach per Drag & Drop in eine Menüleiste, die man zuvor in das Arbeitsfenster eingefügt hat. Diese ist dann bereits im Entwurf funktionsfähig. Einsteigern wohl meist noch unbekannt ist die Möglichkeit, Java-Komponenten ineinander zu schachteln. Viele GUI-Elemente wie Tabs (Registerreiter) oder Split-Panes besitzen ein zusätzliches Container-Element, in das man andere Komponenten einfügen kann. Der dabei entstehende Komponentenbaum kann oft viele Hierarchien bilden und wird deshalb in einem speziellen Übersichtsfenster abgebildet. Im Projektmanagement können Sie neue Fenster sowie eine Ordnerstruktur (Packages) dafür anlegen, sodass Sie auch bei großen Projekten immer den Überblick behalten. internet-magazin.magnus.de Java bietet einen enormen Umfang an Widgets für professionelle Weboberflächen, die sich mit XDEV 3 völlig ohne Programmieraufwand per Drag & Drop einbinden lassen, u.a. Menüs und Kontextmenüs, Registerreiter, sortierbare Tabellen, Trees, Fenstertechnik und echtes Drag & Drop. Der einfache Umgang mit dem Layout-Manager Als Layouthilfen für statische Layouts bietet der GUI-Builder erfreulicherweise auch von Designern geschätzte Werkzeuge wie Hilfslinien und Funktionen zum Verteilen, Ausrichten und Andocken von Komponenten. Oberflächen, die sich flexibel an unterschiedliche Bildschirmauflösung anpassen können, werden in Java mithilfe sogenannter Layoutmanager realisiert. Die L ayo u t m a n a g e r- P r o grammierung, insbesondere das häufig benötigte Gridbag-Layout (Tabellenlayout), gilt jedoch als sehr anspruchsvoll und zeitaufwändig. 45 W e b d e s i g n | Rapid Java mit XDEV 3 Mithilfe eines komfortablen Assistenten lassen sich Oberflächen layouten, die sich flexibel an die Fenstergröße anpassen, ohne dass man sich dafür mit der in Java als sehr kompliziert geltenden LayoutmanagerProgrammierung auseinandersetzen muss. Der XDEV 3 GUI-Builder bietet dafür jedoch spezielle Layout-Designmodi, in denen sich auch komplexeste Tabellenlayouts wie mehrspaltige Formulare, in unschlagbar kurzer Zeit und völlig ohne Programmierung umsetzen lassen. Über eine als Toolbox bezeichnete Werkzeugpalette lassen sich sämtliche Einstellungen vornehmen, und man sieht dabei bereits im Entwurf, wie sich das Layout verhält. Besonders innovativ ist die Möglichkeit, Zeilen und Spalten des Layouts bequem mit den Pfeiltasten verschieben zu können, wodurch man Änderungen enorm schnell durchführen kann. Die Layoutmanager-Arbeit erfordert jedoch ein Grundverständnis für das Funktionsprinzip, das man aber mit XDEV 3 sehr schnell verstanden hat. Im Vergleich zur herkömmlichen LayoutmanagerProgrammierung stellt der Assistent eine extreme Erleichterung dar und hilft, eine Menge Entwicklungszeit einzusparen. sen sich auch beliebig andere Kombinationen wählen wie Dropdown-Liste und Tabelle oder Tabelle und Tabelle. Für das komplette Feature müssen Sie nicht eine Zeile Code schreiben. Javabean-Schnittstelle Zudem können Sie ein Formular per Mausklick mit einem Tabellen-Widget verknüpfen. Dadurch wird ein in der Tabelle angewählter Datensatz automatisch in das verbundene Formular übertragen, wo die Daten editiert werden können. Master-Detail-Generatoren Ein besonderes Highlight in XDEV 3 sind die neuen Master-Detail Generatoren, mit denen sich häufig benötigte Master-DetailAnsichten mitsamt Datenbankabfragen und Interaktionslogik generieren lassen, beispielsweise ein Listenfeld mit Markennamen (Master), das bei Selektierung einer Marke automatisch die dazugehörigen Artikeldaten lädt und in einer Tabelle (Detail) anzeigt. Neben Listenfeld und Tabelle las- Bei vielen Webframeworks ist die Entwicklung eigener Komponenten so kompliziert und aufwendig, dass dies in der Praxis nur wenige beherrschen. XDEV 3 dagegen ermöglicht es dem Entwickler auf verblüffend einfache Weise, eigene GUI-Widgets zu erstellen. Darüber hinaus lassen sich über die JavabeanSchnittstelle sämtliche GUI-Beans nahtlos einbinden, die für Java Swing zur Verfügung stehen, sodass sich die Komponentenpalette des XDEV 3 GUI-Builders nahezu grenzenlos erweitern lässt. In Kürze möchte der Hersteller eine Component Suite als Erweiterung zu XDEV 3 anbieten, welche verschiedene Datagrids mit automatischen Filter- und Sortierfunktionen, eine leistungsfähige Kalender-Komponenten, Richtext-Editor und sogar Docking-Windows bieten soll. Das komplette Oberflächen-Theme ändern Für das Erscheinungsbild einer Java-SwingOberfläche ist immer das Look and Feel zuständig. Änderungen einzelner GUI- Formulare automatisch generieren lassen XDEV 3 ermöglicht Ihnen, voll funktionsfähige Formulare mit nur einem Mausklick generieren zu lassen. Dazu müssen Sie nur eine Virtuelle Tabelle (importierte Datenbanktabelle ohne Daten) aus dem Projektmanagement per Drag & Drop in die Arbeitsfläche ziehen. Das Formular wird anschließend automatisch generiert und gelayoutet. Sogar die für Listboxen und Dropdown-Listen notwendigen Datenbankabfragen werden mit erzeugt. Einfacher geht es nicht. 46 Mit XDEV 3 lassen sich Formulare und sogar aufwendige Master-Detail-Ansichten automatisch generieren, sodass man viele starke Programmfunktionen völlig ohne Codieraufwand umsetzen kann und dabei jede Menge Entwicklungszeit spart. 0511 internet magazin Rapid Java mit XDEV 3 |Webdesign Projekte als Webanwendung Mehrsprachige Oberflächen lassen sich mithilfe von Textvariablen realisieren. Die Oberflächentexte werden automatisch aus Sprachdateien ausgelesen und über die Variablen auf die Oberfläche gemappt. Die Sprache lässt sich zur Laufzeit gezielt setzen. Elemente sind in Java zwar nicht so leicht wie mit CSS, dafür können Sie in XDEV 3 das Look and Feel als Ganzes austauschen und damit das Aussehen der kompletten Oberfläche im Handumdrehen verändern. Java Swing selbst liefert zwar nur wenige Look and Feels standardmäßig mit, allerdings sind viele freie über das Internet verfügbar. Mehrsprachige Oberflächen Mehrsprachige Oberflächen lassen sich sehr leicht mithilfe von Textvariablen umsetzen, die man an jeder Stelle der Oberfläche verwenden kann, etwa für Beschriftungen, Tabellenköpfe und Dialoge. Die Funktionsweise ist einfach. Auf der Oberfläche werden dann nur noch Textvariablen verwendet. Diese müssen in geschweiften Klammern und mit $-Zeichen angegeben werden, beispielsweise so: {$save}. Die eigentlichen Texte werden in verschiedenen Sprachdateien ausgelagert. Dabei handelt es sich um gewöhnliche Textdateien, die als project_de.properties benannt und als Ressource über das Projektmanagement eingebunden werden. Je nach Sprache muss das ISO-Länderkürzel de entsprechend ersetzt werden. Die Oberflächentexte selbst werden in Form von Variable-Wert Paaren zeilenweise in der Sprachdatei abgespeichert, beispielsweise save = Speichern. Zur Laufzeit ermittelt die Anwendung dann über die Systemeinstel- internet-magazin.magnus.de lungen des Clients automatisch die richtige Sprache, liest anhand des Länderkürzels die entsprechende Sprachdatei aus und mappt die darin enthaltenen Texte mithilfe der Textvariablen auf die Oberfläche. Layoutete Oberflächen können sich dabei automatisch der Textlänge anpassen. Automatisierte Testumgebung Für das Testen von Webanwendungen muss man gewöhnlich einen lokalen Webserver aufsetzen und konfigurieren, was vor allem für Einsteiger eine unangenehme Hürde darstellt. XDEV 3 nimmt Ihnen diese Arbeit jedoch komplett ab und richtet bereits bei der Installation eine vollständige Testumgebung auf Ihrem Rechner für Sie ein. In XDEV 3 genügt dann ein einziger Mausklick, um ein Projekt als Webanwendung lokal auszuführen. Mit XDEV 3 brauchen Sie keine Buildscripte schreiben, um neue Builds zu erstellen oder um Ihr Projekt als lauffähige Anwendung fertig zu stellen. Denn in XDEV 3 gibt es schließlich einen Assistenten, der das für Sie übernimmt. Damit lässt sich jedes Projekt aus ein und derselben Codebase heraus wahlweise als Webanwendung (Java Applet), klassische Java Applikation oder als Java WebstartAnwendung deployen. Die generierten Applikationen sind lauffähig unter Windows, Linux und auf dem Mac, ohne dass dafür weitere Anpassungen erforderlich sind. Für den Buildprozess bietet XDEV 3 eine Ant-Schnittstelle. Die mit XDEV 3 generierten Java Applets lassen sich genauso wie auch gewöhnliche Webseiten ausliefern. Dazu müssen Sie nur die generierten Dateien per FTP-Client auf Ihren Webserver übertragen. Zwar empfiehlt sich der Einsatz eines V-Servers, ein StandardWebpaket ist jedoch bereits für diese Anwendung ausreichend. Gerald Kammerer / ds Mit einer Component Suite sollen in Kürze viele weitere Oberflächenkomponenten zur Verfügung stehen, wie eine leistungsstarke KalenderKomponente. 47