© Excellent backgrounds/Shutterstock.com
Java Magazin
GWT und JavaScript-Frameworks

So lernen sie sich kennen

Mit dem Google Web Toolkit (GWT) bietet Google ein Framework an, mit dem sich Webapplikationen ausschließlich mit Java und ohne Verwendung von JavaScript entwickeln lassen [1]. Weil Internetbrowser Java-Anwendungen aber nicht ausführen können, wird ein Zwischenschritt benötigt: Der GWT Compiler übersetzt den Java-Code in ausführbares JavaScript, das dann problemlos im Browser laufen kann. Dieser kann jedoch nicht alle Bibliotheken übersetzen. Mit ein paar Tricks kann man es ihm aber beibringen.

Holger Herrmann


Der Vorteil von GWT, Java-Code in JavaScript zu übersetzen – zumindest werden das Java-Freunde als Vorteil sehen – hat einen schwerwiegenden Nachteil: der Umfang der in GWT verwendbaren Komponenten ist begrenzt. Die vom GWT-Compiler verstandenen Bibliotheken sind festgelegt, wohingegen man sich in der JavaScript-Welt von jQuery, Angular und Co. aus einer Fülle von JavaScript-Frameworks bedienen kann, um einzelne Funktionalitäten einfach zu integrieren. In GWT ist es zwar auch möglich, weitere Bibliotheken einzubinden, wenn der Sourcecode vorliegt, doch hier soll es um externe JavaScript-Bibliotheken gehen. Diese Integration ist nicht ganz einfach, aber mithilfe des JavaScript Native Interface (JSNI) möglich.

Als Beispiel nehmen wir die leicht abgewandelte Version einer Anwendung, die ich vor kurzem umgesetzt habe. Eine fachliche Anforderung lautete, in unsere GWT-Anwendung, die workflowbasierte CRM-Lösung Targenio [2], Screenshots einfach mit Copy and Paste einfügen zu können, die dann auch direkt angezeigt werden sollten. Das führte zur Entwicklung einer neuen GUI-Komponente. In der Praxis handelte es sich um eine GXT-Komponente, doch für diesen Artikel schreibe ich eine GWT-Komponente, weil das zusätzliche Framework GXT dafür nicht notwendig ist. Die bisherige Alternative war es, einen Screenshot über ein externes Bildbearbeitungsprogramm auf Festplatte zu speichern und anschließend als Anhang zu verwenden. Dieses Verfahren ist auf der einen Seite umständlich, auf der anderen Seite werden die Bilder dann auch nicht direkt in der Oberfläche angezeigt.

Ich wollte also eine GUI-Komponente entwickeln, die Screenshots entgegennehmen und anzeigen kann. Dabei sollte es nicht bei nur einem einzigen Screenshot bleiben, sondern es sollten beliebig viele Screenshots in Form eines Bildprotokolls untereinander angezeigt werden können. Jedes Bild sollte mit einem Kommentar versehen werden können, und natürlich musste eine Möglichkeit zum Löschen einzelner Einträge zur Verfügung stehen.

Abb. 1: Die UI-Komponente nach Einfügen eines Screenshots

Die Komponente hatte letztendlich in etwa das Aussehen wie in Abbildung 1. Als Rahmen wird ein VerticalPanel verwendet, weil damit mehrere Komponenten einfach untereinander dargestellt werden können. Erstes Kind dieses Panels ist ein Label, das ein Bild als Screenshot entgegennehmen kann. Das zweite Kind wird ein ScrollPanel. Schließlich soll es möglich sein, innerhalb der Komponente zu scrollen, wenn mehrere Bilder nicht mehr auf...

Java Magazin
GWT und JavaScript-Frameworks

So lernen sie sich kennen

Mit dem Google Web Toolkit (GWT) bietet Google ein Framework an, mit dem sich Webapplikationen ausschließlich mit Java und ohne Verwendung von JavaScript entwickeln lassen [1]. Weil Internetbrowser Java-Anwendungen aber nicht ausführen können, wird ein Zwischenschritt benötigt: Der GWT Compiler übersetzt den Java-Code in ausführbares JavaScript, das dann problemlos im Browser laufen kann. Dieser kann jedoch nicht alle Bibliotheken übersetzen. Mit ein paar Tricks kann man es ihm aber beibringen.

Holger Herrmann


Der Vorteil von GWT, Java-Code in JavaScript zu übersetzen – zumindest werden das Java-Freunde als Vorteil sehen – hat einen schwerwiegenden Nachteil: der Umfang der in GWT verwendbaren Komponenten ist begrenzt. Die vom GWT-Compiler verstandenen Bibliotheken sind festgelegt, wohingegen man sich in der JavaScript-Welt von jQuery, Angular und Co. aus einer Fülle von JavaScript-Frameworks bedienen kann, um einzelne Funktionalitäten einfach zu integrieren. In GWT ist es zwar auch möglich, weitere Bibliotheken einzubinden, wenn der Sourcecode vorliegt, doch hier soll es um externe JavaScript-Bibliotheken gehen. Diese Integration ist nicht ganz einfach, aber mithilfe des JavaScript Native Interface (JSNI) möglich.

Als Beispiel nehmen wir die leicht abgewandelte Version einer Anwendung, die ich vor kurzem umgesetzt habe. Eine fachliche Anforderung lautete, in unsere GWT-Anwendung, die workflowbasierte CRM-Lösung Targenio [2], Screenshots einfach mit Copy and Paste einfügen zu können, die dann auch direkt angezeigt werden sollten. Das führte zur Entwicklung einer neuen GUI-Komponente. In der Praxis handelte es sich um eine GXT-Komponente, doch für diesen Artikel schreibe ich eine GWT-Komponente, weil das zusätzliche Framework GXT dafür nicht notwendig ist. Die bisherige Alternative war es, einen Screenshot über ein externes Bildbearbeitungsprogramm auf Festplatte zu speichern und anschließend als Anhang zu verwenden. Dieses Verfahren ist auf der einen Seite umständlich, auf der anderen Seite werden die Bilder dann auch nicht direkt in der Oberfläche angezeigt.

Ich wollte also eine GUI-Komponente entwickeln, die Screenshots entgegennehmen und anzeigen kann. Dabei sollte es nicht bei nur einem einzigen Screenshot bleiben, sondern es sollten beliebig viele Screenshots in Form eines Bildprotokolls untereinander angezeigt werden können. Jedes Bild sollte mit einem Kommentar versehen werden können, und natürlich musste eine Möglichkeit zum Löschen einzelner Einträge zur Verfügung stehen.

Abb. 1: Die UI-Komponente nach Einfügen eines Screenshots

Die Komponente hatte letztendlich in etwa das Aussehen wie in Abbildung 1. Als Rahmen wird ein VerticalPanel verwendet, weil damit mehrere Komponenten einfach untereinander dargestellt werden können. Erstes Kind dieses Panels ist ein Label, das ein Bild als Screenshot entgegennehmen kann. Das zweite Kind wird ein ScrollPanel. Schließlich soll es möglich sein, innerhalb der Komponente zu scrollen, wenn mehrere Bilder nicht mehr auf...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang