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).