Session war auf Deutsch, trotz des Titels.
Teaser: Showcase
Office demo: Mail, Bildverwaltung. Drag'n Drop-Beispiel.
GWT-Konzepte
Motivation – ajaxified -"nicht nur Anwendungen, die AJAX verwenden, sondern RC, desktop-ähnlich".
Neuer Ansatz: Java-only code. Kompiliert zu HTML, JS, CSS. GWT principles.
Components: UI library, Java2JS compiler; Language support < Java 5.
Hosted mode shell. JSNI. XML, JSON support. GWT designer.
Beispiel: Hello World
Project creator script. %GWT_HOME%projectCreator -eclipse GwtHelloWorld
NN
applicationCreator
Client-Klasse benötigt Client-suffix.
Hosted mode shell.
GwtHello.gwt.xml – Modulbeschreibungsdatei. /public-Verzeichnis enthält statische Elemente. <meta>-Tag in HTML und einbinden der JS-Datei.
Genauerer Überblick
Module
module descriptor, client subpackage (Java client code), public subpackage.
Widgets + Panels
Widgets: Eigentliche GUI-Componenten, listener (Swing-ähnlich?). Panels: Für Anordnung der Widgets. Composites aus mehreren Widgets. Selbsterstellung rein über Java.
RootPanel: Stellt Schnittstelle zu statischen HTML dar. CellPanels, an Swing Layout-Manager angelehnt. TabPanel und StackPanel. PopupPanel, DialogBox. Hyperlink-Panel: Stellt Punkt/Status der App dar (History Funktionsverlinkung nötig).
i18n
Eingebaut – drei Möglichkeiten, lokalized. Klasse pro Sprache. i18nCreator – Script mit Property-Dateien. Interface mit Methode; JavaScript-dynamischer.
RPC-CallsAJAX-calls gewrappt mit RCP-Idiom. Protokoll proprietär, Transport via JSON.
RemoteServiceServlet Implementierung. Servlet-Mapping, URL-Mapping enthält zusätzlich Pfadangabe.
ClientCall-Beispiel. onSuccess/onFailure.
Was kann man transportieren? Primitive, String, Date, alle Arrays der serialisierbaren Typen. LinkedList nicht unterstützt.
Userdefined Types. IsSerializable direkte Implementierung.
In-depth view
Customization
Drei Ansätze:
Ableitungen von UIObjects, Widgets.
Composite von mehreren Widgets.
JSNI – keword native – dann keine Java-Kompilierung. JS-Code darin auskommentiert.
Clientquellcode + Binärkode in jar. Jar im Classpath des GWT-Kompilers. Ggf. Launch-Konfiguration in Eclipse anpassen.
Wichtige Erweiterung: GWT-Widget-Library (Robert Hanson).
Viele interessante Widgets. Ferner: GWTSpringController. Bugfixes.
Evaluierung – Warum und wann an die Nutzung vom GWT denken?
JS und HTML selbst organisieren. Viele Nachteile.
JS Framworks verwenden. Dojo; Scriptaculous/Prototype. Langsam, schwierig, schlecht zu plflegen.
Echo2;
General Interface (Tibco) (+/DirectWebRemoting).
AdobeFlex2 / OpenLaslo/ XUL: Browserunterstützung sehr problematisch.
GWT
contra: Konventionen müssen erst erlernt werden; CSS zur Beschreibung de Widgets. fehlende Unterstützung von 1.5; kein MVC;
pro: In Java verbleiben, also Debugging, Unit-Tests etc. etc.
g4jsf-Integration der Komponenten in JSF.
Attlassian GWTDesigner. "Ohne JS läuft nichts".
Schreibe einen Kommentar