{{ !articles[0].partner.isSponsoringArticle ? "Platinum" : "Portal" }} Partner

Switching Windows in Vaadin

Published by

In my last article, I definitely advised that when needing to radically change components displayed on the screen, you need to switch the main window's contents - the view - and not the window itself.

Fortunately, this confusion is not possible anymore in Vaadin 7 since the application object and the main window are merged into the Root class.

package com.morevaadin.vaadin7.example;
import com.vaadin.terminal.WrappedRequest;
import com.vaadin.ui.Label;
import com.vaadin.ui.Root;
import com.vaadin.ui.VerticalLayout;
public class Vaadin7RootApplication extends Root {
    protected void init(WrappedRequest request) {
        VerticalLayout layout = new VerticalLayout();
        Label label = new Label("Hello Vaadin user");

Note that Root instances have no root content (!): this means we have to set it explicitly, like the layout in the previous snippet.

As a corollary, this also means a Root class has to be configured in the web deployment descriptor for the Vaadin servlet (and not an Application class anymore). This directly translates into the following snippet:

    <servlet-name>Vaadin 7 Root Example</servlet-name>

Conclusion: Vaadin 7 is less confusing than Vaadin 6 for managing full-screen windows. Besides, it achieves the same result in as many lines of code: it's a definite step toward cleaner windows management.

The archive that highlights the above code can be downloaded here.

Note: At the time of this writing, the Eclipse Vaadin plugin doesn't check the Vaadin version and generates the application skeleton adapted to Vaadin 6. Expect to see this corrected with Vaadin 7 release.


{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks