Dynatree - issue 204

by ham sheib

HTML

<script src="http://dynatree.googlecode.com/svn/trunk/src/jquery.dynatree.js"></script>
<link rel="stylesheet" href="http://wwwendt.de/tech/dynatree/src/skin-vista/ui.dynatree.css">
<script src="https://cdn.jsdelivr.net/jquery.dynatree/1.2.4/jquery.dynatree.js"></script>
<div id="tree"> </div>
<div id="info"></div>
 

<button id="btnAddCode">Add</button>

CSS

span.custom1 a { color: red; }
.custom1 span.dynatree-icon  /* custom icon */
{
    background-position: -48px -48px;
}

JavaScript

$(function(){
    $("#tree").dynatree({
      onActivate: function(node) {
        $("#info").text("You activated " + node);
      },
      children: [
        {title: "Item 1"},
        {title: "Folder 2", isFolder: true,
          children: [
            {title: "Sub-item 2.1"},
            {title: "Sub-item 2.2"}
          ]
        },
        {title: "Item 3"}
      ],selectMode: 1,
			checkbox: true,
      onSelect: function(select, node) {
				// Display list of selected nodes
				var s = node.tree.getSelectedNodes().join(", ");
				selectedNode = node;
				 
			},
			 
			 
			onClick: function(node, event) {
				if( event.shiftKey ){
					editNode(node);
					return false;
				}
			},
			onDblClick: function(node, event) {
				editNode(node);
				return false;
			},
			onKeydown: function(node, event) {
				switch( event.which ) {
				case 113: // [F2]
					editNode(node);
					return false;
				case 13: // [enter]
					if( isMac ){
						editNode(node);
						return false;
					}
				}
			}
    });
    
     var nodeExists = false;
     var selectedNode = null;
		function validateForm(){
    if( selectedNode == null){
				alert("Please select node to add folder");
				return false;
			}
			if(selectedNode != null){
				nodeExists = findNodeByTitle(selectedNode,$("#newFolderName").val());
				return nodeExists;
			}
		}
    
     
    
    function findNodeByTitle(tree, title){
		    var match = true;
		    tree.visit(function(node){
		        if(node.data.title == title) {
		            //match = node.data.title;
		            alert("Folder : "+title +" already exists")
		            match = false;
		            return false;
		        }
		    }, true);
		    return match;
		}
    function removeNode(node){
       node.remove();
    }
    function editNode(node){
			var prevTitle = node.data.title,
				tree = node.tree;
        
			// Disable dynatree mouse- and key handling
			tree.$widget.unbind();
			// Replace node with...