JETZT ABONNIEREN
Computerworld 04/2010
Developerworld

Google Web Toolkit und Ultra Light Client

22.01.2008 | 17:04 Uhr

Remote Procedure Calls zu Backend Services werden in GWT grundsätzlich asynchron abgewickelt. Die Bibliotheken stellen hierzu eine Reihe von Basisklassen und Interfaces zur Verfügung, welche dann im Hintergrund die Übertragung von Java-Objekten über das HTTP-Protokoll abwickeln. Für jeden Service, der eingebunden werden soll, sind drei Klassen zu entwickeln: Die Service-Implementierung, die von der GWT-Klasse RemoteServiceServletabgeleitet wird und auf dem Server ausgeführt wird. Das dazugehörige Interface, welches die öffentliche Methoden beschreibt und eine dazugehörige asynchrone Variante ohne Rückgabewert und einem Callback-Objekt als zusätzlicher Übergabeparameter.

Die Listings 1 und 2 zeigen die Interfaces und Implementierung eines Services CityService, der zu dem Namen einer Region eine Liste von Städtenamen liefert und beispielsweise für die dynamische Befüllung eines Paares von Drop-Down-Listen: „Region“ und „Stadt“ in einem Suchformular eingesetzt werden könnte.

Listing 1: Interface und Implementierung eines Services, der eine Liste von Städten zu einer Region liefert

Listing 2: Asynchrones Interface ohne Rückgabewert mit Callback-Parameter

Jede Benutzeraktion, die mit einem Backend-Aufruf verbunden ist, wird somit in zwei Stufen abgehandelt: Im ersten Schritt wird der Event Listener des betätigten Bedienelements ausgelöst. Von dort aus erfolgt dann der asynchrone Aufruf des Backend Services, der die Programmkontrolle sofort zurückgibt. Später, wenn das Ergebnis vom Server beim Client angekommen ist, wird dann die onSuccess-Methode des Callbacks abgearbeitet.

Das nachfolgende Listing 3 zeigt eine konkrete Implementierung der zwei Drop-Down Listen „Region“ und „Stadt“. Die Drop-Down Listen werden nebeneinander in einem Flow-Layout dargestellt. RootPanel.get()liefert eine Referenz auf den Body einer HTML Host Page, welche das GWT-Modul enthält.

Die Regionen „Nord“ bis “Süd" sind fest vorgegeben. Beim Umschalten der Region wird die Liste der Städte vom Server neu geladen und aktualisiert. Die Drop-Down Liste cbRegions ist hierzu mit einem Change Listener versehen. Innerhalb der onChange-Methode wird ein Handle zu dem Backend Service erzeugt und die aktuell gewählte Region übergeben. Danach kehrt die Methode des Change Listeners sofort zurück und die Verarbeitung setzt sich erst in der onSuccess-Methode des Callbacks fort.

Listing 3: Implementierung eines Paares von Drop-Down Listen „Region“ und „Stadt“ in GWT

      drucken   PDF   versenden  



anzeige

NEWSLETTER
Abonnieren Sie jetzt!
» Infos zum Newsletter
UMFRAGE
Sollen verseuchte PCs automatisch in Quarantäne?
Ja auf jeden Fall, sie gefährden andere
PCs dürfen ohne Zustimmung des Users gescannt, aber nicht vom Internet getrennt werden
Auf keinen Fall, die Software-Hersteller wälzen so nur ihre Verantwortung für sichere Betriebssysteme ab
abstimmen