]> source.dussan.org Git - vaadin-framework.git/commitdiff
Rename JavaScriptCallback -> JavaScriptFunction (#9293)
authorLeif Åstrand <leif@vaadin.com>
Mon, 13 Aug 2012 12:45:14 +0000 (15:45 +0300)
committerLeif Åstrand <leif@vaadin.com>
Mon, 13 Aug 2012 12:45:14 +0000 (15:45 +0300)
src/com/vaadin/terminal/AbstractJavaScriptExtension.java
src/com/vaadin/terminal/JavaScriptCallbackHelper.java
src/com/vaadin/ui/AbstractJavaScriptComponent.java
src/com/vaadin/ui/JavaScript.java
src/com/vaadin/ui/JavaScriptCallback.java [deleted file]
src/com/vaadin/ui/JavaScriptFunction.java [new file with mode: 0644]
tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponent.java
tests/testbench/com/vaadin/tests/extensions/JavascriptManagerTest.java
tests/testbench/com/vaadin/tests/extensions/SimpleJavaScriptExtensionTest.java
tests/testbench/com/vaadin/tests/minitutorials/v7a3/Analytics.java
tests/testbench/com/vaadin/tests/minitutorials/v7a3/Flot.java

index df44c3edd548e2dfdd424e2ac4a2ef697e8bef29..7bafb6d2b35b135e5833c3458da8325638ee382e 100644 (file)
@@ -6,7 +6,7 @@ package com.vaadin.terminal;
 
 import com.vaadin.shared.JavaScriptExtensionState;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
-import com.vaadin.ui.JavaScriptCallback;
+import com.vaadin.ui.JavaScriptFunction;
 
 /**
  * Base class for Extensions with all client-side logic implemented using
@@ -74,11 +74,11 @@ import com.vaadin.ui.JavaScriptCallback;
  * the field, that function is called whenever the contents of the shared state
  * is changed.</li>
  * <li>Any field name corresponding to a call to
- * {@link #registerCallback(String, JavaScriptCallback)} on the server will
- * automatically be present as a function that triggers the registered callback
+ * {@link #addFunction(String, JavaScriptFunction)} on the server will
+ * automatically be present as a function that triggers the registered function
  * on the server.</li>
  * <li>Any field name referred to using
- * {@link #invokeCallback(String, Object...)} on the server will be called if a
+ * {@link #callFunction(String, Object...)} on the server will be called if a
  * function has been assigned to the field.</li>
  * </ul>
  * <p>
@@ -122,22 +122,21 @@ public abstract class AbstractJavaScriptExtension extends AbstractExtension {
     }
 
     /**
-     * Register a {@link JavaScriptCallback} that can be called from the
+     * Register a {@link JavaScriptFunction} that can be called from the
      * JavaScript using the provided name. A JavaScript function with the
      * provided name will be added to the connector wrapper object (initially
      * available as <code>this</code>). Calling that JavaScript function will
-     * cause the call method in the registered {@link JavaScriptCallback} to be
+     * cause the call method in the registered {@link JavaScriptFunction} to be
      * invoked with the same arguments.
      * 
      * @param functionName
      *            the name that should be used for client-side callback
-     * @param javaScriptCallback
-     *            the callback object that will be invoked when the JavaScript
-     *            function is called
+     * @param function
+     *            the {@link JavaScriptFunction} object that will be invoked
+     *            when the JavaScript function is called
      */
-    protected void registerCallback(String functionName,
-            JavaScriptCallback javaScriptCallback) {
-        callbackHelper.registerCallback(functionName, javaScriptCallback);
+    protected void addFunction(String functionName, JavaScriptFunction function) {
+        callbackHelper.registerCallback(functionName, function);
     }
 
     /**
@@ -152,7 +151,7 @@ public abstract class AbstractJavaScriptExtension extends AbstractExtension {
      * @param arguments
      *            function arguments
      */
-    protected void invokeCallback(String name, Object... arguments) {
+    protected void callFunction(String name, Object... arguments) {
         callbackHelper.invokeCallback(name, arguments);
     }
 
index 131875a5a4085984f6ddff0ee7968168190878be..265e578c6dd956ddf63cddf2462a05d5fafa6e8b 100644 (file)
@@ -19,7 +19,7 @@ import com.vaadin.terminal.gwt.client.JavaScriptConnectorHelper;
 import com.vaadin.tools.ReflectTools;
 import com.vaadin.ui.AbstractJavaScriptComponent;
 import com.vaadin.ui.JavaScript.JavaScriptCallbackRpc;
-import com.vaadin.ui.JavaScriptCallback;
+import com.vaadin.ui.JavaScriptFunction;
 
 /**
  * Internal helper class used to implement functionality common to
@@ -39,7 +39,7 @@ public class JavaScriptCallbackHelper implements Serializable {
             JavaScriptCallbackRpc.class, "call", String.class, JSONArray.class);
     private AbstractClientConnector connector;
 
-    private Map<String, JavaScriptCallback> callbacks = new HashMap<String, JavaScriptCallback>();
+    private Map<String, JavaScriptFunction> callbacks = new HashMap<String, JavaScriptFunction>();
     private JavaScriptCallbackRpc javascriptCallbackRpc;
 
     public JavaScriptCallbackHelper(AbstractClientConnector connector) {
@@ -47,7 +47,7 @@ public class JavaScriptCallbackHelper implements Serializable {
     }
 
     public void registerCallback(String functionName,
-            JavaScriptCallback javaScriptCallback) {
+            JavaScriptFunction javaScriptCallback) {
         callbacks.put(functionName, javaScriptCallback);
         JavaScriptConnectorState state = getConnectorState();
         if (state.getCallbackNames().add(functionName)) {
@@ -67,7 +67,7 @@ public class JavaScriptCallbackHelper implements Serializable {
             javascriptCallbackRpc = new JavaScriptCallbackRpc() {
                 @Override
                 public void call(String name, JSONArray arguments) {
-                    JavaScriptCallback callback = callbacks.get(name);
+                    JavaScriptFunction callback = callbacks.get(name);
                     try {
                         callback.call(arguments);
                     } catch (JSONException e) {
index 3668669d1615225eb34eda72173843c186c98645..5ec80573abcb1c3f766e0a3249ff72cd8a9215a7 100644 (file)
@@ -77,11 +77,11 @@ import com.vaadin.terminal.gwt.client.ui.JavaScriptWidget;
  * the field, that function is called whenever the contents of the shared state
  * is changed.</li>
  * <li>Any field name corresponding to a call to
- * {@link #registerCallback(String, JavaScriptCallback)} on the server will
- * automatically be present as a function that triggers the registered callback
+ * {@link #addFunction(String, JavaScriptFunction)} on the server will
+ * automatically be present as a function that triggers the registered function
  * on the server.</li>
  * <li>Any field name referred to using
- * {@link #invokeCallback(String, Object...)} on the server will be called if a
+ * {@link #callFunction(String, Object...)} on the server will be called if a
  * function has been assigned to the field.</li>
  * </ul>
  * <p>
@@ -125,22 +125,21 @@ public abstract class AbstractJavaScriptComponent extends AbstractComponent {
     }
 
     /**
-     * Register a {@link JavaScriptCallback} that can be called from the
+     * Register a {@link JavaScriptFunction} that can be called from the
      * JavaScript using the provided name. A JavaScript function with the
      * provided name will be added to the connector wrapper object (initially
      * available as <code>this</code>). Calling that JavaScript function will
-     * cause the call method in the registered {@link JavaScriptCallback} to be
+     * cause the call method in the registered {@link JavaScriptFunction} to be
      * invoked with the same arguments.
      * 
      * @param functionName
-     *            the name that should be used for client-side callback
-     * @param javaScriptCallback
-     *            the callback object that will be invoked when the JavaScript
-     *            function is called
+     *            the name that should be used for client-side function
+     * @param function
+     *            the {@link JavaScriptFunction} object that will be invoked
+     *            when the JavaScript function is called
      */
-    protected void registerCallback(String functionName,
-            JavaScriptCallback javaScriptCallback) {
-        callbackHelper.registerCallback(functionName, javaScriptCallback);
+    protected void addFunction(String functionName, JavaScriptFunction function) {
+        callbackHelper.registerCallback(functionName, function);
     }
 
     /**
@@ -155,7 +154,7 @@ public abstract class AbstractJavaScriptComponent extends AbstractComponent {
      * @param arguments
      *            function arguments
      */
-    protected void invokeCallback(String name, Object... arguments) {
+    protected void callFunction(String name, Object... arguments) {
         callbackHelper.invokeCallback(name, arguments);
     }
 
index 53efb6296571c4dac1f322adeb38c889b7318a85..0b4669728afb9cb18d6df14b72850acf436a3dcb 100644 (file)
@@ -26,7 +26,7 @@ import com.vaadin.terminal.Page;
  * @since 7.0.0
  */
 public class JavaScript extends AbstractExtension {
-    private Map<String, JavaScriptCallback> callbacks = new HashMap<String, JavaScriptCallback>();
+    private Map<String, JavaScriptFunction> functions = new HashMap<String, JavaScriptFunction>();
 
     // Can not be defined in client package as this JSONArray is not available
     // in GWT
@@ -43,10 +43,10 @@ public class JavaScript extends AbstractExtension {
         registerRpc(new JavaScriptCallbackRpc() {
             @Override
             public void call(String name, JSONArray arguments) {
-                JavaScriptCallback callback = callbacks.get(name);
+                JavaScriptFunction function = functions.get(name);
                 // TODO handle situation if name is not registered
                 try {
-                    callback.call(arguments);
+                    function.call(arguments);
                 } catch (JSONException e) {
                     throw new IllegalArgumentException(e);
                 }
@@ -62,44 +62,44 @@ public class JavaScript extends AbstractExtension {
     /**
      * Add a new function to the global JavaScript namespace (i.e. the window
      * object). The <code>call</code> method in the passed
-     * {@link JavaScriptCallback} object will be invoked with the same
+     * {@link JavaScriptFunction} object will be invoked with the same
      * parameters whenever the JavaScript function is called in the browser.
      * 
-     * A callback added with the name <code>"myCallback"</code> can thus be
+     * A function added with the name <code>"myFunction"</code> can thus be
      * invoked with the following JavaScript code:
-     * <code>window.myCallback(argument1, argument2)</code>.
+     * <code>window.myFunction(argument1, argument2)</code>.
      * 
      * If the name parameter contains dots, simple objects are created on demand
      * to allow calling the function using the same name (e.g.
      * <code>window.myObject.myFunction</code>).
      * 
      * @param name
-     *            the name that the callback function should get in the global
-     *            JavaScript namespace.
-     * @param callback
-     *            the JavaScriptCallback that will be invoked if the JavaScript
+     *            the name that the function should get in the global JavaScript
+     *            namespace.
+     * @param function
+     *            the JavaScriptFunction that will be invoked if the JavaScript
      *            function is called.
      */
-    public void addCallback(String name, JavaScriptCallback callback) {
-        callbacks.put(name, callback);
+    public void addFunction(String name, JavaScriptFunction function) {
+        functions.put(name, function);
         if (getState().getNames().add(name)) {
             requestRepaint();
         }
     }
 
     /**
-     * Removes a JavaScripCallback from the browser's global JavaScript
+     * Removes a JavaScripFunction from the browser's global JavaScript
      * namespace.
      * 
-     * If the name contains dots and intermediate were created by
-     * {@link #addCallback(String, JavaScriptCallback)}addCallback, these
-     * objects will not be removed when the callback is removed.
+     * If the name contains dots and intermediate objects were created by
+     * {@link #addFunction(String, JavaScriptFunction)}, these objects will not
+     * be removed by this method.
      * 
      * @param name
      *            the name of the callback to remove
      */
-    public void removeCallback(String name) {
-        callbacks.remove(name);
+    public void removeFunction(String name) {
+        functions.remove(name);
         if (getState().getNames().remove(name)) {
             requestRepaint();
         }
diff --git a/src/com/vaadin/ui/JavaScriptCallback.java b/src/com/vaadin/ui/JavaScriptCallback.java
deleted file mode 100644 (file)
index 49f7695..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/* 
-@VaadinApache2LicenseForJavaFiles@
- */
-
-package com.vaadin.ui;
-
-import java.io.Serializable;
-
-import com.vaadin.external.json.JSONArray;
-import com.vaadin.external.json.JSONException;
-import com.vaadin.terminal.AbstractJavaScriptExtension;
-
-/**
- * Defines a method that is called by a client-side JavaScript function. When
- * the corresponding JavaScript function is called, the {@link #call(JSONArray)}
- * method is invoked.
- * 
- * @see JavaScript#addCallback(String, JavaScriptCallback)
- * @see AbstractJavaScriptComponent#registerCallback(String, JavaScriptCallback)
- * @see AbstractJavaScriptExtension#registerCallback(String, JavaScriptCallback)
- * 
- * @author Vaadin Ltd
- * @version @VERSION@
- * @since 7.0.0
- */
-public interface JavaScriptCallback extends Serializable {
-    /**
-     * Invoked whenever the corresponding JavaScript function is called in the
-     * browser.
-     * <p>
-     * Because of the asynchronous nature of the communication between client
-     * and server, no return value can be sent back to the browser.
-     * 
-     * @param arguments
-     *            an array with JSON representations of the arguments with which
-     *            the JavaScript function was called.
-     * @throws JSONException
-     *             if the arguments can not be interpreted
-     */
-    public void call(JSONArray arguments) throws JSONException;
-}
diff --git a/src/com/vaadin/ui/JavaScriptFunction.java b/src/com/vaadin/ui/JavaScriptFunction.java
new file mode 100644 (file)
index 0000000..e39ae9b
--- /dev/null
@@ -0,0 +1,41 @@
+/* 
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.ui;
+
+import java.io.Serializable;
+
+import com.vaadin.external.json.JSONArray;
+import com.vaadin.external.json.JSONException;
+import com.vaadin.terminal.AbstractJavaScriptExtension;
+
+/**
+ * Defines a method that is called by a client-side JavaScript function. When
+ * the corresponding JavaScript function is called, the {@link #call(JSONArray)}
+ * method is invoked.
+ * 
+ * @see JavaScript#addFunction(String, JavaScriptCallback)
+ * @see AbstractJavaScriptComponent#addFunction(String, JavaScriptCallback)
+ * @see AbstractJavaScriptExtension#addFunction(String, JavaScriptCallback)
+ * 
+ * @author Vaadin Ltd
+ * @version @VERSION@
+ * @since 7.0.0
+ */
+public interface JavaScriptFunction extends Serializable {
+    /**
+     * Invoked whenever the corresponding JavaScript function is called in the
+     * browser.
+     * <p>
+     * Because of the asynchronous nature of the communication between client
+     * and server, no return value can be sent back to the browser.
+     * 
+     * @param arguments
+     *            an array with JSON representations of the arguments with which
+     *            the JavaScript function was called.
+     * @throws JSONException
+     *             if the arguments can not be interpreted
+     */
+    public void call(JSONArray arguments) throws JSONException;
+}
index 9ea61b92bb6d7fe76f2c2087fa5e789781265e55..5f0b551e7859155ef7e2a0b290a3be7b0d3d8f32 100644 (file)
@@ -21,7 +21,7 @@ import com.vaadin.tests.components.AbstractTestRoot;
 import com.vaadin.tests.util.Log;
 import com.vaadin.ui.AbstractJavaScriptComponent;
 import com.vaadin.ui.HasComponents;
-import com.vaadin.ui.JavaScriptCallback;
+import com.vaadin.ui.JavaScriptFunction;
 
 public class BasicJavaScriptComponent extends AbstractTestRoot {
 
@@ -59,14 +59,14 @@ public class BasicJavaScriptComponent extends AbstractTestRoot {
                     log.log("Got RPC message: " + message);
                 }
             });
-            registerCallback("messageToServer", new JavaScriptCallback() {
+            addFunction("messageToServer", new JavaScriptFunction() {
                 @Override
                 public void call(JSONArray arguments) throws JSONException {
                     log.log("Got callback message: " + arguments.getString(0));
                 }
             });
 
-            registerCallback("reportParentIds", new JavaScriptCallback() {
+            addFunction("reportParentIds", new JavaScriptFunction() {
                 @Override
                 public void call(JSONArray arguments) throws JSONException {
                     JSONArray parentIds = arguments.getJSONArray(0);
@@ -89,7 +89,7 @@ public class BasicJavaScriptComponent extends AbstractTestRoot {
             });
 
             getRpcProxy(TestRpc.class).sendRpc("RPC message");
-            invokeCallback("messageToClient", "Callback message");
+            callFunction("messageToClient", "Callback message");
 
             getState()
                     .setMessages(
index a16f1314750e1bdd0103239b6f58eb12dc811385..c373d9d9ddee4603d5fde3dab141618d13356286 100644 (file)
@@ -11,7 +11,7 @@ import com.vaadin.terminal.WrappedRequest;
 import com.vaadin.tests.components.AbstractTestRoot;
 import com.vaadin.tests.util.Log;
 import com.vaadin.ui.JavaScript;
-import com.vaadin.ui.JavaScriptCallback;
+import com.vaadin.ui.JavaScriptFunction;
 
 public class JavascriptManagerTest extends AbstractTestRoot {
 
@@ -21,7 +21,7 @@ public class JavascriptManagerTest extends AbstractTestRoot {
     protected void setup(WrappedRequest request) {
         addComponent(log);
         final JavaScript js = JavaScript.getCurrent();
-        js.addCallback("testing.doTest", new JavaScriptCallback() {
+        js.addFunction("testing.doTest", new JavaScriptFunction() {
             @Override
             public void call(JSONArray arguments) throws JSONException {
                 log.log("Got " + arguments.length() + " arguments");
@@ -31,7 +31,7 @@ public class JavascriptManagerTest extends AbstractTestRoot {
                         + arguments.getJSONObject(2).getBoolean("p"));
                 log.log("Argument 4 is JSONObject.NULL: "
                         + (arguments.get(3) == JSONObject.NULL));
-                js.removeCallback("testing.doTest");
+                js.removeFunction("testing.doTest");
             }
         });
         js.execute("window.testing.doTest(42, 'text', {p: true}, null)");
index cb05bde493d02c81193c394da14230ca885158e2..64c7f6a5a8901e6a5c097d77050e95f4c86fcede 100644 (file)
@@ -16,7 +16,7 @@ import com.vaadin.terminal.WrappedRequest;
 import com.vaadin.tests.components.AbstractTestRoot;
 import com.vaadin.ui.Button;
 import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.JavaScriptCallback;
+import com.vaadin.ui.JavaScriptFunction;
 import com.vaadin.ui.Notification;
 
 public class SimpleJavaScriptExtensionTest extends AbstractTestRoot {
@@ -56,7 +56,7 @@ public class SimpleJavaScriptExtensionTest extends AbstractTestRoot {
                     Notification.show(getState().getPrefix() + message);
                 }
             });
-            registerCallback("greetToServer", new JavaScriptCallback() {
+            addFunction("greetToServer", new JavaScriptFunction() {
                 @Override
                 public void call(JSONArray arguments) throws JSONException {
                     Notification.show(getState().getPrefix()
@@ -81,7 +81,7 @@ public class SimpleJavaScriptExtensionTest extends AbstractTestRoot {
         }
 
         public void greetCallback(String message) {
-            invokeCallback("greetToClient", message);
+            callFunction("greetToClient", message);
         }
     }
 
index bd4cfd5839d9fe36686896f3b81e339ee5b1948c..d545831794594d2cf881396a02997b6fe052549e 100644 (file)
@@ -23,7 +23,7 @@ public class Analytics extends AbstractJavaScriptExtension {
     private void pushCommand(Object... commandAndArguments) {
         // Cast to Object to use Object[] commandAndArguments as the first
         // varargs argument instead of as the full varargs argument array.
-        invokeCallback("pushCommand", (Object) commandAndArguments);
+        callFunction("pushCommand", (Object) commandAndArguments);
     }
 
     protected void extend(Root root) {
index 946a67d7fdd261b034ef9feeb615421e744c0e4e..2e60c1ba378ad4339c27424b2296870d00495bfa 100644 (file)
@@ -12,7 +12,7 @@ import com.vaadin.annotations.JavaScript;
 import com.vaadin.external.json.JSONArray;
 import com.vaadin.external.json.JSONException;
 import com.vaadin.ui.AbstractJavaScriptComponent;
-import com.vaadin.ui.JavaScriptCallback;
+import com.vaadin.ui.JavaScriptFunction;
 import com.vaadin.ui.Notification;
 
 @JavaScript({
@@ -27,7 +27,7 @@ public class Flot extends AbstractJavaScriptComponent {
                         + dataIndex + "]");
             }
         });
-        registerCallback("onPlotClick", new JavaScriptCallback() {
+        addFunction("onPlotClick", new JavaScriptFunction() {
             @Override
             public void call(JSONArray arguments) throws JSONException {
                 int seriesIndex = arguments.getInt(0);
@@ -52,7 +52,7 @@ public class Flot extends AbstractJavaScriptComponent {
 
     public void highlight(int seriesIndex, int dataIndex) {
         getRpcProxy(FlotHighlightRpc.class).highlight(seriesIndex, dataIndex);
-        invokeCallback("highlight", seriesIndex, dataIndex);
+        callFunction("highlight", seriesIndex, dataIndex);
     }
 
     @Override