1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
var ExampleData = {};
ExampleData.example_data = [
{
name: 'Saurischia',
id: 1,
children: [
{name: 'Herrerasaurians', id: 2},
{
name: 'Theropods',
id: 3,
children: [
{name: 'Coelophysoids', id: 4},
{name: 'Ceratosaurians', id: 5},
{name: 'Spinosauroids', id: 6},
{name: 'Carnosaurians', id: 7},
{
name: 'Coelurosaurians',
id: 8,
children: [
{name: 'Tyrannosauroids', id: 9},
{name: 'Ornithomimosaurians', id: 10},
{name: 'Therizinosauroids', id: 11},
{name: 'Oviraptorosaurians', id: 12},
{name: 'Dromaeosaurids', id: 13},
{name: 'Troodontids', id: 14},
{name: 'Avialans', id: 15}
]
}
]
},
{
name: 'Sauropodomorphs',
id: 16,
children: [
{name: 'Prosauropods', id: 17},
{
name: 'Sauropods',
id: 18,
children: [
{name: 'Diplodocoids', id: 19},
{
name: 'Macronarians',
id: 20,
children: [
{name: 'Brachiosaurids', id: 21},
{name: 'Titanosaurians', id: 22}
]
}
]
}
]
}
]
},
{
name: 'Ornithischians',
id: 23,
children: [
{name: 'Heterodontosaurids', id: 24},
{
name: 'Thyreophorans',
id: 25,
children: [
{name: 'Ankylosaurians', id: 26},
{name: 'Stegosaurians', id: 27}
]
},
{
name: 'Ornithopods',
id: 28,
children: [
{name: 'Hadrosaurids', id: 29}
]
},
{name: 'Pachycephalosaurians', id: 30},
{name: 'Ceratopsians', id: 31}
]
}
];
ExampleData.getFirstLevelData = function(nodes) {
if (! nodes) {
nodes = ExampleData.example_data;
}
var data = [];
$.each(nodes, function() {
var node = {
name: this.name,
id: this.id
};
if (this.children) {
node.load_on_demand = true;
}
data.push(node);
});
return data;
}
ExampleData.getChildrenOfNode = function(node_id) {
var result = null;
function iterate(nodes) {
$.each(nodes, function() {
if (result) {
return;
}
else {
if (this.id == node_id) {
result = this;
}
if (this.children) {
iterate(this.children);
}
}
});
}
iterate(ExampleData.example_data);
return ExampleData.getFirstLevelData(result.children);
}
|