aboutsummaryrefslogtreecommitdiffstats
path: root/documentation/advanced/advanced-javascript.asciidoc
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/advanced/advanced-javascript.asciidoc')
-rw-r--r--documentation/advanced/advanced-javascript.asciidoc109
1 files changed, 0 insertions, 109 deletions
diff --git a/documentation/advanced/advanced-javascript.asciidoc b/documentation/advanced/advanced-javascript.asciidoc
deleted file mode 100644
index 6e9cbc45e5..0000000000
--- a/documentation/advanced/advanced-javascript.asciidoc
+++ /dev/null
@@ -1,109 +0,0 @@
----
-title: JavaScript Interaction
-order: 14
-layout: page
----
-
-[[advanced.javascript]]
-= JavaScript Interaction
-
-Vaadin supports two-direction JavaScript calls from and to the server-side. This
-allows interfacing with JavaScript code without writing client-side integration
-code.
-
-[[advanced.javascript.calling]]
-== Calling JavaScript
-
-You can make JavaScript calls from the server-side with the
-[methodname]#execute()# method in the [classname]#JavaScript# class. You can get
-a [classname]#JavaScript# instance from the current [classname]#Page# object
-with [methodname]#getJavaScript()#.//TODO Check that the API is
-so.
-
-
-[source, java]
-----
-// Execute JavaScript in the currently processed page
-Page.getCurrent().getJavaScript().execute("alert('Hello')");
-----
-
-The [classname]#JavaScript# class itself has a static shorthand method
-[methodname]#getCurrent()# to get the instance for the currently processed page.
-
-
-[source, java]
-----
-// Shorthand
-JavaScript.getCurrent().execute("alert('Hello')");
-----
-
-The JavaScript is executed after the server request that is currently processed
-returns. If multiple JavaScript calls are made during the processing of the
-request, they are all executed sequentially after the request is done. Hence,
-the JavaScript execution does not pause the execution of the server-side
-application and you can not return values from the JavaScript.
-
-
-[[advanced.javascript.callback]]
-== Handling JavaScript Function Callbacks
-
-You can make calls with JavaScript from the client-side to the server-side. This
-requires that you register JavaScript call-back methods from the server-side.
-You need to implement and register a [classname]#JavaScriptFunction# with
-[methodname]#addFunction()# in the current [classname]#JavaScript# object. A
-function requires a name, with an optional package path, which are given to the
-[methodname]#addFunction()#. You only need to implement the [methodname]#call()#
-method to handle calls from the client-side JavaScript.
-
-
-[source, java]
-----
-
-JavaScript.getCurrent().addFunction("com.example.foo.myfunc",
- new JavaScriptFunction() {
- @Override
- public void call(JsonArray arguments) {
- Notification.show("Received call");
- }
-});
-
-Link link = new Link("Send Message", new ExternalResource(
- "javascript:com.example.foo.myfunc()"));
-----
-
-Parameters passed to the JavaScript method on the client-side are provided in a
-[classname]#JSONArray# passed to the [methodname]#call()# method. The parameter
-values can be acquired with the [methodname]#get()# method by the index of the
-parameter, or any of the type-casting getters. The getter must match the type of
-the passed parameter, or an exception is thrown.
-
-
-[source, java]
-----
-JavaScript.getCurrent().addFunction("com.example.foo.myfunc",
- new JavaScriptFunction() {
- @Override
- public void call(JsonArray arguments) {
- try {
- String message = arguments.getString(0);
- int value = arguments.getInt(1);
- Notification.show("Message: " + message +
- ", value: " + value);
- } catch (Exception e) {
- Notification.show("Error: " + e.getMessage());
- }
- }
-});
-
-Link link = new Link("Send Message", new ExternalResource(
- "javascript:com.example.foo.myfunc(prompt('Message'), 42)"));
-----
-
-The function callback mechanism is the same as the RPC mechanism used with
-JavaScript component integration, as described in
-<<dummy/../../../framework/gwt/gwt-javascript#gwt.javascript.rpc,"RPC from
-JavaScript to Server-Side">>.
-
-
-
-