]> source.dussan.org Git - vaadin-framework.git/commitdiff
Move elemental json dependency to DWS (#15544)
authorArtur Signell <artur@vaadin.com>
Sun, 11 Jan 2015 10:18:11 +0000 (12:18 +0200)
committerArtur Signell <artur@vaadin.com>
Sun, 11 Jan 2015 11:28:16 +0000 (13:28 +0200)
Change-Id: I1b525e4d8df60f8e36bad9e5054d948da5b34813

client/src/com/vaadin/DefaultWidgetSet.gwt.xml
client/src/com/vaadin/Vaadin.gwt.xml
client/src/com/vaadin/client/ApplicationConnection.java
client/src/com/vaadin/client/JavaScriptConnectorHelper.java
client/src/com/vaadin/client/Util.java
client/src/com/vaadin/client/VUIDLBrowser.java
client/src/com/vaadin/client/WidgetUtil.java
client/src/com/vaadin/client/communication/StateChangeEvent.java
client/src/com/vaadin/client/extensions/javascriptmanager/JavaScriptManagerConnector.java

index 7694be9de6c0655ee4a03fc52d818f7256e3a546..3047924ac77c78c23879272182e5a764d2f380ae 100755 (executable)
@@ -8,6 +8,9 @@
 
     <inherits name="com.vaadin.Vaadin" />
 
+    <!-- Elemental is used for handling Json only -->
+    <inherits name="elemental.Json" />
+
     <entry-point class="com.vaadin.client.ApplicationConfiguration" />
 
     <generate-with
index 2072df67d9d9a7fc7c79dc8b1e4c5f3a15e81ee6..1bbece6bd67c4d63852e0cb69d6820b8574b3e24 100644 (file)
@@ -10,8 +10,6 @@
 
     <inherits name="com.google.gwt.http.HTTP" />
 
-    <inherits name="elemental.Json" />
-
     <inherits name="com.google.gwt.logging.Logging" />
     <set-property name="gwt.logging.enabled" value="TRUE" />
 
index a84b7d747264fb32fb4f83d936b838cbe80f9730..ac0656505a0f9a944d980e6f676f1c1401169e87 100644 (file)
@@ -2158,7 +2158,7 @@ public class ApplicationConnection implements HasHandlers {
 
                             JavaScriptObject jso = states
                                     .getJavaScriptObject(connectorId);
-                            JsonObject stateJson = WidgetUtil.jso2json(jso);
+                            JsonObject stateJson = Util.jso2json(jso);
 
                             if (connector instanceof HasJavaScriptConnectorHelper) {
                                 ((HasJavaScriptConnectorHelper) connector)
@@ -2530,7 +2530,7 @@ public class ApplicationConnection implements HasHandlers {
 
                     VConsole.log(" * Performing server to client RPC calls");
 
-                    JsonArray rpcCalls = WidgetUtil.jso2json(json
+                    JsonArray rpcCalls = Util.jso2json(json
                             .getJavaScriptObject("rpc"));
 
                     int rpcLength = rpcCalls.length();
index 524e1ee9aa6a43780470885496eaf8b8a2758d29..11511f9c36f7516989d793f1a033b21bd64524f1 100644 (file)
@@ -319,7 +319,7 @@ public class JavaScriptConnectorHelper {
             iface = findWildcardInterface(method);
         }
 
-        JsonArray argumentsArray = WidgetUtil.jso2json(arguments);
+        JsonArray argumentsArray = Util.jso2json(arguments);
         Object[] parameters = new Object[arguments.length()];
         for (int i = 0; i < parameters.length; i++) {
             parameters[i] = argumentsArray.get(i);
@@ -383,7 +383,7 @@ public class JavaScriptConnectorHelper {
     }-*/;
 
     public Object[] decodeRpcParameters(JsonArray parametersJson) {
-        return new Object[] { WidgetUtil.json2jso(parametersJson) };
+        return new Object[] { Util.json2jso(parametersJson) };
     }
 
     public void setTag(int tag) {
@@ -397,11 +397,10 @@ public class JavaScriptConnectorHelper {
         if ("com.vaadin.ui.JavaScript$JavaScriptCallbackRpc".equals(iface)
                 && "call".equals(method)) {
             String callbackName = parametersJson.getString(0);
-            JavaScriptObject arguments = WidgetUtil.json2jso(parametersJson
-                    .get(1));
+            JavaScriptObject arguments = Util.json2jso(parametersJson.get(1));
             invokeCallback(getConnectorWrapper(), callbackName, arguments);
         } else {
-            JavaScriptObject arguments = WidgetUtil.json2jso(parametersJson);
+            JavaScriptObject arguments = Util.json2jso(parametersJson);
             invokeJsRpc(rpcMap, iface, method, arguments);
             // Also invoke wildcard interface
             invokeJsRpc(rpcMap, "", method, arguments);
index ee3e8a5781df8fa5c041ae2b839c6420f838dc92..778f7c38611882f0c3efecd6b4331d7333a07b2a 100644 (file)
@@ -22,6 +22,8 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.JavaScriptObject;
 import com.google.gwt.dom.client.Element;
 import com.google.gwt.dom.client.NativeEvent;
 import com.google.gwt.event.dom.client.KeyEvent;
@@ -37,6 +39,9 @@ import com.vaadin.shared.communication.MethodInvocation;
 import com.vaadin.shared.ui.ComponentStateUtil;
 import com.vaadin.shared.util.SharedUtil;
 
+import elemental.js.json.JsJsonValue;
+import elemental.json.JsonValue;
+
 public class Util {
 
     /**
@@ -895,4 +900,64 @@ public class Util {
         WidgetUtil.setSelectionRange(elem, pos, length, direction);
     }
 
+    /**
+     * Converts a native {@link JavaScriptObject} into a {@link JsonValue}. This
+     * is a no-op in GWT code compiled to javascript, but needs some special
+     * handling to work when run in JVM.
+     * 
+     * @param jso
+     *            the java script object to represent as json
+     * @return the json representation
+     */
+    public static <T extends JsonValue> T jso2json(JavaScriptObject jso) {
+        if (GWT.isProdMode()) {
+            return (T) jso.<JsJsonValue> cast();
+        } else {
+            return elemental.json.Json.instance().parse(stringify(jso));
+        }
+    }
+
+    /**
+     * Converts a {@link JsonValue} into a native {@link JavaScriptObject}. This
+     * is a no-op in GWT code compiled to javascript, but needs some special
+     * handling to work when run in JVM.
+     * 
+     * @param jsonValue
+     *            the json value
+     * @return a native javascript object representation of the json value
+     */
+    public static JavaScriptObject json2jso(JsonValue jsonValue) {
+        if (GWT.isProdMode()) {
+            return ((JavaScriptObject) jsonValue.toNative()).cast();
+        } else {
+            return parse(jsonValue.toJson());
+        }
+    }
+
+    /**
+     * Convert a {@link JavaScriptObject} into a string representation.
+     *
+     * @param json
+     *            a JavaScript object to be converted to a string
+     * @return JSON in string representation
+     */
+    private native static String stringify(JavaScriptObject json)
+    /*-{
+        return JSON.stringify(json);
+    }-*/;
+
+    /**
+     * Parse a string containing JSON into a {@link JavaScriptObject}.
+     *
+     * @param <T>
+     *            the overlay type to expect from the parse
+     * @param jsonAsString
+     * @return a JavaScript object constructed from the parse
+     */
+    public native static <T extends JavaScriptObject> T parse(
+            String jsonAsString)
+    /*-{
+        return JSON.parse(jsonAsString);
+    }-*/;
+
 }
index 137b5241beaa0ac2ce7265fed704f9ca60d458eb..08f4c653a5dc141d619aeb7d593d5f841e7ec299 100644 (file)
@@ -161,7 +161,7 @@ public class VUIDLBrowser extends SimpleTree {
             } else {
                 setText("Unknown connector (" + connectorId + ")");
             }
-            dir((JsonObject) WidgetUtil.jso2json(stateChanges), this);
+            dir((JsonObject) Util.jso2json(stateChanges), this);
         }
 
         @Override
index e05155d4402b4a5c42682954cc521b590a56bdb7..96f161c4a8e02338f14b25b45562e5ab6c4973ff 100644 (file)
@@ -21,8 +21,6 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.logging.Logger;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.core.client.JavaScriptObject;
 import com.google.gwt.core.client.Scheduler;
 import com.google.gwt.core.client.Scheduler.ScheduledCommand;
 import com.google.gwt.dom.client.AnchorElement;
@@ -48,9 +46,6 @@ import com.google.gwt.user.client.ui.RootPanel;
 import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.shared.util.SharedUtil;
 
-import elemental.js.json.JsJsonValue;
-import elemental.json.JsonValue;
-
 /**
  * Utility methods which are related to client side code only
  */
@@ -1223,66 +1218,6 @@ public class WidgetUtil {
        }
     }-*/;
 
-    /**
-     * Converts a native {@link JavaScriptObject} into a {@link JsonValue}. This
-     * is a no-op in GWT code compiled to javascript, but needs some special
-     * handling to work when run in JVM.
-     * 
-     * @param jso
-     *            the java script object to represent as json
-     * @return the json representation
-     */
-    public static <T extends JsonValue> T jso2json(JavaScriptObject jso) {
-        if (GWT.isProdMode()) {
-            return (T) jso.<JsJsonValue> cast();
-        } else {
-            return elemental.json.Json.instance().parse(stringify(jso));
-        }
-    }
-
-    /**
-     * Converts a {@link JsonValue} into a native {@link JavaScriptObject}. This
-     * is a no-op in GWT code compiled to javascript, but needs some special
-     * handling to work when run in JVM.
-     * 
-     * @param jsonValue
-     *            the json value
-     * @return a native javascript object representation of the json value
-     */
-    public static JavaScriptObject json2jso(JsonValue jsonValue) {
-        if (GWT.isProdMode()) {
-            return ((JavaScriptObject) jsonValue.toNative()).cast();
-        } else {
-            return parse(jsonValue.toJson());
-        }
-    }
-
-    /**
-     * Convert a {@link JavaScriptObject} into a string representation.
-     *
-     * @param json
-     *            a JavaScript object to be converted to a string
-     * @return JSON in string representation
-     */
-    private native static String stringify(JavaScriptObject json)
-    /*-{
-        return JSON.stringify(json);
-    }-*/;
-
-    /**
-     * Parse a string containing JSON into a {@link JavaScriptObject}.
-     *
-     * @param <T>
-     *            the overlay type to expect from the parse
-     * @param jsonAsString
-     * @return a JavaScript object constructed from the parse
-     */
-    public native static <T extends JavaScriptObject> T parse(
-            String jsonAsString)
-    /*-{
-        return JSON.parse(jsonAsString);
-    }-*/;
-
     /**
      * The allowed value inaccuracy when comparing two double-typed pixel
      * values.
index eeb0a76fb96cc872c418698db4052752b52721ef..c2c1ceaea9437ac15fdd4fe91f4388a169b40f51 100644 (file)
@@ -25,11 +25,12 @@ import com.vaadin.client.FastStringSet;
 import com.vaadin.client.JsArrayObject;
 import com.vaadin.client.Profiler;
 import com.vaadin.client.ServerConnector;
-import com.vaadin.client.WidgetUtil;
+import com.vaadin.client.Util;
 import com.vaadin.client.communication.StateChangeEvent.StateChangeHandler;
 import com.vaadin.client.metadata.NoDataException;
 import com.vaadin.client.metadata.Property;
 import com.vaadin.client.ui.AbstractConnector;
+
 import elemental.json.JsonObject;
 
 public class StateChangeEvent extends
@@ -204,7 +205,7 @@ public class StateChangeEvent extends
             return true;
         } else if (stateJson != null) {
             // Check whether it's in the json object
-            return isInJson(property, WidgetUtil.json2jso(stateJson));
+            return isInJson(property, Util.json2jso(stateJson));
         } else {
             // Legacy cases
             if (changedProperties != null) {
index 7950d2f94a14bd333d0409313c26896ce33aee1f..d48571452e631e6ac84cec8c1638a6a26d5ffd09 100644 (file)
@@ -22,7 +22,7 @@ import java.util.Set;
 import com.google.gwt.core.client.JavaScriptObject;
 import com.google.gwt.core.client.JsArray;
 import com.vaadin.client.ServerConnector;
-import com.vaadin.client.WidgetUtil;
+import com.vaadin.client.Util;
 import com.vaadin.client.communication.JavaScriptMethodInvocation;
 import com.vaadin.client.communication.StateChangeEvent;
 import com.vaadin.client.extensions.AbstractExtensionConnector;
@@ -116,8 +116,7 @@ public class JavaScriptManagerConnector extends AbstractExtensionConnector {
     }-*/;
 
     public void sendRpc(String name, JsArray<JavaScriptObject> arguments) {
-        Object[] parameters = new Object[] { name,
-                WidgetUtil.jso2json(arguments) };
+        Object[] parameters = new Object[] { name, Util.jso2json(arguments) };
 
         /*
          * Must invoke manually as the RPC interface can't be used in GWT