mongo3 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. data/.bnignore +3 -0
  2. data/.bnsignore +16 -0
  3. data/.gitignore +1 -0
  4. data/HISTORY +2 -0
  5. data/README.rdoc +78 -0
  6. data/Rakefile +31 -0
  7. data/bin/mongo3 +29 -0
  8. data/config/mongo3.yml +33 -0
  9. data/lib/controllers/collections.rb +7 -0
  10. data/lib/controllers/databases.rb +7 -0
  11. data/lib/controllers/explore.rb +46 -0
  12. data/lib/helpers/crumb_helper.rb +46 -0
  13. data/lib/helpers/main_helper.rb +43 -0
  14. data/lib/main.rb +41 -0
  15. data/lib/mongo3/connection.rb +191 -0
  16. data/lib/mongo3/node.rb +80 -0
  17. data/lib/mongo3.rb +57 -0
  18. data/lib/public/images/c292199_a.jpg +0 -0
  19. data/lib/public/images/close.png +0 -0
  20. data/lib/public/images/close.psd +0 -0
  21. data/lib/public/images/cluster.png +0 -0
  22. data/lib/public/images/cluster.psd +0 -0
  23. data/lib/public/images/db.jpg +0 -0
  24. data/lib/public/images/db.png +0 -0
  25. data/lib/public/images/db.psd +0 -0
  26. data/lib/public/images/delete.png +0 -0
  27. data/lib/public/images/header.png +0 -0
  28. data/lib/public/images/header.psd +0 -0
  29. data/lib/public/images/li_select.png +0 -0
  30. data/lib/public/images/li_select.psd +0 -0
  31. data/lib/public/images/lock.png +0 -0
  32. data/lib/public/images/lock.psd +0 -0
  33. data/lib/public/images/mongo.png +0 -0
  34. data/lib/public/images/mongo.psd +0 -0
  35. data/lib/public/images/mongo3.png +0 -0
  36. data/lib/public/images/mongo3.psd +0 -0
  37. data/lib/public/images/mongo3_db.png +0 -0
  38. data/lib/public/images/mongo3_db.psd +0 -0
  39. data/lib/public/images/mongo_10.psd +0 -0
  40. data/lib/public/images/mongo_db.jpg +0 -0
  41. data/lib/public/images/mongo_db.png +0 -0
  42. data/lib/public/images/mongo_db.psd +0 -0
  43. data/lib/public/images/mongo_db_1.jpg +0 -0
  44. data/lib/public/images/mongo_db_2 +0 -0
  45. data/lib/public/images/mongo_db_4 +0 -0
  46. data/lib/public/images/monkey.jpg +0 -0
  47. data/lib/public/images/monkey.png +0 -0
  48. data/lib/public/images/monkey.psd +0 -0
  49. data/lib/public/images/monkey_1.jpg +8 -0
  50. data/lib/public/images/monkey_10.jpg +8 -0
  51. data/lib/public/javascripts/Jit/Examples/Hypertree/example1.html +57 -0
  52. data/lib/public/javascripts/Jit/Examples/Hypertree/example1.js +427 -0
  53. data/lib/public/javascripts/Jit/Examples/Hypertree/example2.html +58 -0
  54. data/lib/public/javascripts/Jit/Examples/Hypertree/example2.js +310 -0
  55. data/lib/public/javascripts/Jit/Examples/Hypertree/example3.html +199 -0
  56. data/lib/public/javascripts/Jit/Examples/Hypertree/example3.js +615 -0
  57. data/lib/public/javascripts/Jit/Examples/Other/example1.html +58 -0
  58. data/lib/public/javascripts/Jit/Examples/Other/example1.js +566 -0
  59. data/lib/public/javascripts/Jit/Examples/Other/example2.html +58 -0
  60. data/lib/public/javascripts/Jit/Examples/Other/example2.js +304 -0
  61. data/lib/public/javascripts/Jit/Examples/Other/example3.html +58 -0
  62. data/lib/public/javascripts/Jit/Examples/Other/example3.js +304 -0
  63. data/lib/public/javascripts/Jit/Examples/RGraph/example1.html +57 -0
  64. data/lib/public/javascripts/Jit/Examples/RGraph/example1.js +475 -0
  65. data/lib/public/javascripts/Jit/Examples/RGraph/example2.html +58 -0
  66. data/lib/public/javascripts/Jit/Examples/RGraph/example2.js +356 -0
  67. data/lib/public/javascripts/Jit/Examples/RGraph/example3.html +199 -0
  68. data/lib/public/javascripts/Jit/Examples/RGraph/example3.js +622 -0
  69. data/lib/public/javascripts/Jit/Examples/Spacetree/example1.html +91 -0
  70. data/lib/public/javascripts/Jit/Examples/Spacetree/example1.js +890 -0
  71. data/lib/public/javascripts/Jit/Examples/Spacetree/example2.html +90 -0
  72. data/lib/public/javascripts/Jit/Examples/Spacetree/example2.js +213 -0
  73. data/lib/public/javascripts/Jit/Examples/Spacetree/example3.html +75 -0
  74. data/lib/public/javascripts/Jit/Examples/Spacetree/example3.js +863 -0
  75. data/lib/public/javascripts/Jit/Examples/Treemap/example1.html +56 -0
  76. data/lib/public/javascripts/Jit/Examples/Treemap/example1.js +95 -0
  77. data/lib/public/javascripts/Jit/Examples/Treemap/example2.html +61 -0
  78. data/lib/public/javascripts/Jit/Examples/Treemap/example2.js +750 -0
  79. data/lib/public/javascripts/Jit/Examples/Treemap/example3.html +62 -0
  80. data/lib/public/javascripts/Jit/Examples/Treemap/example3.js +775 -0
  81. data/lib/public/javascripts/Jit/Examples/css/Hypertree.css +0 -0
  82. data/lib/public/javascripts/Jit/Examples/css/Other.css +8 -0
  83. data/lib/public/javascripts/Jit/Examples/css/RGraph.css +0 -0
  84. data/lib/public/javascripts/Jit/Examples/css/Spacetree.css +0 -0
  85. data/lib/public/javascripts/Jit/Examples/css/Treemap.css +78 -0
  86. data/lib/public/javascripts/Jit/Examples/css/base.css +106 -0
  87. data/lib/public/javascripts/Jit/Examples/css/col1.png +0 -0
  88. data/lib/public/javascripts/Jit/Examples/css/col2.png +0 -0
  89. data/lib/public/javascripts/Jit/Examples/css/gradient.png +0 -0
  90. data/lib/public/javascripts/Jit/Extras/excanvas.js +35 -0
  91. data/lib/public/javascripts/Jit/jit-yc.js +1 -0
  92. data/lib/public/javascripts/Jit/jit.js +9052 -0
  93. data/lib/public/javascripts/Jit-1.1.3.zip +0 -0
  94. data/lib/public/javascripts/application.js +28 -0
  95. data/lib/public/javascripts/jit.min.js +1 -0
  96. data/lib/public/javascripts/jquery.tools.min.js +38 -0
  97. data/lib/public/javascripts/jquery_min.js +19 -0
  98. data/lib/public/javascripts/jquery_ui_min.js +298 -0
  99. data/lib/public/stylesheets/mongo3.css +275 -0
  100. data/lib/utils.rb +3 -0
  101. data/lib/views/_cltn_info.erb +95 -0
  102. data/lib/views/_collection.erb +5 -0
  103. data/lib/views/_crumbs.erb +13 -0
  104. data/lib/views/_dump_array.erb +5 -0
  105. data/lib/views/_dump_hash.erb +14 -0
  106. data/lib/views/_info.erb +15 -0
  107. data/lib/views/center_js.erb +3 -0
  108. data/lib/views/cltn_show.erb +1 -0
  109. data/lib/views/collection.erb +44 -0
  110. data/lib/views/database.erb +37 -0
  111. data/lib/views/db_show.erb +1 -0
  112. data/lib/views/explore.erb +250 -0
  113. data/lib/views/landscape.erb +45 -0
  114. data/lib/views/layout.erb +28 -0
  115. data/lib/views/more_data_js.erb +3 -0
  116. data/lib/views/show_cltn.erb +1 -0
  117. data/lib/views/update_crumb_js.erb +1 -0
  118. data/spec/mongo3/node_spec.rb +84 -0
  119. data/spec/spec_helper.rb +8 -0
  120. data/tasks/bones.rake +20 -0
  121. data/tasks/gem.rake +201 -0
  122. data/tasks/git.rake +40 -0
  123. data/tasks/notes.rake +27 -0
  124. data/tasks/post_load.rake +32 -0
  125. data/tasks/rdoc.rake +56 -0
  126. data/tasks/rubyforge.rake +55 -0
  127. data/tasks/setup.rb +292 -0
  128. data/tasks/spec.rake +54 -0
  129. data/tasks/svn.rake +47 -0
  130. data/tasks/test.rake +40 -0
  131. data/tasks/zentest.rake +36 -0
  132. metadata +213 -0
@@ -0,0 +1,863 @@
1
+ var Log = {
2
+ elem: false,
3
+ write: function(text){
4
+ if (!this.elem)
5
+ this.elem = document.getElementById('log');
6
+ this.elem.innerHTML = text;
7
+ this.elem.style.left = (500 - this.elem.offsetWidth / 2) + 'px';
8
+ }
9
+ };
10
+
11
+ function addEvent(obj, type, fn) {
12
+ if (obj.addEventListener) obj.addEventListener(type, fn, false);
13
+ else obj.attachEvent('on' + type, fn);
14
+ };
15
+
16
+
17
+ function init(){
18
+ var infovis = document.getElementById('infovis');
19
+ var w = infovis.offsetWidth, h = infovis.offsetHeight;
20
+ //init data
21
+ var json = {
22
+ id: "node02",
23
+ name: "0.2",
24
+ data: {},
25
+ children: [{
26
+ id: "node13",
27
+ name: "1.3",
28
+ data: {},
29
+ children: [{
30
+ id: "node24",
31
+ name: "2.4",
32
+ data: {},
33
+ children: [{
34
+ id: "node35",
35
+ name: "3.5",
36
+ data: {},
37
+ children: [{
38
+ id: "node46",
39
+ name: "4.6",
40
+ data: {},
41
+ children: []
42
+ }]
43
+ }, {
44
+ id: "node37",
45
+ name: "3.7",
46
+ data: {},
47
+ children: [{
48
+ id: "node48",
49
+ name: "4.8",
50
+ data: {},
51
+ children: []
52
+ }, {
53
+ id: "node49",
54
+ name: "4.9",
55
+ data: {},
56
+ children: []
57
+ }, {
58
+ id: "node410",
59
+ name: "4.10",
60
+ data: {},
61
+ children: []
62
+ }, {
63
+ id: "node411",
64
+ name: "4.11",
65
+ data: {},
66
+ children: []
67
+ }]
68
+ }, {
69
+ id: "node312",
70
+ name: "3.12",
71
+ data: {},
72
+ children: [{
73
+ id: "node413",
74
+ name: "4.13",
75
+ data: {},
76
+ children: []
77
+ }]
78
+ }, {
79
+ id: "node314",
80
+ name: "3.14",
81
+ data: {},
82
+ children: [{
83
+ id: "node415",
84
+ name: "4.15",
85
+ data: {},
86
+ children: []
87
+ }, {
88
+ id: "node416",
89
+ name: "4.16",
90
+ data: {},
91
+ children: []
92
+ }, {
93
+ id: "node417",
94
+ name: "4.17",
95
+ data: {},
96
+ children: []
97
+ }, {
98
+ id: "node418",
99
+ name: "4.18",
100
+ data: {},
101
+ children: []
102
+ }]
103
+ }, {
104
+ id: "node319",
105
+ name: "3.19",
106
+ data: {},
107
+ children: [{
108
+ id: "node420",
109
+ name: "4.20",
110
+ data: {},
111
+ children: []
112
+ }, {
113
+ id: "node421",
114
+ name: "4.21",
115
+ data: {},
116
+ children: []
117
+ }]
118
+ }]
119
+ }, {
120
+ id: "node222",
121
+ name: "2.22",
122
+ data: {},
123
+ children: [{
124
+ id: "node323",
125
+ name: "3.23",
126
+ data: {},
127
+ children: [{
128
+ id: "node424",
129
+ name: "4.24",
130
+ data: {},
131
+ children: []
132
+ }]
133
+ }]
134
+ }]
135
+ }, {
136
+ id: "node125",
137
+ name: "1.25",
138
+ data: {},
139
+ children: [{
140
+ id: "node226",
141
+ name: "2.26",
142
+ data: {},
143
+ children: [{
144
+ id: "node327",
145
+ name: "3.27",
146
+ data: {},
147
+ children: [{
148
+ id: "node428",
149
+ name: "4.28",
150
+ data: {},
151
+ children: []
152
+ }, {
153
+ id: "node429",
154
+ name: "4.29",
155
+ data: {},
156
+ children: []
157
+ }]
158
+ }, {
159
+ id: "node330",
160
+ name: "3.30",
161
+ data: {},
162
+ children: [{
163
+ id: "node431",
164
+ name: "4.31",
165
+ data: {},
166
+ children: []
167
+ }]
168
+ }, {
169
+ id: "node332",
170
+ name: "3.32",
171
+ data: {},
172
+ children: [{
173
+ id: "node433",
174
+ name: "4.33",
175
+ data: {},
176
+ children: []
177
+ }, {
178
+ id: "node434",
179
+ name: "4.34",
180
+ data: {},
181
+ children: []
182
+ }, {
183
+ id: "node435",
184
+ name: "4.35",
185
+ data: {},
186
+ children: []
187
+ }, {
188
+ id: "node436",
189
+ name: "4.36",
190
+ data: {},
191
+ children: []
192
+ }]
193
+ }]
194
+ }, {
195
+ id: "node237",
196
+ name: "2.37",
197
+ data: {},
198
+ children: [{
199
+ id: "node338",
200
+ name: "3.38",
201
+ data: {},
202
+ children: [{
203
+ id: "node439",
204
+ name: "4.39",
205
+ data: {},
206
+ children: []
207
+ }, {
208
+ id: "node440",
209
+ name: "4.40",
210
+ data: {},
211
+ children: []
212
+ }, {
213
+ id: "node441",
214
+ name: "4.41",
215
+ data: {},
216
+ children: []
217
+ }]
218
+ }, {
219
+ id: "node342",
220
+ name: "3.42",
221
+ data: {},
222
+ children: [{
223
+ id: "node443",
224
+ name: "4.43",
225
+ data: {},
226
+ children: []
227
+ }]
228
+ }, {
229
+ id: "node344",
230
+ name: "3.44",
231
+ data: {},
232
+ children: [{
233
+ id: "node445",
234
+ name: "4.45",
235
+ data: {},
236
+ children: []
237
+ }, {
238
+ id: "node446",
239
+ name: "4.46",
240
+ data: {},
241
+ children: []
242
+ }, {
243
+ id: "node447",
244
+ name: "4.47",
245
+ data: {},
246
+ children: []
247
+ }]
248
+ }, {
249
+ id: "node348",
250
+ name: "3.48",
251
+ data: {},
252
+ children: [{
253
+ id: "node449",
254
+ name: "4.49",
255
+ data: {},
256
+ children: []
257
+ }, {
258
+ id: "node450",
259
+ name: "4.50",
260
+ data: {},
261
+ children: []
262
+ }, {
263
+ id: "node451",
264
+ name: "4.51",
265
+ data: {},
266
+ children: []
267
+ }, {
268
+ id: "node452",
269
+ name: "4.52",
270
+ data: {},
271
+ children: []
272
+ }, {
273
+ id: "node453",
274
+ name: "4.53",
275
+ data: {},
276
+ children: []
277
+ }]
278
+ }, {
279
+ id: "node354",
280
+ name: "3.54",
281
+ data: {},
282
+ children: [{
283
+ id: "node455",
284
+ name: "4.55",
285
+ data: {},
286
+ children: []
287
+ }, {
288
+ id: "node456",
289
+ name: "4.56",
290
+ data: {},
291
+ children: []
292
+ }, {
293
+ id: "node457",
294
+ name: "4.57",
295
+ data: {},
296
+ children: []
297
+ }]
298
+ }]
299
+ }, {
300
+ id: "node258",
301
+ name: "2.58",
302
+ data: {},
303
+ children: [{
304
+ id: "node359",
305
+ name: "3.59",
306
+ data: {},
307
+ children: [{
308
+ id: "node460",
309
+ name: "4.60",
310
+ data: {},
311
+ children: []
312
+ }, {
313
+ id: "node461",
314
+ name: "4.61",
315
+ data: {},
316
+ children: []
317
+ }, {
318
+ id: "node462",
319
+ name: "4.62",
320
+ data: {},
321
+ children: []
322
+ }, {
323
+ id: "node463",
324
+ name: "4.63",
325
+ data: {},
326
+ children: []
327
+ }, {
328
+ id: "node464",
329
+ name: "4.64",
330
+ data: {},
331
+ children: []
332
+ }]
333
+ }]
334
+ }]
335
+ }, {
336
+ id: "node165",
337
+ name: "1.65",
338
+ data: {},
339
+ children: [{
340
+ id: "node266",
341
+ name: "2.66",
342
+ data: {},
343
+ children: [{
344
+ id: "node367",
345
+ name: "3.67",
346
+ data: {},
347
+ children: [{
348
+ id: "node468",
349
+ name: "4.68",
350
+ data: {},
351
+ children: []
352
+ }, {
353
+ id: "node469",
354
+ name: "4.69",
355
+ data: {},
356
+ children: []
357
+ }, {
358
+ id: "node470",
359
+ name: "4.70",
360
+ data: {},
361
+ children: []
362
+ }, {
363
+ id: "node471",
364
+ name: "4.71",
365
+ data: {},
366
+ children: []
367
+ }]
368
+ }, {
369
+ id: "node372",
370
+ name: "3.72",
371
+ data: {},
372
+ children: [{
373
+ id: "node473",
374
+ name: "4.73",
375
+ data: {},
376
+ children: []
377
+ }, {
378
+ id: "node474",
379
+ name: "4.74",
380
+ data: {},
381
+ children: []
382
+ }, {
383
+ id: "node475",
384
+ name: "4.75",
385
+ data: {},
386
+ children: []
387
+ }, {
388
+ id: "node476",
389
+ name: "4.76",
390
+ data: {},
391
+ children: []
392
+ }]
393
+ }, {
394
+ id: "node377",
395
+ name: "3.77",
396
+ data: {},
397
+ children: [{
398
+ id: "node478",
399
+ name: "4.78",
400
+ data: {},
401
+ children: []
402
+ }, {
403
+ id: "node479",
404
+ name: "4.79",
405
+ data: {},
406
+ children: []
407
+ }]
408
+ }, {
409
+ id: "node380",
410
+ name: "3.80",
411
+ data: {},
412
+ children: [{
413
+ id: "node481",
414
+ name: "4.81",
415
+ data: {},
416
+ children: []
417
+ }, {
418
+ id: "node482",
419
+ name: "4.82",
420
+ data: {},
421
+ children: []
422
+ }]
423
+ }]
424
+ }, {
425
+ id: "node283",
426
+ name: "2.83",
427
+ data: {},
428
+ children: [{
429
+ id: "node384",
430
+ name: "3.84",
431
+ data: {},
432
+ children: [{
433
+ id: "node485",
434
+ name: "4.85",
435
+ data: {},
436
+ children: []
437
+ }]
438
+ }, {
439
+ id: "node386",
440
+ name: "3.86",
441
+ data: {},
442
+ children: [{
443
+ id: "node487",
444
+ name: "4.87",
445
+ data: {},
446
+ children: []
447
+ }, {
448
+ id: "node488",
449
+ name: "4.88",
450
+ data: {},
451
+ children: []
452
+ }, {
453
+ id: "node489",
454
+ name: "4.89",
455
+ data: {},
456
+ children: []
457
+ }, {
458
+ id: "node490",
459
+ name: "4.90",
460
+ data: {},
461
+ children: []
462
+ }, {
463
+ id: "node491",
464
+ name: "4.91",
465
+ data: {},
466
+ children: []
467
+ }]
468
+ }, {
469
+ id: "node392",
470
+ name: "3.92",
471
+ data: {},
472
+ children: [{
473
+ id: "node493",
474
+ name: "4.93",
475
+ data: {},
476
+ children: []
477
+ }, {
478
+ id: "node494",
479
+ name: "4.94",
480
+ data: {},
481
+ children: []
482
+ }, {
483
+ id: "node495",
484
+ name: "4.95",
485
+ data: {},
486
+ children: []
487
+ }, {
488
+ id: "node496",
489
+ name: "4.96",
490
+ data: {},
491
+ children: []
492
+ }]
493
+ }, {
494
+ id: "node397",
495
+ name: "3.97",
496
+ data: {},
497
+ children: [{
498
+ id: "node498",
499
+ name: "4.98",
500
+ data: {},
501
+ children: []
502
+ }]
503
+ }, {
504
+ id: "node399",
505
+ name: "3.99",
506
+ data: {},
507
+ children: [{
508
+ id: "node4100",
509
+ name: "4.100",
510
+ data: {},
511
+ children: []
512
+ }, {
513
+ id: "node4101",
514
+ name: "4.101",
515
+ data: {},
516
+ children: []
517
+ }, {
518
+ id: "node4102",
519
+ name: "4.102",
520
+ data: {},
521
+ children: []
522
+ }, {
523
+ id: "node4103",
524
+ name: "4.103",
525
+ data: {},
526
+ children: []
527
+ }]
528
+ }]
529
+ }, {
530
+ id: "node2104",
531
+ name: "2.104",
532
+ data: {},
533
+ children: [{
534
+ id: "node3105",
535
+ name: "3.105",
536
+ data: {},
537
+ children: [{
538
+ id: "node4106",
539
+ name: "4.106",
540
+ data: {},
541
+ children: []
542
+ }, {
543
+ id: "node4107",
544
+ name: "4.107",
545
+ data: {},
546
+ children: []
547
+ }, {
548
+ id: "node4108",
549
+ name: "4.108",
550
+ data: {},
551
+ children: []
552
+ }]
553
+ }]
554
+ }, {
555
+ id: "node2109",
556
+ name: "2.109",
557
+ data: {},
558
+ children: [{
559
+ id: "node3110",
560
+ name: "3.110",
561
+ data: {},
562
+ children: [{
563
+ id: "node4111",
564
+ name: "4.111",
565
+ data: {},
566
+ children: []
567
+ }, {
568
+ id: "node4112",
569
+ name: "4.112",
570
+ data: {},
571
+ children: []
572
+ }]
573
+ }, {
574
+ id: "node3113",
575
+ name: "3.113",
576
+ data: {},
577
+ children: [{
578
+ id: "node4114",
579
+ name: "4.114",
580
+ data: {},
581
+ children: []
582
+ }, {
583
+ id: "node4115",
584
+ name: "4.115",
585
+ data: {},
586
+ children: []
587
+ }, {
588
+ id: "node4116",
589
+ name: "4.116",
590
+ data: {},
591
+ children: []
592
+ }]
593
+ }, {
594
+ id: "node3117",
595
+ name: "3.117",
596
+ data: {},
597
+ children: [{
598
+ id: "node4118",
599
+ name: "4.118",
600
+ data: {},
601
+ children: []
602
+ }, {
603
+ id: "node4119",
604
+ name: "4.119",
605
+ data: {},
606
+ children: []
607
+ }, {
608
+ id: "node4120",
609
+ name: "4.120",
610
+ data: {},
611
+ children: []
612
+ }, {
613
+ id: "node4121",
614
+ name: "4.121",
615
+ data: {},
616
+ children: []
617
+ }]
618
+ }, {
619
+ id: "node3122",
620
+ name: "3.122",
621
+ data: {},
622
+ children: [{
623
+ id: "node4123",
624
+ name: "4.123",
625
+ data: {},
626
+ children: []
627
+ }, {
628
+ id: "node4124",
629
+ name: "4.124",
630
+ data: {},
631
+ children: []
632
+ }]
633
+ }]
634
+ }, {
635
+ id: "node2125",
636
+ name: "2.125",
637
+ data: {},
638
+ children: [{
639
+ id: "node3126",
640
+ name: "3.126",
641
+ data: {},
642
+ children: [{
643
+ id: "node4127",
644
+ name: "4.127",
645
+ data: {},
646
+ children: []
647
+ }, {
648
+ id: "node4128",
649
+ name: "4.128",
650
+ data: {},
651
+ children: []
652
+ }, {
653
+ id: "node4129",
654
+ name: "4.129",
655
+ data: {},
656
+ children: []
657
+ }]
658
+ }]
659
+ }]
660
+ }, {
661
+ id: "node1130",
662
+ name: "1.130",
663
+ data: {},
664
+ children: [{
665
+ id: "node2131",
666
+ name: "2.131",
667
+ data: {},
668
+ children: [{
669
+ id: "node3132",
670
+ name: "3.132",
671
+ data: {},
672
+ children: [{
673
+ id: "node4133",
674
+ name: "4.133",
675
+ data: {},
676
+ children: []
677
+ }, {
678
+ id: "node4134",
679
+ name: "4.134",
680
+ data: {},
681
+ children: []
682
+ }, {
683
+ id: "node4135",
684
+ name: "4.135",
685
+ data: {},
686
+ children: []
687
+ }, {
688
+ id: "node4136",
689
+ name: "4.136",
690
+ data: {},
691
+ children: []
692
+ }, {
693
+ id: "node4137",
694
+ name: "4.137",
695
+ data: {},
696
+ children: []
697
+ }]
698
+ }]
699
+ }, {
700
+ id: "node2138",
701
+ name: "2.138",
702
+ data: {},
703
+ children: [{
704
+ id: "node3139",
705
+ name: "3.139",
706
+ data: {},
707
+ children: [{
708
+ id: "node4140",
709
+ name: "4.140",
710
+ data: {},
711
+ children: []
712
+ }, {
713
+ id: "node4141",
714
+ name: "4.141",
715
+ data: {},
716
+ children: []
717
+ }]
718
+ }, {
719
+ id: "node3142",
720
+ name: "3.142",
721
+ data: {},
722
+ children: [{
723
+ id: "node4143",
724
+ name: "4.143",
725
+ data: {},
726
+ children: []
727
+ }, {
728
+ id: "node4144",
729
+ name: "4.144",
730
+ data: {},
731
+ children: []
732
+ }, {
733
+ id: "node4145",
734
+ name: "4.145",
735
+ data: {},
736
+ children: []
737
+ }, {
738
+ id: "node4146",
739
+ name: "4.146",
740
+ data: {},
741
+ children: []
742
+ }, {
743
+ id: "node4147",
744
+ name: "4.147",
745
+ data: {},
746
+ children: []
747
+ }]
748
+ }]
749
+ }]
750
+ }]
751
+ };
752
+ var subtree = json.children.pop();
753
+ //end
754
+ var removing = false;
755
+ //init canvas
756
+ //Create a new canvas instance.
757
+ var canvas = new Canvas('mycanvas', {
758
+ 'injectInto': 'infovis',
759
+ 'width': w,
760
+ 'height': h
761
+ });
762
+ //end
763
+
764
+ //init st
765
+ //Create a new ST instance
766
+ var st = new ST(canvas, {
767
+ //add styles/shapes/colors
768
+ //to nodes and edges
769
+
770
+ //set overridable=true if you want
771
+ //to set styles for nodes individually
772
+ Node: {
773
+ overridable: true,
774
+ width: 60,
775
+ height: 20,
776
+ color: '#ccc'
777
+ },
778
+ //change the animation/transition effect
779
+ transition: Trans.Quart.easeOut,
780
+
781
+ onBeforeCompute: function(node){
782
+ Log.write("loading " + node.name);
783
+ },
784
+
785
+ onAfterCompute: function(node){
786
+ Log.write("done");
787
+ },
788
+
789
+ //This method is triggered on label
790
+ //creation. This means that for each node
791
+ //this method is triggered only once.
792
+ //This method is useful for adding event
793
+ //handlers to each node label.
794
+ onCreateLabel: function(label, node){
795
+ //add some styles to the node label
796
+ var style = label.style;
797
+ label.id = node.id;
798
+ style.color = '#333';
799
+ style.fontSize = '0.8em';
800
+ style.textAlign = 'center';
801
+ style.width = "60px";
802
+ style.height = "20px";
803
+ label.innerHTML = node.name;
804
+ //Delete the specified subtree
805
+ //when clicking on a label.
806
+ //Only apply this method for nodes
807
+ //in the first level of the tree.
808
+ if(node._depth == 1) {
809
+ style.cursor = 'pointer';
810
+ label.onclick = function() {
811
+ if(!removing) {
812
+ removing = true;
813
+ Log.write("removing subtree...");
814
+ //remove the subtree
815
+ st.removeSubtree(label.id, true, 'animate', {
816
+ hideLabels: false,
817
+ onAfterCompute: function() {
818
+ removing = false;
819
+ Log.write("subtree removed");
820
+ }
821
+ });
822
+ }
823
+ }
824
+ };
825
+ },
826
+ //This method is triggered right before plotting a node.
827
+ //This method is useful for adding style
828
+ //to a node before it's being rendered.
829
+ onBeforePlotNode: function(node) {
830
+ if (node._depth == 1) {
831
+ node.data.$color = '#f77';
832
+ }
833
+ }
834
+ });
835
+ //load json data
836
+ st.loadJSON(json);
837
+ //compute node positions and layout
838
+ st.compute();
839
+ //optional: make a translation of the tree
840
+ st.geom.translate(new Complex(-200, 0), "startPos");
841
+ //Emulate a click on the root node.
842
+ st.onClick(st.root);
843
+ //end
844
+
845
+ //init handler
846
+ //Add an event handler to the add button for
847
+ //adding a subtree.
848
+ var animate = document.getElementById('animate');
849
+ var addButton = document.getElementById('addSubtree');
850
+ addButton.onclick = function() {
851
+ var type = animate.checked? "animate" : "replot";
852
+ subtree.id = "node02";
853
+ Log.write("adding subtree...");
854
+ //add the subtree
855
+ st.addSubtree(subtree, type, {
856
+ hideLabels: false,
857
+ onAfterCompute: function() {
858
+ Log.write("subtree added");
859
+ }
860
+ });
861
+ };
862
+ //end
863
+ }