Browse Source

Migrate FindingTheCurrentRootAndApplication

tags/7.7.11
Erik Lumme 6 years ago
parent
commit
5da6f980c0

+ 44
- 0
documentation/articles/FindingTheCurrentRootAndApplication.asciidoc View File

@@ -0,0 +1,44 @@
[[finding-the-current-root-and-application]]
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,java]
....
Root.getCurrent()
Application.getCurrent()
....

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

[source,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,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).

+ 1
- 0
documentation/articles/contents.asciidoc View File

@@ -9,3 +9,4 @@
- link:ChangingTheDefaultConvertersForAnApplication.asciidoc[Changing the default converters for an application]
- link:CreatingAnApplicationWithDifferentFeaturesForDifferentClients.asciidoc[Creating an application with different features for different clients]
- link:VAccessControl.asciidoc[V - Access control]
- link:FindingTheCurrentRootAndApplication.asciidoc[Finding the current root and application]

Loading…
Cancel
Save