]> source.dussan.org Git - gwtquery.git/commitdiff
Fix databinding
authorMaxime Mériouma-Caron <maxime.meriouma@arcbees.com>
Wed, 2 Dec 2015 01:21:32 +0000 (20:21 -0500)
committerMaxime Mériouma-Caron <maxime.meriouma@arcbees.com>
Wed, 2 Dec 2015 01:21:32 +0000 (20:21 -0500)
gwtquery-core/src/main/java/com/google/gwt/query/client/builders/JsonBuilderBase.java
gwtquery-core/src/test/java/com/google/gwt/query/client/dbinding/DataBindingTestJre.java

index 996f245c5aa53e69d44ecf5bb584f5404b80a6cd..113d6fd6d8fddd2a367e5bc0c981c17e3c08b194 100644 (file)
@@ -26,6 +26,7 @@ import com.google.gwt.query.client.js.JsObjectArray;
 import com.google.gwt.query.client.js.JsUtils;
 
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.List;
 
 /**
@@ -166,6 +167,11 @@ public abstract class JsonBuilderBase<J extends JsonBuilderBase<?>> implements J
   public <T extends IsProperties> T set(Object key, Object val) {
     if (val instanceof IsProperties) {
       p.set(key, ((IsProperties) val).getDataImpl());
+    } else if (val instanceof Object[]) {
+      setArrayBase(String.valueOf(key), (Object[]) val);
+    } else if (val instanceof Collection) {
+      Collection collection = (Collection) val;
+      setArrayBase(String.valueOf(key), collection.toArray(new Object[collection.size()]));
     } else {
       p.set(key, val);
     }
index 3652ab43e47c798e5bd6dc2312194146a808e0e3..903ef138168e271b9cf13c581e8ab9ef90903911 100644 (file)
@@ -230,11 +230,11 @@ public class DataBindingTestJre extends GWTTestCase {
     user.set("name", "Random Name");
     user.set("phones", Collections.emptyList());
     String json = user.toJson();
-    
+
     //WHEN fetching that user
     GUser retrievedUser = GQ.create(GUser.class);
     retrievedUser.parse(json, true);
-    
+
     //THEN
     assertEquals(0, retrievedUser.getPhones().size());
   }