aboutsummaryrefslogtreecommitdiff
path: root/js/components/treeview
diff options
context:
space:
mode:
Diffstat (limited to 'js/components/treeview')
-rw-r--r--js/components/treeview/ninja-branch.reel/ninja-branch.css1
-rw-r--r--js/components/treeview/ninja-branch.reel/ninja-branch.html3
-rw-r--r--js/components/treeview/ninja-branch.reel/ninja-branch.js1
-rw-r--r--js/components/treeview/ninja-leaf.reel/ninja-leaf.css1
-rw-r--r--js/components/treeview/ninja-leaf.reel/ninja-leaf.html2
-rw-r--r--js/components/treeview/ninja-leaf.reel/ninja-leaf.js44
-rw-r--r--js/components/treeview/tree-node.js2
7 files changed, 42 insertions, 12 deletions
diff --git a/js/components/treeview/ninja-branch.reel/ninja-branch.css b/js/components/treeview/ninja-branch.reel/ninja-branch.css
index d8c212e8..340233c7 100644
--- a/js/components/treeview/ninja-branch.reel/ninja-branch.css
+++ b/js/components/treeview/ninja-branch.reel/ninja-branch.css
@@ -26,7 +26,6 @@
26 cursor: pointer; 26 cursor: pointer;
27 font-weight: bold; 27 font-weight: bold;
28 padding: 3px 0 4px; 28 padding: 3px 0 4px;
29 text-shadow: 1px 1px 0 #000;
30} 29}
31 30
32/* First Level */ 31/* First Level */
diff --git a/js/components/treeview/ninja-branch.reel/ninja-branch.html b/js/components/treeview/ninja-branch.reel/ninja-branch.html
index 4d557a94..13f1c575 100644
--- a/js/components/treeview/ninja-branch.reel/ninja-branch.html
+++ b/js/components/treeview/ninja-branch.reel/ninja-branch.html
@@ -110,7 +110,8 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
110 "name": "Repetition", 110 "name": "Repetition",
111 "properties": { 111 "properties": {
112 "element": { "#": "branchList" }, 112 "element": { "#": "branchList" },
113 "contentController": {"@": "arrayController" } 113 "contentController": {"@": "arrayController" },
114 "selectionEnabled": true
114 } 115 }
115 }, 116 },
116 117
diff --git a/js/components/treeview/ninja-branch.reel/ninja-branch.js b/js/components/treeview/ninja-branch.reel/ninja-branch.js
index 6b9ebb10..0d1a1d0e 100644
--- a/js/components/treeview/ninja-branch.reel/ninja-branch.js
+++ b/js/components/treeview/ninja-branch.reel/ninja-branch.js
@@ -5,7 +5,6 @@
5 </copyright> */ 5 </copyright> */
6 6
7var Montage = require("montage").Montage, 7var Montage = require("montage").Montage,
8 Component = require("montage/ui/component").Component,
9 TreeNode = require("js/components/treeview/tree-node").TreeNode; 8 TreeNode = require("js/components/treeview/tree-node").TreeNode;
10 9
11var Branch = exports.Branch = Montage.create(TreeNode, { 10var Branch = exports.Branch = Montage.create(TreeNode, {
diff --git a/js/components/treeview/ninja-leaf.reel/ninja-leaf.css b/js/components/treeview/ninja-leaf.reel/ninja-leaf.css
index 085b11e0..fedc1d9d 100644
--- a/js/components/treeview/ninja-leaf.reel/ninja-leaf.css
+++ b/js/components/treeview/ninja-leaf.reel/ninja-leaf.css
@@ -19,7 +19,6 @@
19/* Second level */ 19/* Second level */
20.branch .branch .leaf-label { 20.branch .branch .leaf-label {
21 background-position: 25px center; 21 background-position: 25px center;
22 box-shadow: 0 3px 4px -4px rgba(0,0,0,0.2);
23 color: #FFF; 22 color: #FFF;
24 padding-left: 45px; 23 padding-left: 45px;
25} 24}
diff --git a/js/components/treeview/ninja-leaf.reel/ninja-leaf.html b/js/components/treeview/ninja-leaf.reel/ninja-leaf.html
index bd8e8acd..310274bc 100644
--- a/js/components/treeview/ninja-leaf.reel/ninja-leaf.html
+++ b/js/components/treeview/ninja-leaf.reel/ninja-leaf.html
@@ -37,7 +37,7 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
37</head> 37</head>
38<body> 38<body>
39 <div id="leaf" class="leaf"> 39 <div id="leaf" class="leaf">
40 <div id="label" class="leaf-label"></div> 40 <div id="label" class="leaf-label" draggable="true"></div>
41 </div> 41 </div>
42</body> 42</body>
43</html> \ No newline at end of file 43</html> \ No newline at end of file
diff --git a/js/components/treeview/ninja-leaf.reel/ninja-leaf.js b/js/components/treeview/ninja-leaf.reel/ninja-leaf.js
index bd566b26..1bfe66a4 100644
--- a/js/components/treeview/ninja-leaf.reel/ninja-leaf.js
+++ b/js/components/treeview/ninja-leaf.reel/ninja-leaf.js
@@ -5,7 +5,6 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
5</copyright> */ 5</copyright> */
6 6
7var Montage = require("montage/core/core").Montage, 7var Montage = require("montage/core/core").Montage,
8 Component = require("montage/ui/component").Component;
9 TreeNode = require("js/components/treeview/tree-node").TreeNode; 8 TreeNode = require("js/components/treeview/tree-node").TreeNode;
10 9
11exports.Leaf = Montage.create(TreeNode, { 10exports.Leaf = Montage.create(TreeNode, {
@@ -14,19 +13,38 @@ exports.Leaf = Montage.create(TreeNode, {
14 }, 13 },
15 templateDidLoad : { 14 templateDidLoad : {
16 value: function() { 15 value: function() {
17 this.needsDraw = true; 16 var event = this.treeView.activationEvent;
17
18 ///// Re-set the activation event
19 if(event && event !== this.activationEvent) {
20 this.delegateEventMap[event] = this.delegateEventMap[this.activationEvent];
21 delete this.delegateEventMap[this.activationEvent];
22 this.activationEvent = this.treeView.activationEvent;
23 }
18 } 24 }
19 }, 25 },
20 prepareForDraw: { 26 prepareForDraw: {
21 value : function() { 27 value : function() {
22 this.activationEvent = this.activationEvent || 'click'; 28 var el = this.label._element;
23 this.label._element.addEventListener(this.activationEvent, this.handleNodeActivation.bind(this), false); 29
30 Object.keys(this.delegateEventMap).forEach(function(event) {
31 el.addEventListener(event, this, false);
32 }, this);
33
24 } 34 }
25 }, 35 },
26 handleNodeActivation: { 36 handleEvent : {
27 value: function(e) { 37 value: function(e) {
28 console.log(this.sourceObject); 38 var delegateMethod = this.delegateEventMap[e._event.type];
29 this.treeView.contentController.delegate.applyPresetSelection(this.sourceObject); 39 this.callDelegateMethod(delegateMethod, e);
40 }
41 },
42 callDelegateMethod : {
43 value: function(methodName, evt) {
44 var delegate = this.treeView.contentController.delegate;
45 if(delegate && typeof delegate[methodName] === 'function') {
46 delegate[methodName](this.sourceObject, evt);
47 }
30 } 48 }
31 }, 49 },
32 draw : { 50 draw : {
@@ -35,6 +53,18 @@ exports.Leaf = Montage.create(TreeNode, {
35 this._labelText = this.sourceObject[this.labelKey]; 53 this._labelText = this.sourceObject[this.labelKey];
36 } 54 }
37 } 55 }
56 },
57 activationEvent : {
58 value : 'click'
59 },
60 delegateEventMap : {
61 value: {
62 'click' : 'handleNodeActivation',
63 'dblclick' : 'handleDblclick',
64 'dragstart' : 'handleDragStart',
65 'dragend' : 'handleDragEnd'
66 },
67 distinct: true
38 } 68 }
39 69
40 70
diff --git a/js/components/treeview/tree-node.js b/js/components/treeview/tree-node.js
index 689fc233..d7b864b5 100644
--- a/js/components/treeview/tree-node.js
+++ b/js/components/treeview/tree-node.js
@@ -44,7 +44,9 @@ exports.TreeNode = Montage.create(Component, {
44 if(!object) { 44 if(!object) {
45 return; 45 return;
46 } 46 }
47
47 if(object[this.branchKey]) { 48 if(object[this.branchKey]) {
49 this.childNodes.length = 0;
48 object[this.branchKey].forEach(function(node) { 50 object[this.branchKey].forEach(function(node) {
49 this.childNodes.push(node); 51 this.childNodes.push(node);
50 }, this); 52 }, this);