1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/ConvertTypes.java Wed Apr 10 11:43:46 2013 +0200
1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/ConvertTypes.java Mon Apr 15 18:30:30 2013 +0200
1.3 @@ -17,6 +17,7 @@
1.4 */
1.5 package org.apidesign.bck2brwsr.htmlpage;
1.6
1.7 +import netscape.javascript.JSObject;
1.8 import org.apidesign.bck2brwsr.core.JavaScriptBody;
1.9
1.10 /**
1.11 @@ -44,6 +45,12 @@
1.12
1.13 public static <T> T toModel(Class<T> modelClass, Object object, String property) {
1.14 Object ret = getProperty(object, property);
1.15 + if (ret instanceof JSObject) {
1.16 + Object real = ((JSObject)ret).getMember("koModel");
1.17 + if (real != null) {
1.18 + ret = real;
1.19 + }
1.20 + }
1.21 if (ret == null || modelClass.isInstance(ret)) {
1.22 return modelClass.cast(ret);
1.23 }
1.24 @@ -71,7 +78,15 @@
1.25 + "var p = object[property]; return p ? p : null;"
1.26 )
1.27 private static Object getProperty(Object object, String property) {
1.28 - return null;
1.29 + if (property == null) {
1.30 + return object;
1.31 + } else {
1.32 + if (object instanceof JSObject) {
1.33 + JSObject jo = (JSObject)object;
1.34 + return jo.getMember(property);
1.35 + }
1.36 + return null;
1.37 + }
1.38 }
1.39
1.40 public static String createJSONP(Object[] jsonResult, Runnable whenDone) {