1.1 --- a/json/src/main/java/org/apidesign/html/json/impl/JSONList.java Mon Apr 22 16:07:00 2013 +0200
1.2 +++ b/json/src/main/java/org/apidesign/html/json/impl/JSONList.java Mon Apr 22 16:14:52 2013 +0200
1.3 @@ -141,10 +141,6 @@
1.4 return sb.toString();
1.5 }
1.6
1.7 - public Object koData() {
1.8 - return toArray();
1.9 - }
1.10 -
1.11 private void notifyChange() {
1.12 Bindings m = model;
1.13 if (m != null) {
1.14 @@ -165,4 +161,21 @@
1.15 ko.model = null;
1.16 return ko;
1.17 }
1.18 +
1.19 + @Override
1.20 + public boolean equals(Object o) {
1.21 + if (o instanceof WrapperObject) {
1.22 + ((WrapperObject)o).setRealObject(koData());
1.23 + }
1.24 + return super.equals(o);
1.25 + }
1.26 +
1.27 + private Object[] koData() {
1.28 + Object[] arr = toArray();
1.29 + for (int i = 0; i < arr.length; i++) {
1.30 + arr[i] = WrapperObject.find(arr[i]);
1.31 + }
1.32 + return arr;
1.33 + }
1.34 +
1.35 }
2.1 --- a/json/src/test/java/org/apidesign/html/json/impl/JSONListTest.java Mon Apr 22 16:07:00 2013 +0200
2.2 +++ b/json/src/test/java/org/apidesign/html/json/impl/JSONListTest.java Mon Apr 22 16:14:52 2013 +0200
2.3 @@ -60,11 +60,14 @@
2.4 p.setLastName("2");
2.5 p.setSex(Sex.MALE);
2.6
2.7 - People arr = new People(c);
2.8 - arr.getInfo().add(p);
2.9 + People people = new People(c);
2.10 + people.getInfo().add(p);
2.11
2.12 - Object real = WrapperObject.find(p);
2.13 - assertEquals(this, real, "I am the right model");
2.14 + Object real = WrapperObject.find(people.getInfo());
2.15 + assertTrue(real instanceof Object[], "It is an array: " + real);
2.16 + Object[] arr = (Object[])real;
2.17 + assertEquals(arr.length, 1, "Size is one");
2.18 + assertEquals(this, arr[0], "I am the right model");
2.19 }
2.20
2.21 @Override