diff options
author | Leif Åstrand <leif@vaadin.com> | 2012-06-12 13:03:22 +0300 |
---|---|---|
committer | Leif Åstrand <leif@vaadin.com> | 2012-06-12 13:03:22 +0300 |
commit | 12b3fde4e0a27e3e68073cb0f4f7bf0cf769895c (patch) | |
tree | 133ba7b4439ceff8adc62207fed26d971882183a /src/com/vaadin/ui | |
parent | 40809640dedfe4f494e8f169bfb22544bb9cd6e6 (diff) | |
download | vaadin-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')
-rw-r--r-- | src/com/vaadin/ui/AbstractJavascriptComponent.java | 10 | ||||
-rw-r--r-- | src/com/vaadin/ui/JavascriptCallback.java | 3 | ||||
-rw-r--r-- | src/com/vaadin/ui/JavascriptManager.java | 9 |
3 files changed, 14 insertions, 8 deletions
diff --git a/src/com/vaadin/ui/AbstractJavascriptComponent.java b/src/com/vaadin/ui/AbstractJavascriptComponent.java index 19adb308e9..0a26c10239 100644 --- a/src/com/vaadin/ui/AbstractJavascriptComponent.java +++ b/src/com/vaadin/ui/AbstractJavascriptComponent.java @@ -8,12 +8,12 @@ import com.vaadin.terminal.JavascriptRpcHelper; public class AbstractJavascriptComponent extends AbstractComponent { private JavascriptRpcHelper rpcHelper = new JavascriptRpcHelper(this); - protected void registerRpc(JavascriptCallback javascriptCallback, - String functionName) { - rpcHelper.registerRpc(javascriptCallback, functionName); + protected void registerCallback(String functionName, + JavascriptCallback javascriptCallback) { + rpcHelper.registerCallback(functionName, javascriptCallback); } - protected void callRpcFunction(String name, Object... arguments) { - rpcHelper.callRpcFunction(name, arguments); + protected void invokeCallback(String name, Object... arguments) { + rpcHelper.invokeCallback(name, arguments); } } diff --git a/src/com/vaadin/ui/JavascriptCallback.java b/src/com/vaadin/ui/JavascriptCallback.java index 4a34167256..89700b3faf 100644 --- a/src/com/vaadin/ui/JavascriptCallback.java +++ b/src/com/vaadin/ui/JavascriptCallback.java @@ -7,7 +7,8 @@ package com.vaadin.ui; import java.io.Serializable; import com.vaadin.external.json.JSONArray; +import com.vaadin.external.json.JSONException; public interface JavascriptCallback extends Serializable { - public void call(JSONArray arguments); + public void call(JSONArray arguments) throws JSONException; } 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); + } } }); } |