Yahoo! UI Library - Tree Control 2 : Tree : GUI Components : JavaScript DHTML examples (example source code) Organized by topic

JavaScript DHTML
C++
PHP
JavaScript DHTML Home »  GUI Components   » [  Tree  ]   
 



Yahoo! UI Library - Tree Control 2

Please note that some example is only working under IE or Firefox.


<!doctype html public "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>

<head>
<title>Yahoo! UI Library - Tree Control</title>
<link rel="stylesheet" type="text/css" href="./examples/treeview/css/screen.css">
</head>
  
<body onload="treeInit()">

<link rel="stylesheet" type="text/css" href="./examples/treeview/css/check/tree.css">

<div id="pageTitle">
  <h3>Tree Control</h3>
</div>

<script type="text/javascript" src="./build/yahoo/yahoo.js" ></script>

<!-- The following are required for the logger -->
<script type="text/javascript" src="./build/event/event.js"></script>
<script type="text/javascript" src="./build/dom/dom.js"></script>
<script type="text/javascript" src="./build/logger/logger.js"></script>
<!-- End logger reqs -->

<script type="text/javascript" src="./build/treeview/treeview-debug.js" ></script>

<style type="text/css">

/* 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 */

</style>


<div id="container">
<img class="ylogo" src="img/logo.gif" alt="" />
  <div id="containerTop">
    <div id="header">
      <h1>
      
      </h1>
      <h4>&nbsp;</h4>
    </div>
    <div id="main">

<div id="rightbar">

<div id="rightBarPad">
<h3>Examples</h3>

<div id="linkage">
</div> 


    <script type="text/javascript">

    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);


    </script>

    <div id="logDiv"></div>

    
</div>

</div>


<script type="text/javascript" src="./examples/treeview/js/TaskNode.js"></script>

  <div id="content">
    <form name="mainForm" action="javscript:;">
  <div class="newsItem">
    <h3>Task List</h3>
    <p>
    The check boxes have three states:
    unchecked, partially checked (some sub-tasks are finished), checked (all sub-tasks complete)
    </p>

    <div id="expandcontractdiv">
    <a href="javascript:tree.expandAll()">Expand all</a>
    <a href="javascript:tree.collapseAll()">Collapse all</a>
    <a href="javascript:checkAll()">Check all</a>
    <a href="javascript:uncheckAll()">Uncheck all</a>
    </div>
    <div id="treeDiv1"></div>

  </div>
  </form>
  </div>
  
      <div id="footerContainer">
        <div id="footer">
          <p>&nbsp;</p>
        </div>
      </div>
    </div>
  </div>
</div>

<!--
<input type="button" id="showButton" />
-->

<script type="text/javascript">

  var tree;
  var nodes = new Array();
  var nodeIndex;
  
  function treeInit() {
    buildRandomTextNodeTree();
  }
  
  function buildRandomTextNodeTree() {
    tree = new YAHOO.widget.TreeView("treeDiv1");

    for (var i = 0; i < Math.floor((Math.random()*43); i++) {
      var tmpNode = new YAHOO.widget.TaskNode("task-" + i, tree.getRoot()false);
            tmpNode.onCheckClick = onCheckClick;
      buildRandomTextBranch(tmpNode);
    }
        
    tree.draw();
        // tree.checkClickEvent.subscribe(onCheckClick);
  }

  var callback = null;

  function buildRandomTextBranch(node) {
    if (node.depth < 5) {
      YAHOO.log("buildRandomTextBranch: " + node.index);
      for var i = 0; i < Math.floor(Math.random() 4; i++ ) {
        var tmpNode = new YAHOO.widget.TaskNode(node.label + "-" + i, node, false);
                tmpNode.onCheckClick = onCheckClick;
        buildRandomTextBranch(tmpNode);
      }
    else {
        // tmpNode = new YAHOO.widget.TaskNode(node.label + "-" + i, node, false, true);
        }
  }


    // function onCheckClick(eventType, args, tree) {
    //var node = args[0];
    function onCheckClick(eventType, args, tree) {
        var node = this;
        YAHOO.log(node.label + " check was clicked, new state: " 
                node.checkState);
    }

    function showTreeState() {
        var out = [];
        for (var i in tree._nodes) {
            var n = tree._nodes[i];
            if (n && "undefined" != typeof n.checkState) {
                out.push(n.data + ": " + n.checkState);
            }
        }

        alert(out.join("\n"));
    }

    function checkAll() {
        var topNodes = tree.getRoot().children;
        for(var i = 0; i <= topNodes.length; ++i) {
            topNodes[i].check();
        }
    }

    function uncheckAll() {
        var topNodes = tree.getRoot().children;
        for(var i = 0; i <= topNodes.length; ++i) {
            topNodes[i].uncheck();
        }
    }

    function showJSON() {
        alert(JSON.stringify(tree._nodes));
    }

    //YAHOO.util.Event.on("showButton", "click", showTreeState);
    // YAHOO.util.Event.on("showButton", "click", showJSON);

</script>

  </body>
</html>
 

           
       
Download: yui.zip   ( 3,714  K )  
Related examples in the same category
1.  Explorer based on treeHas Download File
2.  Yahoo! UI Library - Tree ControlHas Download File
3.  Tree ControlHas Download File
4.  Dynamic TreeView ExampleHas Download File
5.  Yahoo! UI Library - Tree Control 3Has Download File
6.  Yahoo! UI Library - Tree Control 4Has Download File
7.  Yahoo! UI Library - Tree Control 5Has Download File
8.  Build a tree in JavaScriptHas Download File
9.  Delete, insert items in a treeHas Download File
10.  Tree selection action handlerHas Download File
11.  Expand, Collapse, Close, Open selected Tree item and branch Has Download File
12.  Change Tree Node Color and IconHas Download File
13.  Checkbox tree node: checked, unchecked, get the checked itemsHas Download File
14.  Change tree expand and collapse iconsHas Download File
15.  Drag and Drop between treesHas Download File
16.  Build tree from xmlHas Download File
17.  Tree navigation barHas Download File
18.  Navigation Tree Has Download File
19.  Navigation Tree menu based on XML
20.  XML Tree
21.  Building Collapsible Trees
22.  Nano TreeHas Download File
23.  Tree which accepts drag and drop event in JavaScript (IE)Has Download File
24.  Simple Tree in JavascriptHas Download File
25.  Elegant simple tree
























Home| Contact Us
Copyright 2003 - 04 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.