GUI Components JavaScript DHTML




Yahoo! UI Library - Tree Control


    .emLabel, .emLabel:link, .emLabel:visited, .emLabel:hover { 
        font-weight: bold;
    }


  



  

Tree Control











/* logger default styles */
/* font size is controlled here: default 77% */
#yui-log {position:absolute;top:1em;right:1em;font-size:77%;text-align:left;}
/* width is controlled here: default 31em */
.yui-log {background-color:#AAA;border:1px solid black;font-family:monospace;z-index:9000;}
.yui-log p {margin:1px;padding:.1em;}
.yui-log button {font-family:monospace;}
.yui-log .yui-log-hd {padding:.5em;background-color:#575757;color:#FFF;}
/* height is controlled here: default 20em*/
.yui-log .yui-log-bd {width:100%;height:20em;background-color:#FFF;border:1px solid gray;overflow:auto;}
.yui-log .yui-log-ft {margin-top:.5em;margin-bottom:1em;}
.yui-log .yui-log-ft .yui-log-categoryfilters {}
.yui-log .yui-log-ft .yui-log-sourcefilters {width:100%;border-top:1px solid #575757;margin-top:.75em;padding-top:.75em;}
.yui-log .yui-log-btns {position:relative;float:right;bottom:.25em;}
.yui-log .yui-log-filtergrp {margin-right:.5em;}
.yui-log .info {background-color:#A7CC25;} /* A7CC25 green */
.yui-log .warn {background-color:#F58516;} /* F58516 orange */
.yui-log .error {background-color:#E32F0B;} /* E32F0B red */
.yui-log .time {background-color:#A6C9D7;} /* A6C9D7 blue */
.yui-log .window {background-color:#F2E886;} /* F2E886 tan */



  
    
      


      
      


      

 


    

    


Examples


    
    YAHOO.example.logApp = function() {
        var divId;
        return {
            init: function(p_divId, p_toggleElId, p_clearElId) {
                divId = p_divId
            },
            onload: function() {
                if (YAHOO.widget.Logger) {
                    new YAHOO.widget.LogReader( "logDiv", { height: "400px" } );
                }
            }
        };
    } (); 
    YAHOO.util.Event.on(window, "load", YAHOO.example.logApp.onload);
    
    

    


  
    
  
    

Menu TreeView Widget


    


    The presentation differences between the default treeview widget and this
    one were accomplished by modifying the css styles in tree.css.  The
    functionality is the same, except the menu does not allow multiple siblings
    to be expanded at one time (when you expand a node, all of its expanded 
    siblings are collapsed.
    


    
    Expand all
    Collapse all
    
    
  
  
  
  
      
        
          

 


        
      
    
  


  var tree;
  var nodes = new Array();
  var nodeIndex = 0;
  
  function treeInit() {
    buildRandomTextNodeTree();
  }
  function buildRandomTextNodeTree() {
    tree = new YAHOO.widget.TreeView("treeDiv1");
    tree.onExpand = function(node) {
      // alert(node.index + " was expanded"); 
    }
    tree.onCollapse = function(node) {
      // alert(node.index + " was collapsed"); 
    }
    for (var i = 0; i < Math.floor((Math.random()*4) + 3); i++) {
      var thisId = nodeIndex++;
      var thisLabel = "menu" + i;
      // nodes[thisId] = new YAHOO.widget.TextNode({ label: thisLabel }, tree.getRoot(), false);
      // nodes[thisId] = new YAHOO.widget.MenuNode({label:thisLabel, href:"http://asdf"}, tree.getRoot(), false);
      nodes[thisId] = new YAHOO.widget.MenuNode(thisLabel, tree.getRoot(), false);
      var p1 = nodes[thisId];
      var l1 = thisLabel;
      for (var j = 0; j < Math.floor(Math.random()*6) + 1; j++) { 
        thisId = nodeIndex++;
        thisLabel = l1 + "-" + j;
        // nodes[thisId] = new YAHOO.widget.TextNode({ label: thisLabel }, p1, true);
        nodes[thisId] = new YAHOO.widget.MenuNode(thisLabel, p1, false);
        var p2 = nodes[thisId];
        var l2 = thisLabel;
        for (var k =0; k < Math.floor(Math.random()*6) + 1; k++) { 
          thisId = nodeIndex++;
          thisLabel = l2 + "-" + k;
                    /*
          var data = {
              id: thisId,
              label: thisLabel, 
              href: "javascript:onLabelClick(" + thisId + ")" 
            }
*/
          var data = {
              label: thisLabel, 
                            href: "javascript:void(window.open('http://www.yahoo.com'))" 
            }
          nodes[thisId] = new YAHOO.widget.TextNode(data, p2, false);
                    nodes[thisId].labelStyle = "emLabel";
          // nodes[thisId] = new YAHOO.widget.MenuNode(thisLabel, p2, false);
        }
      }
    }
    // nodes[0] = new YAHOO.widget.TextNode(tree.getRoot(), false, "label-0");
    tree.draw();
  }
  var selectedId = null;
  function onLabelClick(id) {
    var node = tree.getNodeByProperty("id", id);
    // alert(node.label);
    var el = node.getLabelEl()
        YAHOO.log("pos: " + YAHOO.util.Dom.getXY(el));
        el.style.backgroundColor = "#c5dbfc";
    
    if (selectedId != null) {
      node = tree.getNodeByProperty("id", selectedId);
      node.getLabelEl().style.backgroundColor = "white";
    }
    selectedId = id;
  }

  

 
           
         
  
yui.zip( 3,714 k)