Questions tagged [vaadin]

Use the [vaadin] tag for all posts relating to any use of the Vaadin web application development platform. For posts related to a particular Vaadin or a specific component, additionally tag the post with the corresponding tag, for example: [vaadin8], and [vaadin-upload], respectively.

Overview

Vaadin is an open source platform for building web applications. The Vaadin platform consists of a set of web components, a Java web framework, a TypeScript web framework, a Collaboration Engine, and a set of tools.

Flow

The Java web framework, Flow, uses Java for both the frontend and backend code. UIs can be created either by constructing and laying out components with Java or by declaring them with a LitElement template. UI event handling code is implemented in Java and runs on the server. UI state is also maintained on the server.

Vaadin's legacy Java web application development offering, Vaadin Framework, preceded Vaadin 10, and was built on GWT (Google Web Toolkit).

Fusion

The TypeScript web framework, Fusion, uses TypeScript for the UI code and Java for the backend (endpoint) code. UIs are created by declaring them within a TypeScript/LitElement class. UI event handling code is implemented in TypeScript and runs in the browser. UI state is also maintained in the browser.

Components

Vaadin Components are standard WebComponents implemented in LitElement. In addition to being used by Flow and Fusion, Vaadin Components can be used by other web technologies, such as Angular, React, and Vue. Prior to Vaadin 15, Components were implemented in Polymer.

Marketing Blurb

  • Vaadin improves the client side presentation layer by introducing client-server web components for rapid application development.

  • For Flow-based applications, a few lines of Java code and Vaadin takes care of the rest. No complex configurations, no JavaScript. Code on the server side.

  • For Fusion-based applications, the UI gains a reactive TypeScript frontend with a Spring Boot integrated backend, so you can focus on building your app instead of configuring stuff.

  • Wide browser support - Built on Internet standards, Vaadin applications support all modern browsers.

  • Stunning Web Applications - The look and feel makes a difference. Vaadin comes with great-looking components and easy use of themes.

Versions & Roadmap

Summary

  • Vaadin 22, the latest major version, was released on 9 December 2021.

  • Vaadin 14 was released on 14 August 2019 and is the most recent LTS (Long Term Support) version.

  • Vaadin 10 was released on 25 June 2018 and is the previous LTS version.

  • Vaadin Framework 8 was released in Feb 2017.

  • Vaadin Framework 6 and 7 are still also in active use but are not officially maintained.

  • Vaadin 23, the next LTS version, is slated for release in March 2022.

For new projects, version 14 or 22 is recommended.

Details

For the most up-to-date version and roadmap details, see:

Question and Search Hints

For some questions and queries, the answer is same regardless of Vaadin version or framework. However, it is often relevant to include the major version in the question or query as well.

6816 questions
14
votes
2 answers

Add javascript/Jquery & client side code in Vaadin 7

I have 3 questions: Each and every action in Vaadin makes a call to the server. is there a way to avoid calls to server for every actions? like having a code at client side for particular actions that is used many times? Like in CSValidation…
Gugan
  • 1,625
  • 2
  • 27
  • 65
14
votes
4 answers

How to integrate GWT or Vaadin with Play Framework 2.0

Is is possible to implement the client side of a Play Framework 2.x web application using GWT or Vaadin? Play 1.x has a special module that provides GWT integration, but I can not find examples of the use of these technologies together in Play 2.x…
Dmitry
  • 141
  • 1
  • 5
13
votes
1 answer

How to color a grid row conditionally in Vaadin 8?

I want to change the color of a Vaadin grid row based on a value of a cell. I tried it as follows and did not work. SCSS @import "mytheme.scss"; @import "addons.scss"; // This file prefixes all rules with the theme name to avoid causing conflicts…
Hiran Perera
  • 736
  • 1
  • 5
  • 18
13
votes
2 answers

How to start a file download in vaadin without button?

I know that it is really easy to create a FileDownloader and call extend with a Button. But how do I start a download without the Button? In my specific situation right now I have a ComboBox and the file I'd like to send to the user is generated…
raffael
  • 2,427
  • 4
  • 26
  • 42
12
votes
5 answers

How do I do test-driven development using Vaadin?

What's the best way to structure a Vaadin-based application so that I can use TDD (test-driven development) to create the application? In other words, I don't want to write tests that require a server or browser (or even simulators of those) as…
Ted M. Young
  • 1,052
  • 11
  • 24
12
votes
7 answers

New Vaadin 14 app fails to run, error "Failed to determine 'node' tool." Missing Node.js and npm tools

I used the Get Started page to create a new Vaadin 14 app, after choosing the Plain Java Servlet option. The web page successfully downloaded a .zip file which I unzipped, and opened with IntelliJ Ultimate Edition version 2019.2. I waited a few…
Basil Bourque
  • 303,325
  • 100
  • 852
  • 1,154
12
votes
1 answer

Vaadin Flow: setting the title

I currently try to set the title of the page. Scenario public class A extends FlexLayout implements RouterLayout {} @Route(value = "b", layout = A.class) public class B extends FlexLayout{} @Route(value = "c", layout = A.class) public class C…
Gerrit Sedlaczek
  • 1,231
  • 1
  • 14
  • 32
12
votes
2 answers

How to set a border on a Vaadin component?

I would like to programmatically set a border around a Form component in Java. How can I do this without having to edit the css style sheet?
yazz.com
  • 57,320
  • 66
  • 234
  • 385
12
votes
5 answers

Vaadin 10 for new project

I'm Java developer and I'm going to start the new project. I have the very limited client-side development skills and this is why I really love the idea of Vaadin framework. I have evaluated Vaadin 10 Bakery App Starter application…
alexanoid
  • 24,051
  • 54
  • 210
  • 410
12
votes
1 answer

@Autowired lateinit property '' has not been initialized

I'm trying to create a web project using Spring-boot + Vaadin and i want to use spring-data-jpa with hibernate to fetch the data from PostgreSQL database. In my Vaadin's view i try to autowire my service class but i always get null and eror stack…
Nikita Ryanov
  • 1,520
  • 3
  • 17
  • 34
12
votes
3 answers

Vaadin session setMaxInactiveInterval UI response inconsistant

I have set the max inactive interval for Vaadin session as following. VaadinSession.getCurrent().getSession().setMaxInactiveInterval(60); Added a session destroy listener as following for testing. servletService.addSessionDestroyListener(new…
Don Srinath
  • 1,565
  • 1
  • 21
  • 32
12
votes
2 answers

How to get all sessions in Vaadin

I want to know How many users are connected to my application in real time. I got the idea to loop on number of session that are open but I can't find how to do that. If you have another way to do it your suggestions are welcome.
deltascience
  • 3,321
  • 5
  • 42
  • 71
12
votes
3 answers

How to specify a button to open an URL?

I want to write a web application that triggers the default email client of the user to send an email. Thus, I created a Link, that leads to an URL conforming to the mailto URI scheme (http://en.wikipedia.org/wiki/Mailto): Link emailLink = new…
Claas Wilke
  • 1,951
  • 1
  • 18
  • 29
12
votes
1 answer

How to deal with hierarchical roles/permissions using Apache Shiro?

I'm trying to use Apache Shiro framework to secure my web application (UI is based on Vaadin 6). Looked through all the examples on Shiro's site and also googled for hours, but I can't find a clean way to deal with the following…
Sergey Makarov
  • 2,491
  • 2
  • 19
  • 23
12
votes
7 answers

how do I create a textfield which supports numbers only in vaadin

I am using a Vaadin text field and I want to restrict it to support numbers only in it. I tried to override setValue() and return without calling super. setValue() if text is not a number. But it doesn't seems to be working. How can I correct…
Sanjaya Liyanage
  • 4,706
  • 9
  • 36
  • 50