# HG changeset patch # User Jaroslav Tulach # Date 1365933795 -7200 # Node ID 1ea155524be4e901badc05b4e09ebd5a7d0afa52 # Parent 83f4aa79c1306d3c764ae859d331d834414b9e03 Setter on int (and possibly also double) works diff -r 83f4aa79c130 -r 1ea155524be4 javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/KOProperty.java --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/KOProperty.java Sun Apr 14 11:52:36 2013 +0200 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/KOProperty.java Sun Apr 14 12:03:15 2013 +0200 @@ -52,6 +52,26 @@ public void set(Object value) throws Exception { LOG.log(Level.INFO, "{0} set to {1}", new Object[] { setter, value }); - setter.invoke(obj, value); + final Class rt = getter.getReturnType(); + + try { + if (rt == String.class) { + setter.invoke(obj, value.toString()); + return; + } + if (rt == Integer.class || rt == int.class) { + setter.invoke(obj, Integer.parseInt(value.toString())); + return; + } + if (rt == Double.class || rt == double.class) { + setter.invoke(obj, Double.parseDouble(value.toString())); + return; + } + setter.invoke(obj, value); + } catch (Throwable ex) { + LOG.log(Level.SEVERE, "Can''t set " + setter, ex); + } + } + } diff -r 83f4aa79c130 -r 1ea155524be4 javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java Sun Apr 14 11:52:36 2013 +0200 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java Sun Apr 14 12:03:15 2013 +0200 @@ -109,12 +109,12 @@ } public void valueHasMutated(String prop) { - LOG.log(Level.FINE, "property mutated: {0}", prop); + LOG.log(Level.INFO, "property mutated: {0}", prop); try { JSObject koProp = (JSObject) ((JSObject) model).getMember(prop); koProp.call("valueHasMutated"); } catch (Throwable t) { - LOG.log(Level.FINE, "valueHasMutated failed for {0}", model); + LOG.log(Level.WARNING, "valueHasMutated failed for {0}", model); } }