Qooxdoo vorgestellt

Teil 3: Workshop Javascript-Framework: Qooxdoo

Selbstverständlich können Container auch ineinander verschachtelt werden, um dadurch auch komplexere Oberflächen zu generieren.

Ereignisse

Damit lassen sich einzelne Kontrollelemente erzeugen und auch platzieren. Kernaufgabe einer Benutzeroberfläche ist aber die Interaktion mit dem Benutzer, das heißt, der User soll mit seinen Aktionen aktiv Operationen auslösen.

Wie die meisten anderen Frameworks setzt auch Qooxdoo auf Ereignisse, um Nutzeraktionen zu verarbeiten. So ist beispielsweise das Klicken eines Buttons ebenso ein Ereignis wie die Eingabe eines Textes in ein Eingabefeld.

Jedem Ereignis ist eine Verarbeitungsfunktion hinterlegt, die im Laufe der Entwicklung durch eine eigene Implementierung ersetzt werden kann. Das folgende Listing zeigt ein Beispiel hierfür. In diesem Fall wird eine einfache Javascript-Alert-Box angezeigt, wenn der Benutzer das erzeugte Button-Objekt anklickt.

var btn = new qx.ui.form.Button
("Sag Hallo");
var doc = this.getRoot();
doc.add(btn, { left : 100, top :
50 });
btn.addListener("execute", function
(e) {
alert("Hallo World!");
});

Auf diese Art und Weise lassen sich alle Aktionen verarbeiten. Was Sie als Implementierung des Ereignisses realisieren, hängt natürlich von den jeweiligen Anforderungen ab. Die Ausgabe von Werten, die Veränderung anderer Widgets oder das Nachladen von Daten sind typische Implementierungen von Ereignis-Handlern.

Ajax

Was wäre eine Javascript-Anwendung ohne die Möglichkeit, Daten vom Server nachzuladen? Ajax ist heute das Rückgrat der meisten Webseiten und Applikationen. Selbstverständlich unterstützt auch Qooxdoo diese Möglichkeit des Datenaustauschs, wobei es hierfür zwei unterschiedliche Arten gibt, dies zu implementieren.

Die erste Möglichkeit ist die direkte Nutzung von Ajax, um mit einem Server-Skript zu kommunizieren. Dies funktioniert ähnlich dem, was man von anderen Javascript-Bibliotheken gewohnt ist. Wie im folgenden Beispiel zu sehen, kommt auch hier das Ereignis-Handling für die Verarbeitung der Serverantwort zum Einsatz.

var request = new qx.io.remote.
Request( "http://application/getDevices.php",
"GET", "text/plain");
request.addEventListener
("completed",
function(e) {
var content = e.getData().
getContent();
// Verarbeitung der Daten
});
request.send();

Die zweite Möglichkeit neben dem direkten Ajax-Aufruf kann man sich als zusätzliche Komfort-Schicht zu Ajax vorstellen. Qooxdoo ermöglich RPC (Remote Procedure Calls), also den direkten Aufruf von Funktionen auf dem Server. Es basiert hierbei auf JSON-RPC. Im Vergleich zu reinem Ajax muss der Server dieses Protokoll ebenfalls unterstützen, um von Qooxdoo aufgerufen werden zu können.

Fertige Implementierungen für alle wichtigen Programmiersprachen wie PHP, Java, Python und Perl sind auf der Qooxdoo Projektseite verfügbar. Das folgende Beispiel zeigt einen RPC-Aufruf der Funktion getDevices der Klasse DeviceService.

var rpc = new qx.io.remote.Rpc(
"http://localhost/hpsuboxx/.qxrpc",
"de.rotex.DeviceService"
);
var result = rpc.callSync
("getDevices", "indoor");

Die Funktion callSync ist für den Aufruf der serverseitigen Funktion verantwortlich, dabei können wie im Beispiel zu sehen auch Parameter (hier indoor) an die Methode übergeben werden.

Mehr zum Thema

Youtube Sperre umgehen GEMA
Videos freischalten

So umgehen Sie die GEMA-Sperre bei Youtube. Was Sie dazu brauchen, und wie es am einfachsten geht.
Neue Fritzboxen unterstützen den AC-Standard.
WLAN-Geschwindigkeit verdoppeln

Mehr WLAN-Geschwindigkeit: Mit dem WLAN-Standard 802.11ac und den richtigen Geräten und Einstellungen verdoppeln Sie den Datendurchsatz.
Netflix auf dem TV
Programm in der Übersicht

Welche Filme und Serien gibt es bei Netflix eigentlich zu sehen? Was ist neu im Streaming-Angebot? Diese Antworten helfen weiter.
Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
E.T. – Der Außerirdische
Vorschau auf Film- und Serien-Highlights

Amazon Prime Instant Video lockt im Dezember 2016 mit Film-Highlights wie "E.T.", "Fast & Furious 7" und der Serie "Ku’damm 56​".