Getting started with IntelliJ IDEA and NetBeans

The latest Vaadin Community Survey showed that Eclipse is still the most used IDE to develop Vaadin applications. IntelliJ and NetBeans, nevertheless, make a not negligible 40% of the share:


Most content out there is tailored to Eclipse users, and although Vaadin is IDE-agnostic, I figured it’d be worthwhile to show how simple it is to set up IntelliJ IDEA and NetBeans with Vaadin. You can find these new videos below and also in the getting started page.

So, if you are a visual learner, watch the videos, try them by yourself, and let me know in the comments section what else you would like to see in future videos.

Getting started with Vaadin in IntelliJ IDEA

Getting started with Vaadin in NetBeans

Subscribe to the Vaadin YouTube Channel


Dependency Injection, black magic or a must have tool for a modern Java application?

If you have passed your courses about object oriented programming, you know that loose coupling is something you should always strive for. There are many ways to achieve loose coupling. Inversion of control (IoC) using dependency injection (DI) is one way to improve the quality of your code.

When a developer asks me how they should build a “full-stack application”, I pretty much always suggest basing their application either on Java EE or Spring. One of the reasons is the DI containers that both technology stacks provide. Many developers and architects are a bit afraid of this “magic” that inversion of control and dependency injection bring in, often for the wrong reasons.

Last week we had a webinar with my colleague Petter Holmström about dependency injection. If you want to get an idea of what dependency injection is or just want to refresh your knowledge of the subject, you should definitely check it out. In the webinar we discuss if, why and when you should use dependency injection in your applications and go through the basic principles and alternatives.

The key takeaways of our webinar:

  • Loose coupling and high cohesion (and all the advantages they bring) are the main things we aim for with DI.

  • When starting with DI, learn the basic concepts well and watch out for the pitfalls. Otherwise the DI container will cause you more harm than good.

  • Contexts and events will further help you create reusable and maintainable code.

  • There is no need to bring in “all the magic” of the Spring or Java EE technology stacks. I like to use DI even in the simplest cases because Vaadin CDI and Vaadin Spring make it easier to use Vaadin compared to the plain servlet approach and setting everything up yourself.

  • There are multiple DI containers to choose from. Vaadin has integrations for three of them:

  • There are also alternative mechanisms that you can use if you for some reason aren’t able to use a DI container. Simply by designing your code using IoC patterns, you can achieve loose coupling and high cohesion.

Our Java EE training also discusses DI and how to use it in your Vaadin applications. If you want more hands on training about dependency injection, join our next course!

Learn more about Vaadin Trainings

Vaadin Support heroes in action

A typical day at Vaadin Support: tell us your problem, we give you the solution. We help with a huge variety of issues. Every customer has their specific circumstances which creates a challenge to our support heroes daily. However, we did solve a few generic problems recently and I’d like to share these with you. Maybe you’ve been struggling with these topics, too. 

Setting a 24 hr time format for PopupDateField

A customer had an issue that they had tried to solve by themselves without success. They were wondering how to set 24 hr time format for the PopupDateField irrespective of the current locale. The answer was straightforward, but to get to the solution, our expert needed to dig some source code of Vaadin Framework. Here’s how you do it. 

You need to override UI.getLocaleService() to return a custom version of LocalService where createLocaleData is overridden. Here you can set the 24 hr format on and off. 

protected LocaleData createLocaleData(Locale locale) {
    LocaleData createLocaleData = super.createLocaleData(locale);
    createLocaleData.twelveHourClock = false;
    return createLocaleData;

Drag’n drop in Table doesn’t behave as expected

One of our customers needed a better drag’n drop behavior for the Table component. As it happens, Table doesn’t scroll its contents properly when reordering rows by drag’n drop. Like, moving a row to the top of a long list. The customer sponsored a few hours of development time and now it’s available as an Add-on named DNDScroll. Later our support team member implemented the same functionality for the Panel component too, as a Community effort. These enhancements are now available for everyone. If this is something you need for Table or Panel, go ahead and download the DNDScroll Add-on from Vaadin Directory

File upload requirements

Our support expert got the task to enhance and customise the upload component. The EasyUploads add-on was a good basis, but lacked some of the desired features. We delivered customer specific functionality for look’n feel, document previews and localisation but also introduced enhancements that are available for everyone. Now the EasyUploads Add-on offers configuration options for limited MIME types and a maximum number of files to be uploaded. If this is what you need, please go and download the EasyUploads Add-on from Vaadin Directory

We are here to help anyone with a Vaadin related problem, big or small. If you aren’t sure if this is something for you, check out the how support saves you money below. 

Read how Support saves time and money