Community Spotlight - November 2016

The past months have been amazing for Vaadin Directory. We have close to 700 published add-ons! In this month’s Community Spotlight I’d like to highlight some of the new add-ons contributed by our community in the last six months.

Although I’m only featuring completely new add-ons here, there are also some great improvements added to existing add-ons. The best way to stay up to date with what happens in your favourite add-ons is to visit once a week or to follow notifications in the website or the Eclipse plugin.

DNDScroll Add-on by Anna Koskinen

This add-on includes the TableAutoScrollExtension and PanelAutoScrollExtension classes, which add automatic scrolling when a dragged element is hovered near the end or the beginning of the layout.

OAuth2 Popup Add-on by Bryson Dunn

Add OAuth support to your Vaadin applications by embedding a button that does the work for you. The API for this add-on aims to make configuration as simple as possible without hiding any functionality to allow fine-tuning for unsupported OAuth services. The button provided by this add-on opens a popup window which handles the OAuth authentication.

UITask for Vaadin by Mike Pilone

This add-on is primarily composed of a task that can be run on a background thread via an Executor and then complete the work safely in the UI thread/lock via a UIAccessor. In Vaadin, UI modifications must be done after obtaining the UI lock. This add-on attempts to simplify that process by providing an implementation of Future and exposing methods that are safely called in the UI thread.

server-state-button Add-on by Gerald Koch

A button that contains graphical information about the CPU load and RAM usage as well as the logged in users.

Twitter widgets for Vaadin by Marco Collovati

This add-on provides UI components to integrate an application with Twitter, including Tweets, Timelines, and buttons (follow, tweet, mention, hashtag).


SideMenu Add-on by Teemu Suo-Anttila

A Vaadin component that allows the user to easily make side menus like in

Screen Shot 2016-11-29 at 17.27.28.png

Other new add-ons

BrokenImageFix by Marcel Hartwig: Fix for broken images in browsers. If you use an Image with an com.vaadin.server.ExternalResource in modern browsers and the image isn't available, a broken image is shown.

Vaactor by Otto Ringhofer: Asynchronous communication of Vaadin components with actors, manages session state using actors.

NonSpellCheckTextArea Add-on by Andy Wijaya: Text area that doesn't check spelling.

CapsLockWarn Add-on by Andy Wijaya: Warns when the capslock key is active.

OnOffSwitch by 대성 김: CSS3 On/Off switches with animated transitions.

Gwt-vaadin-graphics by Franck Lefebure: A Vaadin wrapper for the GWT Graphics addon and a set of Vaadin components to manipulate SVG widgets.

CleanupServlet Add-on by Anna Koskinen: Add a cleanup thread for each session to make sure session cleanup happens.

Keen Charts Add-on by Alejandro Duarte: A Vaadin integration for Keen IO, an analytics service to collect, explore, and visualize data.

HammerGestures Add-on by Pontus Boström: A extension that provides support for touch gestures such as pan, swipe, pinch and rotate. It uses the Hammer.js library.

DatabaseVisualizer Add-on by Thorben von Hacht: Wrapper around a Polymer web component element to help visualize a relational database.

GridActionRenderer Add-on by Anna Koskinen: A renderer for adding an action column to Grid with separate tooltips for each action.

Enhanced Window Opener by Marco Collovati: An extension of Vaadin’s BrowserWindowOpener that aims to simplify the opening of generated content in a new browser window or tab.

volga by Matti Tahvonen and Nicolas Fränkel: Add metadata to your Vaadin applications, which will help social media services and search engines to better interpret your application.

styletoggler by Jonni Nakari: Button extension which toggles another component's CSS style names on the client-side.

ContainerBuilder by Radek Pakula: Use annotations to build containers for other components.

Plotly.API by Sirine Bchini: Draw interactive charts. This add-on is built with the library plotly.js.

CylinderComponent by Felype Ferreira: Render cylinders in Vaadin applications.

Excel Exporter by bonprix HgmbH: Export Vaadin components to Excel.

CssCheckBox Add-on by Zoltán Kiss: An alternative to the standard CheckBox component.

SimpleFileDownloader by Nikolay Gorokhov: A modified version of the FileDownloader component that allows to launch downloading resources by any event.

Chart.js Add-on by Michael Oberwasserlechner: A wrapper for the Chart.js charting library.

TiffViewer by Radek Pakula: Display images in .tiff (.tif) format.

Excel Uploader by 대성 김: Upload Excel files with helpers to render their content in Vaadin components.

easylayout by David Hofmann: A completely unorthodox but productive API wrapper for Vaadin layouts.

ClickableTextRenderer by Peter Hansson: A Grid renderer which makes cell values clickable and look like a link. Particularly useful for drill-down.

SQLContainer Enhanced by Peter Hansson: Enhanced version of SQLContainer.

Internationalization for Vaadin by Bernd Hopp: Add internationalization to Vaadin apps using DI frameworks.

Security for Vaadin by Bernd Hopp: Add permission-based security to Vaadin apps using DI frameworks.

Localtime Add-on by AMahdy AbdElAziz: A label that shows local time for a given server-time.

LoadTestDriver add-on by Johannes Tuikkala: A simple way to do load testing of Vaadin applications.

GridFastNavigation Add-on by Patrik Lindström: Add “Excel-style editing” features to Grid.

Toastr Vaadin by Simon Kent: Provide non-blocking notifications based on the toastr Javascript library.

PdfViewer by Radek Pakula: A wrapper of PDF.js.

Spring-session-redis by Alejandro Duarte: Replace the standard HttpSession with Redis in Vaadin applications using Spring Session.

Pagination by 대성 김: Add pagination features to Vaadin apps.

Responsive-layout by Jarek Toro: Add responsive capabilities to Vaadin apps.

DatePicker Add-on by Artur Signell: A drop-in replacement for PopupDateField, using the <vaadin-date-picker> element on the client side.

Crud UI Add-on by Alejandro Duarte: Automatically generate CRUD-like UIs for any Java Bean.

Client-side-confirm-button by Daniel Schreiber: Show client side confirmation overlays to have the user confirm a button click without any server interaction.

Splash Screen by Leif Åstrand: Show a splash screen while the browser is downloading the application's theme and widgetset.

Jetty Vaadin Add-on by Alejandro Duarte: Run a Jetty Server for a Vaadin application in plain Java.

IonSlider Add-on by Andy Wijaya: Ion slider to beautify slider with ionic icon.

Learn how to create and publish your own Vaadin add-ons

Stéphane Nicoll: Vaadin’s ability to integrate with your backend is quite unique

If you follow the world of Java and Open Source, there’s a big chance that you have stumbled upon articles, videos, forum answers, talks, and code from Stéphane Nicoll. I had the pleasure of meeting Stéphane some days ago at Vaadin’s headquarters in Finland and I interviewed him about Spring Boot and Vaadin.


Hi Stéphane, it’s great to talk with you. I’m a big fan of Spring Boot. It really increases developer’s productivity. I particularly like how easy it is to create a new project using Spring Initializr and Spring Boot’s auto-configuration capabilities. What other “killer features” would you highlight in Spring Boot?

Hey, thank you for having me! The first one that comes to mind is our dependency management for not only a selection of Spring modules but also a wide range of third party libraries. As a matter of fact, statistics show that we have consumers of that feature that do not use Spring Boot at all. In a nutshell, we make sure to provide a Bill of Materials (BOM) for all of these so that they work well together. No need to worry about which version to pick and upgrading Spring Boot will consistently upgrade your technical stack as well.

Spring Boot also provides very handy Devops and management features and its packaging mechanism makes it very easy to deploy your application in a wide range of environments.

Having joined the Spring Framework development team and being a member of the Apache Maven PMC, you are well known in the world of Java. But you’ve also been doing some Vaadin stuff. You even published a Vaadin add-on. How did you come across Vaadin? What else have you done with Vaadin?

In my previous job, we were looking to migrate a backoffice application written in Swing to a web frontend. Given our constraints, we quickly identified that Vaadin is a perfect fit for us but we had to convince our management. We spent a week in your office and we were able to build quite a convincing prototype. Back in Belgium, we worked on several other prototypes and this add-on was born as a result of our experiments.

You, obviously, have used Vaadin in Spring applications. Do you think it’s a good match? Would you recommend Vaadin Framework as front-end technology in Spring-based applications?

Actually, what convinced me the most about Vaadin is that I was able to build something that looked nice. I am a backend guy, none of the UI work on would have been possible without the help of my colleagues. In my opinion, Vaadin is interesting for single page apps and its ability to integrate with your backend is quite unique. I also find the charting support quite convincing.

Similarly, would you recommend Spring Boot to developers currently using Vaadin?

I was already using Spring back then and a lot has changed regarding the Spring support in Vaadin. Our two teams have been working quite hard on it and it shows. I find it quite natural to write a Vaadin app and integrate various Spring-related features. Similarly, if you are a Spring Boot user, integrating Vaadin is very easy and straightforward and the existing features will just work.

Spring supports a wide range of backend stores and offers plenty of features on the backend so it’s an excellent choice for your Vaadin applications. But I am obviously biased here! ;-)

What can you share about the future of Spring and Spring Boot?

Spring Framework 5.0 is already around the corner (March 2017) with reactive programming, HTTP/2 and preliminary JDK 9 support. Since JDK 9 got delayed twice in the meantime, our dedicated GA support for it will have to wait until Spring Framework 5.1.

Spring Boot will obviously follow closely on that route, with Spring Boot 2.0 providing auto-configuration for reactive architecture and support for new deployment infrastructure (e.g. netty).

Thanks Stéphane for your time and I hope to see you here at Vaadin again!

Thank you! I had a great time. I enjoyed the discussion with the team on several new features of Vaadin’s Spring support. Not to mention the ride on the Vaadin boat: that was epic. Take care and see you soon!

Watch the Webinar with Stéphane Nicoll and Matti Tahvonen


Take a REST by integrating Salesforce into Vaadin

Consuming RESTful web services is quite a common topic currently. Many of the trendy microservices just provide a RESTful API which must then be consumed from the UI layer.

Salesforce provides a rather complete UI for their services, but they also provide excellent hooks for developers to build custom UIs or tools, and Vaadin Framework can be used at the UI layer. In a recent webinar, together with Salesforce Developer Evangelist René Winkelmeyer, we wanted to emphasize this possibility, but also to give some generic tips about using RESTful web services.

In the webinar we discussed the different ways of how you can consume REST services in Java apps and also how to tackle tricky things like authentication. As an example, we built a simple Vaadin based web app. It authenticates to Salesforce using OAuth 2, and then uses private data, fetched via Salesforce’s REST endpoints, and displays it in a Vaadin UI.

If you want some tips on how to get started with consuming RESTful services or integrating Salesforce data into your Vaadin application, watch the webinar and see the examples we prepared!

Also see the forum thread with links to examples.

PS. Note that REST is not the only way to access your data from Salesforce. With plain Java apps, like Vaadin apps, it might in many cases be simpler to use the SOAP approach.