#!/usr/bin/env kjscmd function buildViewNode( node, parent ) { var l = new TQLabel( parent, 'node' ); l.text = '
' + '' + '' + '' + '
' + node.text + '
' + node.text + '
' + node.text + '
'; return l; } function buildView( node, parent ) { // No children if ( node.children.length == 0 ) { return buildViewNode( node, parent ); } // Create container node var vbox = new TQVBox( parent, 'subtree' ); vbox.margin = 8; vbox.spacing = 6; var vnode = buildViewNode( node, vbox ); // Create children var hbox = new TQHBox( vbox, 'child_nodes' ); hbox.spacing = 6; for ( var i = 0 ; i < node.children.length ; i++ ) { buildView( node.children[i], hbox ); } return vbox; } function buildNode( ttl ) { var node = new Object(); node.text = ttl; node.children = []; return node; } // Create Tree Model var root = buildNode( 'Root' ); root.children = [ buildNode('One'), buildNode('Two'), buildNode('Three') ]; root.children[0].children = [ buildNode('One'), buildNode('Two') ]; root.children[0].children = [ buildNode('One'), buildNode('Two') ]; root.children[1].children = [ buildNode('One'), buildNode('Two') ]; root.children[1].children = [ buildNode('One'), buildNode('Two'), buildNode('Three') ]; root.children[2].children = [ buildNode('One') ]; root.children[2].children = [ buildNode('One'), buildNode('Two'), buildNode('Three') ]; // Create View var box = new TQVBox( 'tree_view' ); box.margin = 6; var view = buildView( root, box ); var spacer = new TQLabel( box ); box.show();