You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by jt...@apache.org on 2019/02/15 19:57:28 UTC

[incubator-netbeans-html4j] 05/15: Keep js() internal to Knockout instance

This is an automated email from the ASF dual-hosted git repository.

jtulach pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-netbeans-html4j.git

commit e31a1a2e01918df2be0669d6c2a6654088a6f737
Author: Jaroslav Tulach <ja...@apidesign.org>
AuthorDate: Wed Feb 13 11:08:15 2019 +0100

    Keep js() internal to Knockout instance
---
 ko4j/src/main/java/org/netbeans/html/ko4j/KOTech.java   |  4 ++--
 ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java | 16 ++++++++++++----
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/ko4j/src/main/java/org/netbeans/html/ko4j/KOTech.java b/ko4j/src/main/java/org/netbeans/html/ko4j/KOTech.java
index 04f9928..9586c8c 100644
--- a/ko4j/src/main/java/org/netbeans/html/ko4j/KOTech.java
+++ b/ko4j/src/main/java/org/netbeans/html/ko4j/KOTech.java
@@ -74,7 +74,7 @@ Technology.ApplyId<Knockout>, Technology.ToJavaScript<Knockout> {
             if (newValue instanceof Enum) {
                 newValue = newValue.toString();
             }
-            Knockout.valueHasMutated(data.js(), propertyName, oldValue, newValue);
+            data.valueHasMutated(propertyName, oldValue, newValue);
         }
     }
 
@@ -89,7 +89,7 @@ Technology.ApplyId<Knockout>, Technology.ToJavaScript<Knockout> {
     }
     @Override
     public void applyBindings(String id, Knockout data) {
-        Object ko = Knockout.applyBindings(id, data.js());
+        Object ko = data.applyBindings(id);
         if (ko instanceof Knockout) {
             ((Knockout)ko).hold();
             applied.add((Knockout) ko);
diff --git a/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java b/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java
index 70c3287..f83534f 100644
--- a/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java
+++ b/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java
@@ -59,8 +59,8 @@ final class Knockout  {
     private PropertyBinding[] props;
     private FunctionBinding[] funcs;
     private final Map<Fn.Presenter,Object> objs = new HashMap<Fn.Presenter, Object>();
-    private Object copyFrom;
-    private Object strong;
+    private final Object copyFrom;
+    private final Object strong;
 
     public Knockout(Object model, Object copyFrom, PropertyBinding[] props, FunctionBinding[] funcs) {
         this.strong = model;
@@ -144,6 +144,10 @@ final class Knockout  {
         funcs[index].call(data, ev);
     }
 
+    final void valueHasMutated(String propertyName, Object oldValue, Object newValue) {
+        valueHasMutated(js(), propertyName, oldValue, newValue);
+    }
+
     @JavaScriptBody(args = { "model", "prop", "oldValue", "newValue" },
         wait4js = false,
         body =
@@ -161,10 +165,14 @@ final class Knockout  {
         + "  }\n"
         + "}\n"
     )
-    native static void valueHasMutated(
+    private native static void valueHasMutated(
         Object model, String prop, Object oldValue, Object newValue
     );
 
+    final Object applyBindings(String id) {
+        return applyBindings(id, js());
+    }
+
     @JavaScriptBody(args = { "id", "bindings" }, body =
         "var d = window['document'];\n" +
         "var e = id ? d['getElementById'](id) : d['body'];\n" +
@@ -172,7 +180,7 @@ final class Knockout  {
         "ko['applyBindings'](bindings, e);\n" +
         "return bindings['ko4j'];\n"
     )
-    native static Object applyBindings(String id, Object bindings);
+    private native static Object applyBindings(String id, Object bindings);
 
     @JavaScriptBody(args = { "cnt" }, body =
         "var arr = new Array(cnt);\n" +


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists