aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/vaadin/ui/JavascriptManager.java
diff options
context:
space:
mode:
authorLeif Åstrand <leif@vaadin.com>2012-06-12 13:03:22 +0300
committerLeif Åstrand <leif@vaadin.com>2012-06-12 13:03:22 +0300
commit12b3fde4e0a27e3e68073cb0f4f7bf0cf769895c (patch)
tree133ba7b4439ceff8adc62207fed26d971882183a /src/com/vaadin/ui/JavascriptManager.java
parent40809640dedfe4f494e8f169bfb22544bb9cd6e6 (diff)
downloadvaadin-framework-12b3fde4e0a27e3e68073cb0f4f7bf0cf769895c.tar.gz
vaadin-framework-12b3fde4e0a27e3e68073cb0f4f7bf0cf769895c.zip
Change api to use callback instead or rpc for js callbacks (#8888)
Also change JavascriptCallback.call to throw JSONException
Diffstat (limited to 'src/com/vaadin/ui/JavascriptManager.java')
-rw-r--r--src/com/vaadin/ui/JavascriptManager.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/com/vaadin/ui/JavascriptManager.java b/src/com/vaadin/ui/JavascriptManager.java
index e52962f177..72295dce2b 100644
--- a/src/com/vaadin/ui/JavascriptManager.java
+++ b/src/com/vaadin/ui/JavascriptManager.java
@@ -8,6 +8,7 @@ import java.util.HashMap;
import java.util.Map;
import com.vaadin.external.json.JSONArray;
+import com.vaadin.external.json.JSONException;
import com.vaadin.terminal.AbstractExtension;
import com.vaadin.terminal.gwt.client.communication.ServerRpc;
import com.vaadin.terminal.gwt.client.extensions.javascriptmanager.JavascriptManagerState;
@@ -25,8 +26,12 @@ public class JavascriptManager extends AbstractExtension {
registerRpc(new JavascriptCallbackRpc() {
public void call(String name, JSONArray arguments) {
JavascriptCallback callback = callbacks.get(name);
- // TODO error handling
- callback.call(arguments);
+ // TODO handle situation if name is not registered
+ try {
+ callback.call(arguments);
+ } catch (JSONException e) {
+ throw new IllegalArgumentException(e);
+ }
}
});
}