summaryrefslogtreecommitdiffstats
path: root/src/com/vaadin/ui
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
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')
-rw-r--r--src/com/vaadin/ui/AbstractJavascriptComponent.java10
-rw-r--r--src/com/vaadin/ui/JavascriptCallback.java3
-rw-r--r--src/com/vaadin/ui/JavascriptManager.java9
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);
+ }
}
});
}