Selaa lähdekoodia

Rename JavaScriptCallback -> JavaScriptFunction (#9293)

tags/7.0.0.beta1
Leif Åstrand 11 vuotta sitten
vanhempi
commit
b998fd14b6

+ 12
- 13
src/com/vaadin/terminal/AbstractJavaScriptExtension.java Näytä tiedosto

@@ -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);
}


+ 4
- 4
src/com/vaadin/terminal/JavaScriptCallbackHelper.java Näytä tiedosto

@@ -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) {

+ 12
- 13
src/com/vaadin/ui/AbstractJavaScriptComponent.java Näytä tiedosto

@@ -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);
}


+ 18
- 18
src/com/vaadin/ui/JavaScript.java Näytä tiedosto

@@ -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();
}

src/com/vaadin/ui/JavaScriptCallback.java → src/com/vaadin/ui/JavaScriptFunction.java Näytä tiedosto

@@ -15,15 +15,15 @@ import com.vaadin.terminal.AbstractJavaScriptExtension;
* 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)
* @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 JavaScriptCallback extends Serializable {
public interface JavaScriptFunction extends Serializable {
/**
* Invoked whenever the corresponding JavaScript function is called in the
* browser.

+ 4
- 4
tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponent.java Näytä tiedosto

@@ -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(

+ 3
- 3
tests/testbench/com/vaadin/tests/extensions/JavascriptManagerTest.java Näytä tiedosto

@@ -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)");

+ 3
- 3
tests/testbench/com/vaadin/tests/extensions/SimpleJavaScriptExtensionTest.java Näytä tiedosto

@@ -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);
}
}


+ 1
- 1
tests/testbench/com/vaadin/tests/minitutorials/v7a3/Analytics.java Näytä tiedosto

@@ -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) {

+ 3
- 3
tests/testbench/com/vaadin/tests/minitutorials/v7a3/Flot.java Näytä tiedosto

@@ -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

Loading…
Peruuta
Tallenna