diff options
author | Teemu Suo-Anttila <teemusa@vaadin.com> | 2016-03-10 22:40:51 +0200 |
---|---|---|
committer | Teemu Suo-Anttila <teemusa@vaadin.com> | 2016-03-14 07:59:12 +0200 |
commit | a6653d3fe49e6a97468ac09f7f2f4d621bea1078 (patch) | |
tree | 96c82e20ca6551ee4c14c8877f0258b25c63cddf /server/src/com/vaadin/ui/JavaScript.java | |
parent | f7e57d77ce621ee39167369c31d989edc5633266 (diff) | |
download | vaadin-framework-a6653d3fe49e6a97468ac09f7f2f4d621bea1078.tar.gz vaadin-framework-a6653d3fe49e6a97468ac09f7f2f4d621bea1078.zip |
Migrate vaadin-server build to maven
Change-Id: I5c740f4e9cb28103bab199f9a552153d82277e7e
Diffstat (limited to 'server/src/com/vaadin/ui/JavaScript.java')
-rw-r--r-- | server/src/com/vaadin/ui/JavaScript.java | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/server/src/com/vaadin/ui/JavaScript.java b/server/src/com/vaadin/ui/JavaScript.java deleted file mode 100644 index 668ae67056..0000000000 --- a/server/src/com/vaadin/ui/JavaScript.java +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright 2000-2014 Vaadin Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.vaadin.ui; - -import java.util.HashMap; -import java.util.Map; - -import com.vaadin.server.AbstractExtension; -import com.vaadin.server.Page; -import com.vaadin.shared.communication.ServerRpc; -import com.vaadin.shared.extension.javascriptmanager.ExecuteJavaScriptRpc; -import com.vaadin.shared.extension.javascriptmanager.JavaScriptManagerState; - -import elemental.json.JsonArray; -import elemental.json.JsonException; - -/** - * Provides access to JavaScript functionality in the web browser. To get an - * instance of JavaScript, either use Page.getJavaScript() or - * JavaScript.getCurrent() as a shorthand for getting the JavaScript object - * corresponding to the current Page. - * - * @author Vaadin Ltd - * @since 7.0.0 - */ -public class JavaScript extends AbstractExtension { - private Map<String, JavaScriptFunction> functions = new HashMap<String, JavaScriptFunction>(); - - // Can not be defined in client package as this JSONArray is not available - // in GWT - public interface JavaScriptCallbackRpc extends ServerRpc { - public void call(String name, JsonArray arguments); - } - - /** - * Creates a new JavaScript object. You should typically not this, but - * instead use the JavaScript object already associated with your Page - * object. - */ - public JavaScript() { - registerRpc(new JavaScriptCallbackRpc() { - @Override - public void call(String name, JsonArray arguments) { - JavaScriptFunction function = functions.get(name); - // TODO handle situation if name is not registered - try { - function.call(arguments); - } catch (JsonException e) { - throw new IllegalArgumentException(e); - } - } - }); - } - - @Override - protected JavaScriptManagerState getState() { - return (JavaScriptManagerState) super.getState(); - } - - /** - * Add a new function to the global JavaScript namespace (i.e. the window - * object). The <code>call</code> method in the passed - * {@link JavaScriptFunction} object will be invoked with the same - * parameters whenever the JavaScript function is called in the browser. - * - * A function added with the name <code>"myFunction"</code> can thus be - * invoked with the following JavaScript code: - * <code>window.myFunction(argument1, argument2)</code>. - * - * If the name parameter contains dots, simple objects are created on demand - * to allow calling the function using the same name (e.g. - * <code>window.myObject.myFunction</code>). - * - * @param name - * the name that the function should get in the global JavaScript - * namespace. - * @param function - * the JavaScriptFunction that will be invoked if the JavaScript - * function is called. - */ - public void addFunction(String name, JavaScriptFunction function) { - functions.put(name, function); - getState().names.add(name); - } - - /** - * Removes a JavaScripFunction from the browser's global JavaScript - * namespace. - * - * If the name contains dots and intermediate objects were created by - * {@link #addFunction(String, JavaScriptFunction)}, these objects will not - * be removed by this method. - * - * @param name - * the name of the callback to remove - */ - public void removeFunction(String name) { - functions.remove(name); - getState().names.remove(name); - } - - /** - * Executes the given JavaScript code in the browser. - * - * @param script - * The JavaScript code to run. - */ - public void execute(String script) { - getRpcProxy(ExecuteJavaScriptRpc.class).executeJavaScript(script); - } - - /** - * Executes the given JavaScript code in the browser. - * - * @param script - * The JavaScript code to run. - */ - public static void eval(String script) { - getCurrent().execute(script); - } - - /** - * Get the JavaScript object for the current Page, or null if there is no - * current page. - * - * @see Page#getCurrent() - * - * @return the JavaScript object corresponding to the current Page, or - * <code>null</code> if there is no current page. - */ - public static JavaScript getCurrent() { - Page page = Page.getCurrent(); - if (page == null) { - return null; - } - return page.getJavaScript(); - } - - /** - * JavaScript is not designed to be removed. - * - * @throws UnsupportedOperationException - * when invoked - */ - @Override - public void remove() { - throw new UnsupportedOperationException( - "JavaScript is not designed to be removed."); - } - -} |