mongo3 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +6 -2
- data/Rakefile +1 -0
- data/data/populate +13 -11
- data/lib/controllers/databases.rb +3 -3
- data/lib/controllers/explore.rb +7 -5
- data/lib/helpers/main_helper.rb +24 -0
- data/lib/mongo3/connection.rb +105 -59
- data/lib/mongo3/node.rb +35 -6
- data/lib/mongo3.rb +1 -1
- data/lib/public/javascripts/{Jit/jit.js → jit.js} +0 -0
- data/lib/views/databases/_results.erb +29 -12
- data/lib/views/explore/explore.erb +52 -31
- data/lib/views/layout.erb +2 -6
- data/spec/mongo3/connection_spec.rb +40 -6
- metadata +13 -45
- data/lib/public/javascripts/Jit/Examples/Hypertree/example1.html +0 -57
- data/lib/public/javascripts/Jit/Examples/Hypertree/example1.js +0 -427
- data/lib/public/javascripts/Jit/Examples/Hypertree/example2.html +0 -58
- data/lib/public/javascripts/Jit/Examples/Hypertree/example2.js +0 -310
- data/lib/public/javascripts/Jit/Examples/Hypertree/example3.html +0 -199
- data/lib/public/javascripts/Jit/Examples/Hypertree/example3.js +0 -615
- data/lib/public/javascripts/Jit/Examples/Other/example1.html +0 -58
- data/lib/public/javascripts/Jit/Examples/Other/example1.js +0 -566
- data/lib/public/javascripts/Jit/Examples/Other/example2.html +0 -58
- data/lib/public/javascripts/Jit/Examples/Other/example2.js +0 -304
- data/lib/public/javascripts/Jit/Examples/Other/example3.html +0 -58
- data/lib/public/javascripts/Jit/Examples/Other/example3.js +0 -304
- data/lib/public/javascripts/Jit/Examples/RGraph/example1.html +0 -57
- data/lib/public/javascripts/Jit/Examples/RGraph/example1.js +0 -475
- data/lib/public/javascripts/Jit/Examples/RGraph/example2.html +0 -58
- data/lib/public/javascripts/Jit/Examples/RGraph/example2.js +0 -356
- data/lib/public/javascripts/Jit/Examples/RGraph/example3.html +0 -199
- data/lib/public/javascripts/Jit/Examples/RGraph/example3.js +0 -622
- data/lib/public/javascripts/Jit/Examples/Spacetree/example1.html +0 -91
- data/lib/public/javascripts/Jit/Examples/Spacetree/example1.js +0 -890
- data/lib/public/javascripts/Jit/Examples/Spacetree/example2.html +0 -90
- data/lib/public/javascripts/Jit/Examples/Spacetree/example2.js +0 -213
- data/lib/public/javascripts/Jit/Examples/Spacetree/example3.html +0 -75
- data/lib/public/javascripts/Jit/Examples/Spacetree/example3.js +0 -863
- data/lib/public/javascripts/Jit/Examples/Treemap/example1.html +0 -56
- data/lib/public/javascripts/Jit/Examples/Treemap/example1.js +0 -95
- data/lib/public/javascripts/Jit/Examples/Treemap/example2.html +0 -61
- data/lib/public/javascripts/Jit/Examples/Treemap/example2.js +0 -750
- data/lib/public/javascripts/Jit/Examples/Treemap/example3.html +0 -62
- data/lib/public/javascripts/Jit/Examples/Treemap/example3.js +0 -775
- data/lib/public/javascripts/Jit/Examples/css/Hypertree.css +0 -0
- data/lib/public/javascripts/Jit/Examples/css/Other.css +0 -8
- data/lib/public/javascripts/Jit/Examples/css/RGraph.css +0 -0
- data/lib/public/javascripts/Jit/Examples/css/Spacetree.css +0 -0
- data/lib/public/javascripts/Jit/Examples/css/Treemap.css +0 -78
- data/lib/public/javascripts/Jit/Examples/css/base.css +0 -106
- data/lib/public/javascripts/Jit/Examples/css/col1.png +0 -0
- data/lib/public/javascripts/Jit/Examples/css/col2.png +0 -0
- data/lib/public/javascripts/Jit/Examples/css/gradient.png +0 -0
- data/lib/public/javascripts/Jit/Extras/excanvas.js +0 -35
- data/lib/public/javascripts/Jit/jit-yc.js +0 -1
- data/lib/public/javascripts/Jit-1.1.3.zip +0 -0
@@ -1,90 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
3
|
-
<head>
|
4
|
-
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
5
|
-
<title>Spacetree - SpaceTree with on-demand nodes</title>
|
6
|
-
|
7
|
-
<!-- CSS Files -->
|
8
|
-
<link type="text/css" href="../css/base.css" rel="stylesheet" />
|
9
|
-
<link type="text/css" href="../css/Spacetree.css" rel="stylesheet" />
|
10
|
-
|
11
|
-
<!--[if IE]><script language="javascript" type="text/javascript" src="../../Extras/excanvas.js"></script><![endif]-->
|
12
|
-
|
13
|
-
<!-- JIT Library File -->
|
14
|
-
<script language="javascript" type="text/javascript" src="../../jit.js"></script>
|
15
|
-
|
16
|
-
<!-- Example File -->
|
17
|
-
<script language="javascript" type="text/javascript" src="example2.js"></script>
|
18
|
-
</head>
|
19
|
-
|
20
|
-
<body onload="init();">
|
21
|
-
<div id="container">
|
22
|
-
|
23
|
-
<div id="left-container">
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
<div class="text">
|
28
|
-
<h4>
|
29
|
-
SpaceTree with on-demand nodes
|
30
|
-
</h4>
|
31
|
-
|
32
|
-
This example shows how you can use the <b>request</b> controller method to create a SpaceTree with <b>on demand</b> nodes<br /><br />
|
33
|
-
The basic JSON Tree structure is cloned and appended on demand on each node to create an <b>infinite large SpaceTree</b><br /><br />
|
34
|
-
You can select the <b>tree orientation</b> by changing the select box in the right column.
|
35
|
-
|
36
|
-
</div>
|
37
|
-
|
38
|
-
<div id="id-list"></div>
|
39
|
-
|
40
|
-
|
41
|
-
<div style="text-align:center;"><a href="example2.js">See the Example Code</a></div>
|
42
|
-
</div>
|
43
|
-
|
44
|
-
<div id="center-container">
|
45
|
-
<div id="infovis"></div>
|
46
|
-
</div>
|
47
|
-
|
48
|
-
<div id="right-container">
|
49
|
-
|
50
|
-
<h4>Change Tree Orientation</h4>
|
51
|
-
<table>
|
52
|
-
<tr>
|
53
|
-
<td>
|
54
|
-
<label for="r-left">left </label>
|
55
|
-
</td>
|
56
|
-
<td>
|
57
|
-
<input type="radio" id="r-left" name="orientation" checked="checked" value="left" />
|
58
|
-
</td>
|
59
|
-
</tr>
|
60
|
-
<tr>
|
61
|
-
<td>
|
62
|
-
<label for="r-top">top </label>
|
63
|
-
</td>
|
64
|
-
<td>
|
65
|
-
<input type="radio" id="r-top" name="orientation" value="top" />
|
66
|
-
</td>
|
67
|
-
<tr>
|
68
|
-
<td>
|
69
|
-
<label for="r-bottom">bottom </label>
|
70
|
-
</td>
|
71
|
-
<td>
|
72
|
-
<input type="radio" id="r-bottom" name="orientation" value="bottom" />
|
73
|
-
</td>
|
74
|
-
</tr>
|
75
|
-
<tr>
|
76
|
-
<td>
|
77
|
-
<label for="r-right">right </label>
|
78
|
-
</td>
|
79
|
-
<td>
|
80
|
-
<input type="radio" id="r-right" name="orientation" value="right" />
|
81
|
-
</td>
|
82
|
-
</tr>
|
83
|
-
</table>
|
84
|
-
|
85
|
-
</div>
|
86
|
-
|
87
|
-
<div id="log"></div>
|
88
|
-
</div>
|
89
|
-
</body>
|
90
|
-
</html>
|
@@ -1,213 +0,0 @@
|
|
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
|
-
//init data
|
19
|
-
var json = "{id:\"node02\", name:\"0.2\", data:{}, children:[{id:\"node13\", name:\"1.3\", data:{}, children:[{id:\"node24\", name:\"2.4\", data:{}, children:[{id:\"node35\", name:\"3.5\", data:{}, children:[{id:\"node46\", name:\"4.6\", data:{}, children:[]}]}, {id:\"node37\", name:\"3.7\", data:{}, children:[{id:\"node48\", name:\"4.8\", data:{}, children:[]}, {id:\"node49\", name:\"4.9\", data:{}, children:[]}, {id:\"node410\", name:\"4.10\", data:{}, children:[]}, {id:\"node411\", name:\"4.11\", data:{}, children:[]}]}, {id:\"node312\", name:\"3.12\", data:{}, children:[{id:\"node413\", name:\"4.13\", data:{}, children:[]}]}, {id:\"node314\", name:\"3.14\", data:{}, children:[{id:\"node415\", name:\"4.15\", data:{}, children:[]}, {id:\"node416\", name:\"4.16\", data:{}, children:[]}, {id:\"node417\", name:\"4.17\", data:{}, children:[]}, {id:\"node418\", name:\"4.18\", data:{}, children:[]}]}, {id:\"node319\", name:\"3.19\", data:{}, children:[{id:\"node420\", name:\"4.20\", data:{}, children:[]}, {id:\"node421\", name:\"4.21\", data:{}, children:[]}]}]}, {id:\"node222\", name:\"2.22\", data:{}, children:[{id:\"node323\", name:\"3.23\", data:{}, children:[{id:\"node424\", name:\"4.24\", data:{}, children:[]}]}]}]}, {id:\"node125\", name:\"1.25\", data:{}, children:[{id:\"node226\", name:\"2.26\", data:{}, children:[{id:\"node327\", name:\"3.27\", data:{}, children:[{id:\"node428\", name:\"4.28\", data:{}, children:[]}, {id:\"node429\", name:\"4.29\", data:{}, children:[]}]}, {id:\"node330\", name:\"3.30\", data:{}, children:[{id:\"node431\", name:\"4.31\", data:{}, children:[]}]}, {id:\"node332\", name:\"3.32\", data:{}, children:[{id:\"node433\", name:\"4.33\", data:{}, children:[]}, {id:\"node434\", name:\"4.34\", data:{}, children:[]}, {id:\"node435\", name:\"4.35\", data:{}, children:[]}, {id:\"node436\", name:\"4.36\", data:{}, children:[]}]}]}, {id:\"node237\", name:\"2.37\", data:{}, children:[{id:\"node338\", name:\"3.38\", data:{}, children:[{id:\"node439\", name:\"4.39\", data:{}, children:[]}, {id:\"node440\", name:\"4.40\", data:{}, children:[]}, {id:\"node441\", name:\"4.41\", data:{}, children:[]}]}, {id:\"node342\", name:\"3.42\", data:{}, children:[{id:\"node443\", name:\"4.43\", data:{}, children:[]}]}, {id:\"node344\", name:\"3.44\", data:{}, children:[{id:\"node445\", name:\"4.45\", data:{}, children:[]}, {id:\"node446\", name:\"4.46\", data:{}, children:[]}, {id:\"node447\", name:\"4.47\", data:{}, children:[]}]}, {id:\"node348\", name:\"3.48\", data:{}, children:[{id:\"node449\", name:\"4.49\", data:{}, children:[]}, {id:\"node450\", name:\"4.50\", data:{}, children:[]}, {id:\"node451\", name:\"4.51\", data:{}, children:[]}, {id:\"node452\", name:\"4.52\", data:{}, children:[]}, {id:\"node453\", name:\"4.53\", data:{}, children:[]}]}, {id:\"node354\", name:\"3.54\", data:{}, children:[{id:\"node455\", name:\"4.55\", data:{}, children:[]}, {id:\"node456\", name:\"4.56\", data:{}, children:[]}, {id:\"node457\", name:\"4.57\", data:{}, children:[]}]}]}, {id:\"node258\", name:\"2.58\", data:{}, children:[{id:\"node359\", name:\"3.59\", data:{}, children:[{id:\"node460\", name:\"4.60\", data:{}, children:[]}, {id:\"node461\", name:\"4.61\", data:{}, children:[]}, {id:\"node462\", name:\"4.62\", data:{}, children:[]}, {id:\"node463\", name:\"4.63\", data:{}, children:[]}, {id:\"node464\", name:\"4.64\", data:{}, children:[]}]}]}]}, {id:\"node165\", name:\"1.65\", data:{}, children:[{id:\"node266\", name:\"2.66\", data:{}, children:[{id:\"node367\", name:\"3.67\", data:{}, children:[{id:\"node468\", name:\"4.68\", data:{}, children:[]}, {id:\"node469\", name:\"4.69\", data:{}, children:[]}, {id:\"node470\", name:\"4.70\", data:{}, children:[]}, {id:\"node471\", name:\"4.71\", data:{}, children:[]}]}, {id:\"node372\", name:\"3.72\", data:{}, children:[{id:\"node473\", name:\"4.73\", data:{}, children:[]}, {id:\"node474\", name:\"4.74\", data:{}, children:[]}, {id:\"node475\", name:\"4.75\", data:{}, children:[]}, {id:\"node476\", name:\"4.76\", data:{}, children:[]}]}, {id:\"node377\", name:\"3.77\", data:{}, children:[{id:\"node478\", name:\"4.78\", data:{}, children:[]}, {id:\"node479\", name:\"4.79\", data:{}, children:[]}]}, {id:\"node380\", name:\"3.80\", data:{}, children:[{id:\"node481\", name:\"4.81\", data:{}, children:[]}, {id:\"node482\", name:\"4.82\", data:{}, children:[]}]}]}, {id:\"node283\", name:\"2.83\", data:{}, children:[{id:\"node384\", name:\"3.84\", data:{}, children:[{id:\"node485\", name:\"4.85\", data:{}, children:[]}]}, {id:\"node386\", name:\"3.86\", data:{}, children:[{id:\"node487\", name:\"4.87\", data:{}, children:[]}, {id:\"node488\", name:\"4.88\", data:{}, children:[]}, {id:\"node489\", name:\"4.89\", data:{}, children:[]}, {id:\"node490\", name:\"4.90\", data:{}, children:[]}, {id:\"node491\", name:\"4.91\", data:{}, children:[]}]}, {id:\"node392\", name:\"3.92\", data:{}, children:[{id:\"node493\", name:\"4.93\", data:{}, children:[]}, {id:\"node494\", name:\"4.94\", data:{}, children:[]}, {id:\"node495\", name:\"4.95\", data:{}, children:[]}, {id:\"node496\", name:\"4.96\", data:{}, children:[]}]}, {id:\"node397\", name:\"3.97\", data:{}, children:[{id:\"node498\", name:\"4.98\", data:{}, children:[]}]}, {id:\"node399\", name:\"3.99\", data:{}, children:[{id:\"node4100\", name:\"4.100\", data:{}, children:[]}, {id:\"node4101\", name:\"4.101\", data:{}, children:[]}, {id:\"node4102\", name:\"4.102\", data:{}, children:[]}, {id:\"node4103\", name:\"4.103\", data:{}, children:[]}]}]}, {id:\"node2104\", name:\"2.104\", data:{}, children:[{id:\"node3105\", name:\"3.105\", data:{}, children:[{id:\"node4106\", name:\"4.106\", data:{}, children:[]}, {id:\"node4107\", name:\"4.107\", data:{}, children:[]}, {id:\"node4108\", name:\"4.108\", data:{}, children:[]}]}]}, {id:\"node2109\", name:\"2.109\", data:{}, children:[{id:\"node3110\", name:\"3.110\", data:{}, children:[{id:\"node4111\", name:\"4.111\", data:{}, children:[]}, {id:\"node4112\", name:\"4.112\", data:{}, children:[]}]}, {id:\"node3113\", name:\"3.113\", data:{}, children:[{id:\"node4114\", name:\"4.114\", data:{}, children:[]}, {id:\"node4115\", name:\"4.115\", data:{}, children:[]}, {id:\"node4116\", name:\"4.116\", data:{}, children:[]}]}, {id:\"node3117\", name:\"3.117\", data:{}, children:[{id:\"node4118\", name:\"4.118\", data:{}, children:[]}, {id:\"node4119\", name:\"4.119\", data:{}, children:[]}, {id:\"node4120\", name:\"4.120\", data:{}, children:[]}, {id:\"node4121\", name:\"4.121\", data:{}, children:[]}]}, {id:\"node3122\", name:\"3.122\", data:{}, children:[{id:\"node4123\", name:\"4.123\", data:{}, children:[]}, {id:\"node4124\", name:\"4.124\", data:{}, children:[]}]}]}, {id:\"node2125\", name:\"2.125\", data:{}, children:[{id:\"node3126\", name:\"3.126\", data:{}, children:[{id:\"node4127\", name:\"4.127\", data:{}, children:[]}, {id:\"node4128\", name:\"4.128\", data:{}, children:[]}, {id:\"node4129\", name:\"4.129\", data:{}, children:[]}]}]}]}, {id:\"node1130\", name:\"1.130\", data:{}, children:[{id:\"node2131\", name:\"2.131\", data:{}, children:[{id:\"node3132\", name:\"3.132\", data:{}, children:[{id:\"node4133\", name:\"4.133\", data:{}, children:[]}, {id:\"node4134\", name:\"4.134\", data:{}, children:[]}, {id:\"node4135\", name:\"4.135\", data:{}, children:[]}, {id:\"node4136\", name:\"4.136\", data:{}, children:[]}, {id:\"node4137\", name:\"4.137\", data:{}, children:[]}]}]}, {id:\"node2138\", name:\"2.138\", data:{}, children:[{id:\"node3139\", name:\"3.139\", data:{}, children:[{id:\"node4140\", name:\"4.140\", data:{}, children:[]}, {id:\"node4141\", name:\"4.141\", data:{}, children:[]}]}, {id:\"node3142\", name:\"3.142\", data:{}, children:[{id:\"node4143\", name:\"4.143\", data:{}, children:[]}, {id:\"node4144\", name:\"4.144\", data:{}, children:[]}, {id:\"node4145\", name:\"4.145\", data:{}, children:[]}, {id:\"node4146\", name:\"4.146\", data:{}, children:[]}, {id:\"node4147\", name:\"4.147\", data:{}, children:[]}]}]}]}]}";
|
20
|
-
//end
|
21
|
-
|
22
|
-
//A client-side tree generator
|
23
|
-
var getTree = (function() {
|
24
|
-
var i = 0;
|
25
|
-
return function(nodeId, level) {
|
26
|
-
var subtree = eval('(' + json.replace(/id:\"([a-zA-Z0-9]+)\"/g,
|
27
|
-
function(all, match) {
|
28
|
-
return "id:\"" + match + "_" + i + "\""
|
29
|
-
}) + ')');
|
30
|
-
TreeUtil.prune(subtree, level); i++;
|
31
|
-
return {
|
32
|
-
'id': nodeId,
|
33
|
-
'children': subtree.children
|
34
|
-
};
|
35
|
-
};
|
36
|
-
})();
|
37
|
-
|
38
|
-
var infovis = document.getElementById('infovis');
|
39
|
-
var w = infovis.offsetWidth, h = infovis.offsetHeight;
|
40
|
-
//init canvas
|
41
|
-
//Create a new canvas instance.
|
42
|
-
var canvas = new Canvas('mycanvas', {
|
43
|
-
'injectInto': 'infovis',
|
44
|
-
'width': w,
|
45
|
-
'height': h,
|
46
|
-
'backgroundColor': '#1a1a1a'
|
47
|
-
});
|
48
|
-
//end
|
49
|
-
|
50
|
-
|
51
|
-
//Implement a node rendering function called 'nodeline' that plots a straight line
|
52
|
-
//when contracting or expanding a subtree.
|
53
|
-
ST.Plot.NodeTypes.implement({
|
54
|
-
'nodeline': function(node, canvas, animating) {
|
55
|
-
if(animating === 'expand' || animating === 'contract') {
|
56
|
-
var pos = node.pos.getc(true), nconfig = this.node, data = node.data;
|
57
|
-
var width = nconfig.width, height = nconfig.height;
|
58
|
-
var algnPos = this.getAlignedPos(pos, width, height);
|
59
|
-
var ctx = canvas.getCtx(), ort = this.config.orientation;
|
60
|
-
ctx.beginPath();
|
61
|
-
if(ort == 'left' || ort == 'right') {
|
62
|
-
ctx.moveTo(algnPos.x, algnPos.y + height / 2);
|
63
|
-
ctx.lineTo(algnPos.x + width, algnPos.y + height / 2);
|
64
|
-
} else {
|
65
|
-
ctx.moveTo(algnPos.x + width / 2, algnPos.y);
|
66
|
-
ctx.lineTo(algnPos.x + width / 2, algnPos.y + height);
|
67
|
-
}
|
68
|
-
ctx.stroke();
|
69
|
-
}
|
70
|
-
}
|
71
|
-
});
|
72
|
-
|
73
|
-
//init st
|
74
|
-
//Create a new ST instance
|
75
|
-
var st = new ST(canvas, {
|
76
|
-
//set duration for the animation
|
77
|
-
duration: 800,
|
78
|
-
//set animation transition type
|
79
|
-
transition: Trans.Quart.easeInOut,
|
80
|
-
//set distance between node and its children
|
81
|
-
levelDistance: 50,
|
82
|
-
//set max levels to show. Useful when used with
|
83
|
-
//the request method for requesting trees of specific depth
|
84
|
-
levelsToShow: 2,
|
85
|
-
//set node and edge styles
|
86
|
-
//set overridable=true for styling individual
|
87
|
-
//nodes or edges
|
88
|
-
Node: {
|
89
|
-
height: 20,
|
90
|
-
width: 40,
|
91
|
-
//use a custom
|
92
|
-
//node rendering function
|
93
|
-
type: 'nodeline',
|
94
|
-
color:'#23A4FF',
|
95
|
-
lineWidth: 2,
|
96
|
-
align:"center",
|
97
|
-
overridable: true
|
98
|
-
},
|
99
|
-
|
100
|
-
Edge: {
|
101
|
-
type: 'bezier',
|
102
|
-
lineWidth: 2,
|
103
|
-
color:'#23A4FF',
|
104
|
-
overridable: true
|
105
|
-
},
|
106
|
-
|
107
|
-
//Add a request method for requesting on-demand json trees.
|
108
|
-
//This method gets called when a node
|
109
|
-
//is clicked and its subtree has a smaller depth
|
110
|
-
//than the one specified by the levelsToShow parameter.
|
111
|
-
//In that case a subtree is requested and is added to the dataset.
|
112
|
-
//This method is asynchronous, so you can make an Ajax request for that
|
113
|
-
//subtree and then handle it to the onComplete callback.
|
114
|
-
//Here we just use a client-side tree generator (the getTree function).
|
115
|
-
request: function(nodeId, level, onComplete) {
|
116
|
-
var ans = getTree(nodeId, level);
|
117
|
-
onComplete.onComplete(nodeId, ans);
|
118
|
-
},
|
119
|
-
|
120
|
-
onBeforeCompute: function(node){
|
121
|
-
Log.write("loading " + node.name);
|
122
|
-
},
|
123
|
-
|
124
|
-
onAfterCompute: function(){
|
125
|
-
Log.write("done");
|
126
|
-
},
|
127
|
-
|
128
|
-
//This method is called on DOM label creation.
|
129
|
-
//Use this method to add event handlers and styles to
|
130
|
-
//your node.
|
131
|
-
onCreateLabel: function(label, node){
|
132
|
-
label.id = node.id;
|
133
|
-
label.innerHTML = node.name;
|
134
|
-
label.onclick = function(){
|
135
|
-
st.onClick(node.id);
|
136
|
-
};
|
137
|
-
//set label styles
|
138
|
-
var style = label.style;
|
139
|
-
style.width = 40 + 'px';
|
140
|
-
style.height = 17 + 'px';
|
141
|
-
style.cursor = 'pointer';
|
142
|
-
style.color = '#fff';
|
143
|
-
//style.backgroundColor = '#1a1a1a';
|
144
|
-
style.fontSize = '0.8em';
|
145
|
-
style.textAlign= 'center';
|
146
|
-
style.textDecoration = 'underline';
|
147
|
-
style.paddingTop = '3px';
|
148
|
-
},
|
149
|
-
|
150
|
-
//This method is called right before plotting
|
151
|
-
//a node. It's useful for changing an individual node
|
152
|
-
//style properties before plotting it.
|
153
|
-
//The data properties prefixed with a dollar
|
154
|
-
//sign will override the global node style properties.
|
155
|
-
onBeforePlotNode: function(node){
|
156
|
-
//add some color to the nodes in the path between the
|
157
|
-
//root node and the selected node.
|
158
|
-
if (node.selected) {
|
159
|
-
node.data.$color = "#ff7";
|
160
|
-
}
|
161
|
-
else {
|
162
|
-
delete node.data.$color;
|
163
|
-
}
|
164
|
-
},
|
165
|
-
|
166
|
-
//This method is called right before plotting
|
167
|
-
//an edge. It's useful for changing an individual edge
|
168
|
-
//style properties before plotting it.
|
169
|
-
//Edge data proprties prefixed with a dollar sign will
|
170
|
-
//override the Edge global style properties.
|
171
|
-
onBeforePlotLine: function(adj){
|
172
|
-
if (adj.nodeFrom.selected && adj.nodeTo.selected) {
|
173
|
-
adj.data.$color = "#eed";
|
174
|
-
adj.data.$lineWidth = 3;
|
175
|
-
}
|
176
|
-
else {
|
177
|
-
delete adj.data.$color;
|
178
|
-
delete adj.data.$lineWidth;
|
179
|
-
}
|
180
|
-
}
|
181
|
-
});
|
182
|
-
//load json data
|
183
|
-
st.loadJSON(eval( '(' + json + ')' ));
|
184
|
-
//compute node positions and layout
|
185
|
-
st.compute();
|
186
|
-
//emulate a click on the root node.
|
187
|
-
st.onClick(st.root);
|
188
|
-
//end
|
189
|
-
//Add event handlers to switch spacetree orientation.
|
190
|
-
function get(id) {
|
191
|
-
return document.getElementById(id);
|
192
|
-
};
|
193
|
-
|
194
|
-
var top = get('r-top'),
|
195
|
-
left = get('r-left'),
|
196
|
-
bottom = get('r-bottom'),
|
197
|
-
right = get('r-right');
|
198
|
-
|
199
|
-
function changeHandler() {
|
200
|
-
if(this.checked) {
|
201
|
-
top.disabled = bottom.disabled = right.disabled = left.disabled = true;
|
202
|
-
st.switchPosition(this.value, "animate", {
|
203
|
-
onComplete: function(){
|
204
|
-
top.disabled = bottom.disabled = right.disabled = left.disabled = false;
|
205
|
-
}
|
206
|
-
});
|
207
|
-
}
|
208
|
-
};
|
209
|
-
|
210
|
-
top.onchange = left.onchange = bottom.onchange = right.onchange = changeHandler;
|
211
|
-
//end
|
212
|
-
|
213
|
-
}
|
@@ -1,75 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
3
|
-
<head>
|
4
|
-
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
5
|
-
<title>Spacetree - Add/Remove Subtrees</title>
|
6
|
-
|
7
|
-
<!-- CSS Files -->
|
8
|
-
<link type="text/css" href="../css/base.css" rel="stylesheet" />
|
9
|
-
<link type="text/css" href="../css/Spacetree.css" rel="stylesheet" />
|
10
|
-
|
11
|
-
<!--[if IE]><script language="javascript" type="text/javascript" src="../../Extras/excanvas.js"></script><![endif]-->
|
12
|
-
|
13
|
-
<!-- JIT Library File -->
|
14
|
-
<script language="javascript" type="text/javascript" src="../../jit.js"></script>
|
15
|
-
|
16
|
-
<!-- Example File -->
|
17
|
-
<script language="javascript" type="text/javascript" src="example3.js"></script>
|
18
|
-
</head>
|
19
|
-
|
20
|
-
<body onload="init();">
|
21
|
-
<div id="container">
|
22
|
-
|
23
|
-
<div id="left-container">
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
<div class="text">
|
28
|
-
<h4>
|
29
|
-
Add/Remove Subtrees
|
30
|
-
</h4>
|
31
|
-
|
32
|
-
This example shows how to add/remove subtrees with the SpaceTree.<br /><br />
|
33
|
-
<b>Add</b> a subtree by clicking on the <em>Add</em> button located in the right column.<br /><br />
|
34
|
-
<b>Remove</b> a subtree by clicking on a red colored node
|
35
|
-
|
36
|
-
</div>
|
37
|
-
|
38
|
-
<div id="id-list"></div>
|
39
|
-
|
40
|
-
|
41
|
-
<div style="text-align:center;"><a href="example3.js">See the Example Code</a></div>
|
42
|
-
</div>
|
43
|
-
|
44
|
-
<div id="center-container">
|
45
|
-
<div id="infovis"></div>
|
46
|
-
</div>
|
47
|
-
|
48
|
-
<div id="right-container">
|
49
|
-
|
50
|
-
<h4>Add Subtrees</h4>
|
51
|
-
<table>
|
52
|
-
<tr>
|
53
|
-
<td>
|
54
|
-
Animate:
|
55
|
-
</td>
|
56
|
-
<td>
|
57
|
-
<input type="checkbox" id="animate" checked="checked" />
|
58
|
-
</td>
|
59
|
-
</tr>
|
60
|
-
<tr>
|
61
|
-
<td>
|
62
|
-
<input type="button" id="addSubtree" value="Add" />
|
63
|
-
</td>
|
64
|
-
<td>
|
65
|
-
<input type="button" value="Refresh" onclick="window.location = window.location" />
|
66
|
-
</td>
|
67
|
-
</tr>
|
68
|
-
</table>
|
69
|
-
|
70
|
-
</div>
|
71
|
-
|
72
|
-
<div id="log"></div>
|
73
|
-
</div>
|
74
|
-
</body>
|
75
|
-
</html>
|