Docs

Documentation versions (currently viewingVaadin 7)

You are viewing documentation for an older Vaadin version. View latest documentation

Finding the current root and application

There are many cases where you need a reference to the active Application or Root, for instance for showing notifications in a click listener. It is possible to get a reference to the component from the event and then a reference from the component to the Root but Vaadin also offers an easier way through two static methods:

Source code
Java
Root.getCurrent()
Application.getCurrent()

For example when you want to show the name of the current Root class:

Source code
Java
Button helloButton = new Button("Say Hello");
helloButton.addListener(new ClickListener() {
  public void buttonClick(ClickEvent event) {
    Notification.show("This Root is " + Root.getCurrent().getClass().getSimpleName());
  }
});

Similarly for Application, for instance to find out if the application is running in production mode:

Source code
Java
public void buttonClick(ClickEvent event) {
  String msg = "Running in ";
  msg += Application.getCurrent().isProductionMode() ?
    "production" : "debug";
  msg += " mode";
  Notification.show(msg);
}

Note that these are based on ThreadLocal so they won’t work in a background thread (or otherwise outside the standard request scope).