From fdeed8051c3af538d28ca3bc599121cea483c22c Mon Sep 17 00:00:00 2001
From: Valerio Virgillito
Date: Thu, 22 Mar 2012 15:47:56 -0700
Subject: Squashed commit of the following GL integration

Signed-off-by: Valerio Virgillito <valerio@motorola.com>
---
 .../ui/tree-basic/treeItem.reel/treeItem.js        | 35 ++++++++++++++++++++--
 1 file changed, 32 insertions(+), 3 deletions(-)

(limited to 'js/components/ui/tree-basic')

diff --git a/js/components/ui/tree-basic/treeItem.reel/treeItem.js b/js/components/ui/tree-basic/treeItem.reel/treeItem.js
index a67dad43..13e278e9 100755
--- a/js/components/ui/tree-basic/treeItem.reel/treeItem.js
+++ b/js/components/ui/tree-basic/treeItem.reel/treeItem.js
@@ -107,8 +107,8 @@ exports.TreeItem = Montage.create(Component, {
             //icon or text click sends selection event
             var contentEls = this.element.querySelectorAll(".atreeItemContent");
             for(var i=0;i<contentEls.length;i++){
-                contentEls[i].addEventListener("click", function(evt){that.handleTreeItemContentClick(evt);}, false);
-                contentEls[i].addEventListener("dblclick", function(evt){that.handleTreeItemContentDblclick(evt);}, false);
+                contentEls[i].addEventListener("click", function(evt){that.handleTreeItemContentClick(evt);}, true);
+                contentEls[i].addEventListener("dblclick", function(evt){that.handleTreeItemContentDblclick(evt);}, true);
             }
 
             this.element.addEventListener("mouseover", function(evt){that.handleTreeItemMouseover(evt);}, false);
@@ -123,7 +123,7 @@ exports.TreeItem = Montage.create(Component, {
             if(this.treeItemData.modifiedDate){this.metadata = this.metadata + "<br />" + "Modified date: "+ this.formatTimestamp(this.treeItemData.modifiedDate);}
 
             if((this.treeItemData.type === "directory") && (this.expandAfterDraw === true)){
-                this.toggleContent(this.treeArrow);
+                this.expand(this.treeArrow);
             }
             if(this.treeItemData.uri === this.highlightedUri){
                 this.itemName.classList.add("selected");
@@ -171,6 +171,35 @@ exports.TreeItem = Montage.create(Component, {
         }
     },
 
+    expand:{
+        writable:false,
+        enumerable:true,
+        value:function(el){
+            //if children already drawn then just hide/show
+            if(this.element.getElementsByTagName("ul").length > 0){
+                var theParent = this.element.getElementsByTagName("ul")[0].parentNode;
+                if(theParent.classList.contains("hideTree")){//collapsed
+                    theParent.classList.remove("hideTree");//expand
+                    el.innerHTML = "&#9660;";
+                }
+            }
+            //else send event to draw the children
+            else{
+                var treeClickEvent = document.createEvent("Events");
+                treeClickEvent.initEvent("drawTree", false, false);
+                treeClickEvent.uri = this.treeItemData.uri;
+                treeClickEvent.uriType = this.treeItemData.type;
+                var divEl = document.createElement("div");
+                this.element.appendChild(divEl);
+                treeClickEvent.subTreeContainer = divEl;
+                this.element.dispatchEvent(treeClickEvent);
+
+                el.innerHTML = "&#9660;";
+            }
+        }
+    },
+
+
     /**
      * Event Listeners
      */
-- 
cgit v1.2.3