diff options
author | Artur Signell <artur@vaadin.com> | 2012-08-29 11:30:17 +0300 |
---|---|---|
committer | Artur Signell <artur@vaadin.com> | 2012-08-29 11:30:17 +0300 |
commit | e18177bac62e8367829dfc5ec3083a09973e621e (patch) | |
tree | 4deea17d44a770f6d300f1f905f6d03c79a54b46 /server/src/com/vaadin/terminal/JavaScriptCallbackHelper.java | |
parent | bfbfdd51a0563d212d1e811a3eb534122847d206 (diff) | |
download | vaadin-framework-e18177bac62e8367829dfc5ec3083a09973e621e.tar.gz vaadin-framework-e18177bac62e8367829dfc5ec3083a09973e621e.zip |
Renamed com.vaadin.terminal -> com.vaadin.server (#9431)
Diffstat (limited to 'server/src/com/vaadin/terminal/JavaScriptCallbackHelper.java')
-rw-r--r-- | server/src/com/vaadin/terminal/JavaScriptCallbackHelper.java | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/server/src/com/vaadin/terminal/JavaScriptCallbackHelper.java b/server/src/com/vaadin/terminal/JavaScriptCallbackHelper.java deleted file mode 100644 index 17fa2cbd32..0000000000 --- a/server/src/com/vaadin/terminal/JavaScriptCallbackHelper.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright 2011 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.terminal; - -import java.io.Serializable; -import java.lang.reflect.Method; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import com.vaadin.external.json.JSONArray; -import com.vaadin.external.json.JSONException; -import com.vaadin.shared.JavaScriptConnectorState; -import com.vaadin.tools.ReflectTools; -import com.vaadin.ui.AbstractJavaScriptComponent; -import com.vaadin.ui.JavaScript.JavaScriptCallbackRpc; -import com.vaadin.ui.JavaScriptFunction; - -/** - * Internal helper class used to implement functionality common to - * {@link AbstractJavaScriptComponent} and {@link AbstractJavaScriptExtension}. - * Corresponding support in client-side code is in - * {@link com.vaadin.client.JavaScriptConnectorHelper}. - * <p> - * You should most likely no use this class directly. - * - * @author Vaadin Ltd - * @since 7.0.0 - */ -public class JavaScriptCallbackHelper implements Serializable { - - private static final Method CALL_METHOD = ReflectTools.findMethod( - JavaScriptCallbackRpc.class, "call", String.class, JSONArray.class); - private AbstractClientConnector connector; - - private Map<String, JavaScriptFunction> callbacks = new HashMap<String, JavaScriptFunction>(); - private JavaScriptCallbackRpc javascriptCallbackRpc; - - public JavaScriptCallbackHelper(AbstractClientConnector connector) { - this.connector = connector; - } - - public void registerCallback(String functionName, - JavaScriptFunction javaScriptCallback) { - callbacks.put(functionName, javaScriptCallback); - JavaScriptConnectorState state = getConnectorState(); - state.getCallbackNames().add(functionName); - ensureRpc(); - } - - private JavaScriptConnectorState getConnectorState() { - JavaScriptConnectorState state = (JavaScriptConnectorState) connector - .getState(); - return state; - } - - private void ensureRpc() { - if (javascriptCallbackRpc == null) { - javascriptCallbackRpc = new JavaScriptCallbackRpc() { - @Override - public void call(String name, JSONArray arguments) { - JavaScriptFunction callback = callbacks.get(name); - try { - callback.call(arguments); - } catch (JSONException e) { - throw new IllegalArgumentException(e); - } - } - }; - connector.registerRpc(javascriptCallbackRpc); - } - } - - public void invokeCallback(String name, Object... arguments) { - if (callbacks.containsKey(name)) { - throw new IllegalStateException( - "Can't call callback " - + name - + " on the client because a callback with the same name is registered on the server."); - } - JSONArray args = new JSONArray(Arrays.asList(arguments)); - connector.addMethodInvocationToQueue( - JavaScriptCallbackRpc.class.getName(), CALL_METHOD, - new Object[] { name, args }); - } - - public void registerRpc(Class<?> rpcInterfaceType) { - if (rpcInterfaceType == JavaScriptCallbackRpc.class) { - // Ignore - return; - } - Map<String, Set<String>> rpcInterfaces = getConnectorState() - .getRpcInterfaces(); - String interfaceName = rpcInterfaceType.getName(); - if (!rpcInterfaces.containsKey(interfaceName)) { - Set<String> methodNames = new HashSet<String>(); - - for (Method method : rpcInterfaceType.getMethods()) { - methodNames.add(method.getName()); - } - - rpcInterfaces.put(interfaceName, methodNames); - } - } - -} |