CodeThatTree - Run-time features and unlimited depth Example

CodeThatTree - Run-time features and unlimited depth Example

This tree loads in run-time (control : treeDef.loadtype=0) as same as definition creates, and doesn't save its state in cookie (control : treeDef.savestate=0)
Here is current info about tree, node count increases while loading.
Each property id for this tree is 'id' + 'index' of node in tree.

Additional runtime functions
var text = 'Item';
var CTp = CTree.prototype;
var CT_Menu = {};

//redefine method initFolder for this example for creates each level of tree in run-time
//if your definition is completed you have not use this code
	CTp.initFolder = function(node_id){
		 var t = this, node = t.getNode(node_id), n = t.getNode(node_id + "_more"), HTML, c;
		 if (Undef(node) || Undef(n)) return;
		 if (Def(n)) {n.parent = -1; n._id = "";}; //delete temporary node that will init
		
		//here you  make definiton in runtime				
		node.def = mkRndLevel();
		
		 //inherit styles : parent + current node
		 t.initNode(node, node.def, node.style, null); //init folder

		 c = node.getChildren();
		 for (var i=0; i < c.length; i++){
		 	if (c[i].type && c[i].state) c[i].state=0; //t.initFolder(c[i]._id);
		 };
		node.paintChildren();
	};

//make Random level for tree
function mkRndLevel(){
	var r = Math.round(Math.random()*10)+1, b = Math.round(Math.random()*3)+1, i, j, def = {};	
	def.items = new Array();
	for (i = 0; i < r; i++){
		def.items[i] = {
			"text": text + ' ' + i + '/' + r,
			//remember for ie you need delay to put right values into global variable
			//it depends on order of call handlers
			"action" : {"js": "window.setTimeout('treeInfo()', 50)"}
		};		
		//this node will be folder
		if (i < b){
			def.items[i].menu = {}; 
		};
	};
	return def.items;
};

//CT_Tree global object (Current active tree)
//CT_Tree.curr - current node of tree
function treeInfo(text){
	document.forms['data'].info.value = 'Current node is ' + CT_Tree.curr.text
	+ '\nNode index is ' + CT_Tree.curr.id
	+ '\nNode id is ' +  CT_Tree.curr._id
	+  '\nThis is ' + ((CT_Tree.curr.type)?  ((CT_Tree.curr.state)?' opened ': 'closed ') + 'folder':'node') 
	+  "\nNode count: " + CT_Tree.nodes.length;	
};

//r - user variable that reference to tree (tree_unlimit.html)	
function check(id){
	var s = r.getState(id), m = 'No such node ' + id +  ' in tree';
	if (s) m = 'Node is visible'; 
	if (!s && s != null)  m = 'Node is hidden';
	alert(m);
};

var TreeDef = {
	"loadtype":0,
	"position":{absolute:false, pos:[10,10]},
	"savestate":  0,
   	"style":{	
		'imgitem' : "img/ats.gif",
		'imgdir' : "img/atc.gif",
		'imgdiropen' : "img/ato.gif",
		'bgcolor' : 'white',
		'bgcolorcurr' : 'red',
		'bgcoloropen' : 'pink',
		'size':[100, 18]
	},
	"styleover":{
		'bgcolor' : 'lightblue',
		'bgcoloropen' : 'gray',
		'bgcolorcurr':'yellow'
	}
};

//init first level
TreeDef.items = mkRndLevel();

[ Home ]  [ Forum ]  [ Contacts ]  [ Site Map ]  [ News ]  [ Links ]  [ Sales & Prices ]  [ Downloads ]

[ Go Top ]

© CodeThat.com, 2003-2008
Design by XTLabs, Inc.