diff options
author | Leif Åstrand <leif@vaadin.com> | 2012-06-14 22:57:28 +0300 |
---|---|---|
committer | Leif Åstrand <leif@vaadin.com> | 2012-06-14 22:57:28 +0300 |
commit | 51ce4a2535146a3b8861bd02f655c18d9a397522 (patch) | |
tree | 2c4421863c5255b1595111c6e968b0a84f1c9f4b /src/com/vaadin/terminal/JavaScriptCallbackHelper.java | |
parent | 72c0f66e2aa588acbb517e6d9b482c7a75faf9f1 (diff) | |
download | vaadin-framework-51ce4a2535146a3b8861bd02f655c18d9a397522.tar.gz vaadin-framework-51ce4a2535146a3b8861bd02f655c18d9a397522.zip |
Implement js rpc proxy objects and wildcard rpc support (#8888)
Diffstat (limited to 'src/com/vaadin/terminal/JavaScriptCallbackHelper.java')
-rw-r--r-- | src/com/vaadin/terminal/JavaScriptCallbackHelper.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/com/vaadin/terminal/JavaScriptCallbackHelper.java b/src/com/vaadin/terminal/JavaScriptCallbackHelper.java index c1da8b36ba..eabbcf4925 100644 --- a/src/com/vaadin/terminal/JavaScriptCallbackHelper.java +++ b/src/com/vaadin/terminal/JavaScriptCallbackHelper.java @@ -7,7 +7,9 @@ package com.vaadin.terminal; 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; @@ -75,4 +77,24 @@ public class JavaScriptCallbackHelper { connector.requestRepaint(); } + 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); + connector.requestRepaint(); + } + } + } |