JavaScript
google.load('visualization', '1', {
packages: ['table']
});
google.setOnLoadCallback(drawTable);
function drawTable() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'id');
data.addColumn('string', 'parentId');
data.addColumn('boolean', 'visible');
data.addColumn('number', 'level');
data.addColumn('string', 'Name');
data.addColumn('number', 'Value');
data.addRows([
['1', null, true, 1, 'Foo', 10],
['1.1', '1', false, 2, 'Foo 1', 2],
['1.1.1', '1.1', false, 3, 'Foo 1a', 2],
['1.1.2', '1.1', false, 3, 'Foo 1b', 2],
['1.2', '1', false, 2, 'Foo 2', 3],
['1.3', '1', false, 2, 'Foo 3', 5],
['1.3.1', '1.3', false, 3, 'Foo 3a', 1],
['1.3.2', '1.3', false, 3, 'Foo 3b', 4],
['1.3.1', '1.3', false, 3, 'Foo 3a', 1],
['1.3.2', '1.3', false, 3, 'Foo 3b', 4],
['1.3.1', '1.3', false, 3, 'Foo 3a', 1],
['1.3.2', '1.3', false, 3, 'Foo 3b', 4],
['1.3.1', '1.3', false, 3, 'Foo 3a', 1],
['1.3.2', '1.3', false, 3, 'Foo 3b', 4],
['1.3.1', '1.3', false, 3, 'Foo 3a', 1],
['1.3.2', '1.3', false, 3, 'Foo 3b', 4],
['1.3.1', '1.3', false, 3, 'Foo 3a', 1],
['1.3.2', '1.3', false, 3, 'Foo 3b', 4],
['1.3.1', '1.3', false, 3, 'Foo 3a', 1],
['1.3.2', '1.3', false, 3, 'Foo 3b', 4],
['1.3.1', '1.3', false, 3, 'Foo 3a', 1],
['1.3.2', '1.3', false, 3, 'Foo 3b', 4],
['1.3.1', '1.3', false, 3, 'Foo 3a', 1],
['1.3.2', '1.3', false, 3, 'Foo 3b', 4],
['1.3.1', '1.3', false, 3, 'Foo 3a', 1],
['1.3.2', '1.3', false, 3, 'Foo 3b', 4],
['2', null, true, 1, 'Bar', 14],
['2.1', '2', false, 2, 'Bar 1', 6],
['2.2', '2', false, 2, 'Bar 2', 7],
['2.2.1', '2.2', false, 3, 'Bar 2a', 3],
['2.2.2', '2.2', false, 3, 'Bar 2b', 2],
...