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
|
/* ************************************************************************
#module(Smokeping)
************************************************************************ */
/**
* a widget showing the smokeping target tree
*/
qx.Class.define('Smokeping.ui.TargetTree',
{
extend: qx.ui.tree.Tree,
/*
*****************************************************************************
CONSTRUCTOR
*****************************************************************************
*/
construct: function () {
with(this){
base(arguments,'root node');
set({
backgroundColor: 'white',
border: new qx.ui.core.Border(1,'solid','#a0a0a0'),
overflow: 'auto',
width: '100%',
height: '100%',
padding: 5,
hideNode: true
});
getManager().addEventListener('changeSelection', this._send_event,this)
};
var self = this;
var fill_tree = function(data,exc,id){
if (exc == null){
var nodes = data.length;
for(var i=0;i<nodes;i++){
self._fill_folder(self,data[i]);
}
}
else {
alert(exc);
}
};
Smokeping.Server.getInstance().callAsync(fill_tree,'get_tree');
},
/*
*****************************************************************************
Statics
*****************************************************************************
*/
members: {
_fill_folder: function(node,data){
// in data[0] we have the id of the folder
var folder = new qx.ui.tree.TreeFolder(data[1]);
node.add(folder);
var files = new Array();
var length = data.length;
for (var i=2;i<length;i++){
if(qx.util.Validation.isValidArray(data[i])){
this._fill_folder(folder,data[i]);
} else {
i++; // skip the node id for now
var file = new qx.ui.tree.TreeFile(data[i]);
files.push(data[i-1]);
folder.add(file);
}
}
folder.setUserData('ids',files);
},
_send_event: function(e) {
if (e.getData().length > 0) {
if ( e.getData()[0].basename == 'TreeFolder' ){
qx.event.message.Bus.dispatch('sp.menu.folder',e.getData()[0].getUserData('ids'));
}
}
}
}
});
|