Erstellen einer TimeSlider Animation mit GWT

In meiner letzten GWT-Webanwendung ging es unter anderem um die Animation von grafischen Elementen. Zum Beispiel sollten U-Bahnen in einem U-Bahnnetz dargestellt werden und der Nutzer sollte die Animation für einen selbstgewählten Zeitraum abspielen können. So sollten z.B. alle U-Bahnen, die zwischen 6 Uhr und 10 Uhr morgens eine bestimmte Station passieren, animiert werden. Diese Animationen habe ich mit JavaScript gebaut. Die Steuerung der Animationen wollte ich jedoch mit GWT-Elementen in die Anwendung einbauen. Dazu brauchte ich Buttons zum Starten und Stoppen der Animation, sowie eine Zeitanzeige, die den Fortschritt der Animation darstellt. Ich war mir ziemlich sicher, daß dies eine Standardfunktion ist, für die es passende Bibliotheken gibt.

Vorhandene Bibliotheken für einen GWT-Slider

Nach langwierigen Recherchen für diesen Anwendungsfall bin ich jedoch nicht fündig geworden. GWT bietet von sich aus keine fertigen Slideranimationen an. Es gibt zwar eine SliderBar im Inkubator, aber diese ist bisher nicht in die offizielle Bibliothek aufgenommen worden.

Ausprobiert habe ich unter anderem die gwt-slider-bar-Bibliothek.  Dies ging zwar in die richtige Richtung, aber der Overhead zum Installieren und Benutzen der Bibliothek war relativ groß und die grafische Umsetzung gefiel mir auch nicht besonders. Diese ist zwar komplett in CSS konfigurierbar, aber dann ist der Nutzen der Bibliothek insgesamt relativ gering. Ein Entwickler von devbliss bietet übrigens einen Cleanup dieser Bibliothek an, mit einer Mavenintegration und besserer Usability der CSS-Styles.

gwt-slider-bar

Schöne Slider gibt es von JQuery oder anderen JavaScript-Bibliotheken. Eine gute Lösung zur Einbindung eines JQuery-Sliders in GWT wird hier vorgestellt.

jquery-slider

Aber moment mal: ich wollte doch eigentlich in GWT mit Java programmieren! Die Integration von JavaScript in GWT ist immer etwas umständlich und man muss die JSNI-Methoden verwenden. Ich kam also zu dem Schluss, dass es einfacher ist, einen eigenen Slider mit den vorhandenen GWT-Elementen zu bauen. Da dies einwandfrei und relativ flott funktioniert hat, möchte ich euch diese Variante hier vorstellen.

 Grafische Elemente des TigerTech TimeSliders

Ein Slider besteht aus den folgenden Elementen: einem Hauptpanel, in welchem sich der Slider bewegt, einem SliderHandle, der von links nach rechts wandert und jeweils einem Panel auf der linken sowie der rechten Seite des SliderHandles, deren Größe sich während der Animation ändert.

slider-sketch

Weiterlesen

Kundenservice mit dem JIRA Issue Collector

Um Kunden eine zusätzliche Supportleistung anzubieten, kann mit dem JIRA Issue Collector ein Feedback-Formular in die Webseite eingebaut werden. Mit diesem kann jeder Webseitenbesucher ein Ticket an den Support erstellen, das direkt in einen JIRA-Vorgang umgewandelt wird. Im Gegensatz zu dem gerade neu veröffentlichten JIRA Service Desk, der sich vor allem für firmeninterne Supportleistungen eignet, ist diese Art des Supports nicht an die Lizenzgröße von JIRA gebunden und kostet auch nichts extra. Es ist dem Kunden allerdings nicht möglich, den Status des Vorgangs zu verfolgen, da er nicht unbedingt einen Zugang zu JIRA besitzen muss (wie es bei dem JIRA Service Desk Voraussetzung ist). Aber die Tickets landen direkt im JIRA-System und können dort bearbeitet werden. Es ist also kein Zwischenschritt der Übertragung  z.B. einer Email in das System notwendig.

Seit JIRA Version 5.1. ist der JIRA Issue Collector ein fester Bestandteil einer jeden JIRA-Instanz. Zur Erstellung eines neuen Issue Collectors sind Adminrechte erforderlich.

Erstellen eines neuen Issue Collectors

Ein Issue Collector gehört immer zu einem Projekt und wird auch innerhalb eines Projekts hinzugefügt. Als Administrator mit globalen Rechten wird das JIRA-Projekt, in welchem die Supporttickets gesammelt werden sollen, aufgerufen und unter Adminstration der Punkt Issue Collectors ausgewählt. Hier sind alle für das Projekt erstellten Issue Collectors aufgeführt und es kann auch eine neuer Collector angelegt werden.

issuecollector-project

Weiterlesen

Entscheidung für ein passendes Web Application Framework

Du hast eine spitzen Idee für eine Web-Anwendung und willst am liebsten gleich losprogrammieren. Aber beim Einrichten Deiner Entwicklungsumgebung fällt Dir ein, daß du gerne mal etwas Neues ausprobieren möchtest, das Dir ein paar Arbeitsschritte erspart und ein schickes modernes Design liefert. Du möchtest gerne ein Web-Application-Framework verwenden.

Ein Web Application Framework ist grundsätzlich für die Entwicklung von dynamischen Webseiten, Webanwendungen oder Webservices ausgelegt. Damit werden sich wiederholende Tätigkeiten vereinfacht, die Wiederverwendung von Code und die Selbstdokumentation der Software-Entwicklung gefördert. Begibt man sich allerdings auf die Suche stellt man schnell fest, daß es unendlich viele Möglichkeiten gibt. Deshalb sollte man zunächst festlegen, welche Anforderungen man an ein solches Framework hat und dann die Alternativen nach diesen Anforderungen hin abklopfen.  Die Frage nach richtig oder falsch läßt sich natürlich so einfach nicht beantworten, aber gut ist es doch ein paar Vor- und Nachteile zu kennen.

web-frameworks

Weiterlesen

Datenbanken für Couch Potatoes und Big Data Management

No more SQL?

Viele Entwickler verwenden heute Datenbanken, die ohne oder mit wenig SQL auskommen. Ein Trend der sich NoSQL nennt.

Der Begriff NoSQL wird zunächst durch das defniert was er nicht ist, nämlich kein SQL. Er wurde erstmalig 2009 von Eric Evans für ein Event in San Francisco verwendet. Vorrangig sollte er als provokative Phrase aufgefasst werden, als Abgrenzung zu der strukturierten Abfragesprache SQL. NoSQL hat zum Ziel, Alternativen zum allgegenwärtigen relationalen Datenbankmodell und üblichen Datenbanktechnologien aufzuzeigen, die für bestimmte Anwendungsfälle besser geeignet sind. Mit dem Web2.0 und dem damit einhergehenden Bedarf nach der Verarbeitung großer Datenmengen erfuhren NoSQL-Datenbanken ein sehr schnelles Wachstum. Die Vereinigung fast aller nicht relationaler Datenbanken unter dem Begriff NoSQL zeigte eine ernstzunehmende Alternative zu SQL-Datenbanken auf. Mittlerweile wird der Begriff von großen Teilen der Community als „Not-only-SQL“ aufgefasst, um somit die strikte Abgrenzung wieder aufzuweichen. Es gibt auch viele Hybrid-Lösungen. Je nach Anwendung gilt es die richtige Datenbank auszuwählen und in vielen (vor allem sicherheitskritischen und komplexen) Fällen ist eine relationale Datenbank auch nach wie vor die richtige Lösung. Die NoSQL-Bewegung setzt sich grundsätzlich für eine freie Datenbankauswahl ein und schärft das Bewußtsein für das große Spektrum an Datenbanken, das zur Verfügung steht.

Im NoSQL-Archiv von Dr. Prof. Stefan Edlich sind alle NoSQL-Datenbanken aufgeführt, aktuell bereits 150!

sql-vs-nosql

Weiterlesen

Schöne Slideshows – einfach umgesetzt für Web und Mobil

Ein Geheimtipp in Sachen Slideshows für alle, die das nicht selber programmieren können oder wollen, sind die Skripte von bretteleben.de. Der Autor Andreas Berger stellt diese kostenlos zur Verfügung, hat eine gut verständliche Bedienungsanleitung dazu geschrieben und bietet bei Fragen einen beispielhaften Support an.

Die Slideshows gibt es als JavaScript-Code, der mit einem div in jede CSS- oder HTML-Seite eingebunden werden kann. Dazu wird einfach die Datei be_slide.js im HEAD-Bereich der Seite verlinkt und dann im BODY-Bereich der Seite an der gewünschten Stelle ein DIV-Container eingefügt, der die Slideshow enthalten wird. Der Container kann beliebig positioniert und formatiert werden. Damit sind in der Seite selbst bereits alle nötigen Vorbereitungen getroffen. Jetzt können Bilder in einem Ordner Pics abgelegt werden und in dem heruntergeladenen JavaScript-File „be_slide.js“ können noch die einzelnen Parameter entsprechend der gewünschten Verwendung gesetzt werden. Das wars. Übrigens ist die Slideshow auch als Plugin für Joomla verfügbar.

Es ist ein super schlankes Skript mit optimaler Funktion und die Kommentare von Nutzern sind durchweg positiv. Das Skript läuft in allen Browsern und Betriebssystemen und auch auf mobilen Geräten hervorragend. Es kann sehr gut und ohne große Programmierkenntnisse auf die eigenen Bedürfnisse  angepasst werden. Damit ist es sehr vielseitig.

Weiterlesen