Views content switching

Submitted on 02 March 2012

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 [UI] class.

package com.morevaadin.vaadin7.example;
import com.vaadin.server.VaadinRequest;
import com.vaadin.ui.Label;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;
public class Vaadin7UIApplication extends UI {
    protected void init(VaadinRequest request) {
        VerticalLayout layout = new VerticalLayout();
        Label label = new Label("Hello Vaadin user");

Note that UI instances have no root content (unlike Vaadin 6’s Window): this means we have to set it explicitly, like the layout in the previous snippet.

As a corollary, this also means a UI 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.