1.1 --- a/json/src/main/java/org/apidesign/html/json/impl/JSONList.java Mon Apr 22 21:19:58 2013 +0200
1.2 +++ b/json/src/main/java/org/apidesign/html/json/impl/JSONList.java Mon Apr 22 21:36:07 2013 +0200
1.3 @@ -162,10 +162,13 @@
1.4 return ko;
1.5 }
1.6
1.7 - public Object koData() {
1.8 + final Object koData() {
1.9 Object[] arr = toArray();
1.10 for (int i = 0; i < arr.length; i++) {
1.11 - arr[i] = WrapperObject.find(arr[i]);
1.12 + Object r = WrapperObject.find(arr[i]);
1.13 + if (r != null) {
1.14 + arr[i] = r;
1.15 + }
1.16 }
1.17 return model.wrapArray(arr);
1.18 }
2.1 --- a/json/src/test/java/org/apidesign/html/json/impl/JSONListTest.java Mon Apr 22 21:19:58 2013 +0200
2.2 +++ b/json/src/test/java/org/apidesign/html/json/impl/JSONListTest.java Mon Apr 22 21:36:07 2013 +0200
2.3 @@ -83,6 +83,24 @@
2.4 assertEquals(this, arr[0], "I am the right model");
2.5 }
2.6
2.7 + @Test public void testNicknames() {
2.8 + Context c = ContextBuilder.create().withTechnology(this).build();
2.9 +
2.10 + People people = new People(c);
2.11 + people.getNicknames().add("One");
2.12 + people.getNicknames().add("Two");
2.13 +
2.14 + PropertyBinding pb = bindings.get("nicknames");
2.15 + assertNotNull(pb, "Binding for info found");
2.16 +
2.17 + Object real = pb.getValue();
2.18 + assertTrue(real instanceof Object[], "It is an array: " + real);
2.19 + Object[] arr = (Object[])real;
2.20 + assertEquals(arr.length, 2, "Length two");
2.21 + assertEquals(arr[0], "One", "Text should be in the model");
2.22 + assertEquals(arr[1], "Two", "2nd text in the model");
2.23 + }
2.24 +
2.25 @Test public void testConvertorOnAnArrayWithWrapper() {
2.26 this.replaceArray = true;
2.27 Context c = ContextBuilder.create().withTechnology(this).build();