summaryrefslogtreecommitdiffstats
path: root/src/com/vaadin/terminal/JavascriptRpcHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/vaadin/terminal/JavascriptRpcHelper.java')
-rw-r--r--src/com/vaadin/terminal/JavascriptRpcHelper.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/com/vaadin/terminal/JavascriptRpcHelper.java b/src/com/vaadin/terminal/JavascriptRpcHelper.java
index effab05412..b566462833 100644
--- a/src/com/vaadin/terminal/JavascriptRpcHelper.java
+++ b/src/com/vaadin/terminal/JavascriptRpcHelper.java
@@ -10,6 +10,7 @@ import java.util.HashMap;
import java.util.Map;
import com.vaadin.external.json.JSONArray;
+import com.vaadin.external.json.JSONException;
import com.vaadin.tools.ReflectTools;
import com.vaadin.ui.JavascriptCallback;
import com.vaadin.ui.JavascriptManager.JavascriptCallbackRpc;
@@ -27,8 +28,8 @@ public class JavascriptRpcHelper {
this.connector = connector;
}
- public void registerRpc(JavascriptCallback javascriptCallback,
- String functionName) {
+ public void registerCallback(String functionName,
+ JavascriptCallback javascriptCallback) {
callbacks.put(functionName, javascriptCallback);
ensureRpc();
}
@@ -38,14 +39,18 @@ public class JavascriptRpcHelper {
javascriptCallbackRpc = new JavascriptCallbackRpc() {
public void call(String name, JSONArray arguments) {
JavascriptCallback callback = callbacks.get(name);
- callback.call(arguments);
+ try {
+ callback.call(arguments);
+ } catch (JSONException e) {
+ throw new IllegalArgumentException(e);
+ }
}
};
connector.registerRpc(javascriptCallbackRpc);
}
}
- public void callRpcFunction(String name, Object... arguments) {
+ public void invokeCallback(String name, Object... arguments) {
JSONArray args = new JSONArray(Arrays.asList(arguments));
connector.addMethodInvocationToQueue(
JavascriptCallbackRpc.class.getName(), CALL_METHOD,