Wrapping wlxmlNode
[fnpeditor.git] / modules / nodeBreadCrumbs / nodeBreadCrumbs.js
index 4a787f4..cefe7b4 100644 (file)
@@ -12,31 +12,39 @@ return function(sandbox) {
     var view = {\r
         dom: $('<div>' + template({node:null, parents: null}) + '</div>'),\r
         setup: function() {\r
+            var view = this;\r
             this.dom.on('mouseenter', 'a', function(e) {\r
                 var target = $(e.target);\r
-                sandbox.publish('nodeHighlighted', target.attr('data-id'));\r
+                sandbox.publish('nodeHighlighted', view.nodes[target.attr('data-id')]);\r
             });\r
             this.dom.on('mouseleave', 'a', function(e) {\r
                 var target = $(e.target);\r
-                sandbox.publish('nodeDimmed', target.attr('data-id'));\r
+                sandbox.publish('nodeDimmed', view.nodes[target.attr('data-id')]);\r
             });\r
             this.dom.on('click', 'a', function(e) {\r
                 e.preventDefault();\r
                 var target = $(e.target);\r
-                sandbox.publish('nodeSelected', target.attr('data-id'));\r
+                sandbox.publish('nodeSelected', view.nodes[target.attr('data-id')]);\r
             });\r
         },\r
         \r
         setNode: function(node) {\r
             this.dom.empty();\r
-            this.dom.html(template({node: node, parents: node.parents('[wlxml-tag]')}));\r
+            var nodes = this.nodes = {};\r
+            this.nodes[node.id] = node;\r
+            var parents = node.parents();\r
+            parents.each(function() {\r
+                var parent = this;\r
+                nodes[parent.id] = parent;\r
+            });\r
+            this.dom.html(template({node: node, parents: parents}));\r
         },\r
         \r
-        highlightNode: function(id) {\r
-            this.dom.find('a[data-id="'+id+'"]').addClass('rng-common-hoveredNode');\r
+        highlightNode: function(node) {\r
+            this.dom.find('a[data-id="'+node.id+'"]').addClass('rng-common-hoveredNode');\r
         },\r
-        dimNode: function(id) {\r
-            this.dom.find('a[data-id="' +id+'"]').removeClass('rng-common-hoveredNode');\r
+        dimNode: function(node) {\r
+            this.dom.find('a[data-id="'+node.id+'"]').removeClass('rng-common-hoveredNode');\r
         }\r
     }\r
     \r