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 050044109ba848857b20d34a328cc9e1cbbcf2bd
Author: Jaroslav Tulach <[email protected]>
AuthorDate: Tue Feb 12 19:59:33 2019 +0100

    Keep JavaScript object per presenter
---
 ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

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 9222296..70c3287 100644
--- a/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java
+++ b/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java
@@ -18,9 +18,12 @@
  */
 package org.netbeans.html.ko4j;
 
+import java.util.HashMap;
+import java.util.Map;
 import net.java.html.js.JavaScriptBody;
 import net.java.html.js.JavaScriptResource;
 import net.java.html.json.Model;
+import org.netbeans.html.boot.spi.Fn;
 import org.netbeans.html.json.spi.FunctionBinding;
 import org.netbeans.html.json.spi.PropertyBinding;
 
@@ -55,7 +58,7 @@ final class Knockout  {
 
     private PropertyBinding[] props;
     private FunctionBinding[] funcs;
-    private Object js;
+    private final Map<Fn.Presenter,Object> objs = new HashMap<Fn.Presenter, 
Object>();
     private Object copyFrom;
     private Object strong;
 
@@ -73,8 +76,10 @@ final class Knockout  {
     }
 
     final Object js() {
+        Object js = objs.get(Fn.activePresenter());
         if (js == null) {
-            this.js = initObjs(copyFrom);
+            js = initObjs(copyFrom);
+            objs.put(Fn.activePresenter(), js);
         }
         return js;
     }
@@ -110,8 +115,8 @@ final class Knockout  {
             if (ko == null) {
                 return;
             }
-            clean(ko.js);
-            ko.js = null;
+            Object js = ko.objs.remove(Fn.activePresenter());
+            clean(js);
             ko.props = null;
             ko.funcs = null;
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

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

Reply via email to