From ef032412216d437ce1c7dfc9050ab41adf0594c0 Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Mon, 13 Feb 2012 10:28:44 -0800
Subject: Tree Components - Change the way delegate methods are called

---
 .../treeview/ninja-leaf.reel/ninja-leaf.js         | 43 ++++++++++++++++++----
 1 file changed, 36 insertions(+), 7 deletions(-)

(limited to 'js/components/treeview/ninja-leaf.reel/ninja-leaf.js')

diff --git a/js/components/treeview/ninja-leaf.reel/ninja-leaf.js b/js/components/treeview/ninja-leaf.reel/ninja-leaf.js
index bd566b26..749df3cd 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
 </copyright> */
 
 var Montage   = require("montage/core/core").Montage,
-    Component = require("montage/ui/component").Component;
     TreeNode = require("js/components/treeview/tree-node").TreeNode;
 
 exports.Leaf = Montage.create(TreeNode, {
@@ -14,19 +13,39 @@ exports.Leaf = Montage.create(TreeNode, {
     },
     templateDidLoad : {
         value: function() {
-            this.needsDraw = true;
+            var event = this.treeView.activationEvent;
+
+            ///// Re-set the activation event
+            if(event && event !== this.activationEvent) {
+                this.delegateEventMap[event] = this.delegateEventMap[this.activationEvent];
+                delete this.delegateEventMap[this.activationEvent];
+                this.activationEvent = this.treeView.activationEvent;
+            }
         }
     },
     prepareForDraw: {
         value : function() {
-            this.activationEvent = this.activationEvent || 'click';
-            this.label._element.addEventListener(this.activationEvent, this.handleNodeActivation.bind(this), false);
+            var el = this.label._element;
+
+            Object.keys(this.delegateEventMap).forEach(function(event) {
+                el.addEventListener(event, this, false);
+            }, this);
+
         }
     },
-    handleNodeActivation: {
+    handleEvent : {
         value: function(e) {
-            console.log(this.sourceObject);
-            this.treeView.contentController.delegate.applyPresetSelection(this.sourceObject);
+            var delegateMethod = this.delegateEventMap[e._event.type];
+            this.callDelegateMethod(delegateMethod);
+        }
+    },
+    callDelegateMethod : {
+        value: function(methodName) {
+            console.log("Delegate method name: ", methodName);
+            var delegate = this.treeView.contentController.delegate;
+            if(delegate && typeof delegate[methodName] === 'function') {
+                delegate[methodName](this.sourceObject);
+            }
         }
     },
     draw : {
@@ -35,6 +54,16 @@ exports.Leaf = Montage.create(TreeNode, {
                 this._labelText = this.sourceObject[this.labelKey];
             }
         }
+    },
+    activationEvent : {
+        value : 'click'
+    },
+    delegateEventMap : {
+        value: {
+            'click'     : 'handleNodeActivation',
+            'dragstart' : 'handleDragStart',
+            'dragend'   : 'handleDragEnd'
+        }
     }
 
 
-- 
cgit v1.2.3


From 85afed8ed707ce20cd28c3139680dfef6fd4b23d Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Mon, 13 Feb 2012 11:42:09 -0800
Subject: Ninja leaf - remove console lot

---
 js/components/treeview/ninja-leaf.reel/ninja-leaf.js | 1 -
 1 file changed, 1 deletion(-)

(limited to 'js/components/treeview/ninja-leaf.reel/ninja-leaf.js')

diff --git a/js/components/treeview/ninja-leaf.reel/ninja-leaf.js b/js/components/treeview/ninja-leaf.reel/ninja-leaf.js
index 749df3cd..0b7a171e 100644
--- a/js/components/treeview/ninja-leaf.reel/ninja-leaf.js
+++ b/js/components/treeview/ninja-leaf.reel/ninja-leaf.js
@@ -41,7 +41,6 @@ exports.Leaf = Montage.create(TreeNode, {
     },
     callDelegateMethod : {
         value: function(methodName) {
-            console.log("Delegate method name: ", methodName);
             var delegate = this.treeView.contentController.delegate;
             if(delegate && typeof delegate[methodName] === 'function') {
                 delegate[methodName](this.sourceObject);
-- 
cgit v1.2.3


From df898049b2990f456a305eb18434b887468225cf Mon Sep 17 00:00:00 2001
From: Valerio Virgillito
Date: Tue, 14 Feb 2012 11:13:32 -0800
Subject: small changes to the tree component to allow events to be passed and
 add a double click handler

Signed-off-by: Valerio Virgillito <valerio@motorola.com>
---
 js/components/treeview/ninja-leaf.reel/ninja-leaf.js | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

(limited to 'js/components/treeview/ninja-leaf.reel/ninja-leaf.js')

diff --git a/js/components/treeview/ninja-leaf.reel/ninja-leaf.js b/js/components/treeview/ninja-leaf.reel/ninja-leaf.js
index 0b7a171e..c6416693 100644
--- a/js/components/treeview/ninja-leaf.reel/ninja-leaf.js
+++ b/js/components/treeview/ninja-leaf.reel/ninja-leaf.js
@@ -36,14 +36,14 @@ exports.Leaf = Montage.create(TreeNode, {
     handleEvent : {
         value: function(e) {
             var delegateMethod = this.delegateEventMap[e._event.type];
-            this.callDelegateMethod(delegateMethod);
+            this.callDelegateMethod(delegateMethod, e);
         }
     },
     callDelegateMethod : {
-        value: function(methodName) {
+        value: function(methodName, evt) {
             var delegate = this.treeView.contentController.delegate;
             if(delegate && typeof delegate[methodName] === 'function') {
-                delegate[methodName](this.sourceObject);
+                delegate[methodName](this.sourceObject, evt);
             }
         }
     },
@@ -60,6 +60,7 @@ exports.Leaf = Montage.create(TreeNode, {
     delegateEventMap : {
         value: {
             'click'     : 'handleNodeActivation',
+            'dblclick'  : 'handleDblclick',
             'dragstart' : 'handleDragStart',
             'dragend'   : 'handleDragEnd'
         }
-- 
cgit v1.2.3