1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Mon Feb 18 19:42:02 2013 +0100
1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Mon Feb 18 19:52:06 2013 +0100
1.3 @@ -458,10 +458,35 @@
1.4 }
1.5
1.6 private static String typeName(Property p) {
1.7 + String ret;
1.8 try {
1.9 - return p.type().getName();
1.10 + ret = p.type().getName();
1.11 } catch (MirroredTypeException ex) {
1.12 - return ex.getTypeMirror().toString();
1.13 + ret = ex.getTypeMirror().toString();
1.14 }
1.15 + if (p.array()) {
1.16 + if (ret.equals("byte")) {
1.17 + return Byte.class.getName();
1.18 + }
1.19 + if (ret.equals("short")) {
1.20 + return Short.class.getName();
1.21 + }
1.22 + if (ret.equals("char")) {
1.23 + return Character.class.getName();
1.24 + }
1.25 + if (ret.equals("int")) {
1.26 + return Integer.class.getName();
1.27 + }
1.28 + if (ret.equals("long")) {
1.29 + return Long.class.getName();
1.30 + }
1.31 + if (ret.equals("float")) {
1.32 + return Float.class.getName();
1.33 + }
1.34 + if (ret.equals("double")) {
1.35 + return Double.class.getName();
1.36 + }
1.37 + }
1.38 + return ret;
1.39 }
1.40 }
2.1 --- a/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/ModelTest.java Mon Feb 18 19:42:02 2013 +0100
2.2 +++ b/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/ModelTest.java Mon Feb 18 19:52:06 2013 +0100
2.3 @@ -35,7 +35,8 @@
2.4 @Page(xhtml = "Empty.html", className = "Model", properties = {
2.5 @Property(name = "value", type = int.class),
2.6 @Property(name = "unrelated", type = long.class),
2.7 - @Property(name = "names", type = String.class, array = true)
2.8 + @Property(name = "names", type = String.class, array = true),
2.9 + @Property(name = "values", type = int.class, array = true)
2.10 })
2.11 public class ModelTest {
2.12 private Model model;
2.13 @@ -91,6 +92,17 @@
2.14 assertTrue(my.mutated.contains("names"), "Change in names property: " + my.mutated);
2.15 }
2.16
2.17 + @Test public void autoboxedArray() {
2.18 + MockKnockout my = new MockKnockout();
2.19 + MockKnockout.next = my;
2.20 +
2.21 + model.applyBindings();
2.22 +
2.23 + model.getValues().add(10);
2.24 +
2.25 + assertEquals(model.getValues().get(0), Integer.valueOf(10), "Really ten");
2.26 + }
2.27 +
2.28 @Test public void derivedPropertiesAreNotified() {
2.29 MockKnockout my = new MockKnockout();
2.30 MockKnockout.next = my;