diff -r 62d77cc38117 -r 9ddce13e8ff9 javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/ConvertTypes.java --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/ConvertTypes.java Wed Apr 10 11:43:46 2013 +0200 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/ConvertTypes.java Mon Apr 15 18:30:30 2013 +0200 @@ -17,6 +17,7 @@ */ package org.apidesign.bck2brwsr.htmlpage; +import netscape.javascript.JSObject; import org.apidesign.bck2brwsr.core.JavaScriptBody; /** @@ -44,6 +45,12 @@ public static T toModel(Class modelClass, Object object, String property) { Object ret = getProperty(object, property); + if (ret instanceof JSObject) { + Object real = ((JSObject)ret).getMember("koModel"); + if (real != null) { + ret = real; + } + } if (ret == null || modelClass.isInstance(ret)) { return modelClass.cast(ret); } @@ -71,7 +78,15 @@ + "var p = object[property]; return p ? p : null;" ) private static Object getProperty(Object object, String property) { - return null; + if (property == null) { + return object; + } else { + if (object instanceof JSObject) { + JSObject jo = (JSObject)object; + return jo.getMember(property); + } + return null; + } } public static String createJSONP(Object[] jsonResult, Runnable whenDone) {