]> source.dussan.org Git - vaadin-framework.git/commitdiff
Migrate FindingTheCurrentRootAndApplication
authorErik Lumme <erik@vaadin.com>
Thu, 14 Sep 2017 10:45:44 +0000 (13:45 +0300)
committerErik Lumme <erik@vaadin.com>
Thu, 14 Sep 2017 10:45:44 +0000 (13:45 +0300)
documentation/articles/FindingTheCurrentRootAndApplication.asciidoc [new file with mode: 0644]
documentation/articles/contents.asciidoc

diff --git a/documentation/articles/FindingTheCurrentRootAndApplication.asciidoc b/documentation/articles/FindingTheCurrentRootAndApplication.asciidoc
new file mode 100644 (file)
index 0000000..05b9030
--- /dev/null
@@ -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).
index b4a1a7e51e5e2e10a93ba02a7717c345c6043984..3567389f02c01b307dd5d9a099b27e9b58332314 100644 (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]