2004-12-02 Lluis Sanchez Gual <lluis@novell.com>
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / TreeView.js
1
2 function TreeView_ToggleExpand (treeId, nodeId) {
3         var tree = getTree (treeId);
4         var spanId = treeId + "_" + nodeId;
5         var node = document.getElementById (spanId);
6         var expand = node.style.display == "none";
7         
8         if (tree.populateFromClient && expand && node.populated != true && (node.innerHTML.length == 0 || node.hasError)) {
9                 WebForm_DoCallback (treeId, nodeId, TreeView_PopulateCallback, treeId + " " + nodeId, TreeView_ErrorCallback)
10                 return;
11         }
12         
13         if (!node.hasError)
14                 node.populated = true;
15         
16         node.style.display = expand ? "block" : "none";
17         
18         var inputStates = document.forms[0][treeId + "_ExpandStates"];
19         TreeView_SetNodeFlag (inputStates, nodeId, expand);
20         
21         if (tree.showImage) {
22                 var image = document.getElementById (spanId + "_img");
23                 if (tree.defaultImages) {
24                         if (expand) image.src = image.src.replace ("plus","minus");
25                         else image.src = image.src.replace ("minus","plus");
26                 } else {
27                         if (expand) image.src = tree.collapseImage;
28                         else image.src = tree.expandImage;
29                 }
30                 var alt;
31                 if (expand) alt = tree.collapseAlt;
32                 else alt = tree.expandAlt;
33
34                 if (alt.indexOf ("{0}") != -1) {
35                         var txt = document.getElementById (spanId + "_txt").innerText;
36                         alt = alt.replace ("{0}", txt);
37                 }
38                 image.alt = alt;
39         }
40 }
41
42 function TreeView_SetNodeFlag (flagInput, nodeId, set)
43 {
44         if (!set) flagInput.value = flagInput.value.replace ("|" + nodeId + "|", "|");
45         else flagInput.value = flagInput.value + nodeId + "|";
46 }
47
48 function TreeView_PopulateCallback (data, ids)
49 {
50         var idArray = ids.split (" ");
51         var tree = getTree (idArray[0]);
52         var spanId = idArray[0] + "_" + idArray[1];
53         var node = document.getElementById (spanId);
54         node.populated = true;
55         if (data != "*") {
56                 node.innerHTML = data;
57                 TreeView_ToggleExpand (idArray[0], idArray[1]);
58         } else {
59                 if (tree.showImage && tree.noExpandImage != null) {
60                         var image = document.getElementById (spanId + "_img");
61                         image.src = tree.noExpandImage;
62                 }
63         }
64 }
65
66 function TreeView_ErrorCallback (data, ids)
67 {
68         var idArray = ids.split (" ");
69         var node = document.getElementById (idArray[0] + "_" + idArray[1]);
70         node.innerHTML = data;
71         node.populated = true;
72         TreeView_ToggleExpand (idArray[0], idArray[1]);
73         node.populated = false;
74         node.hasError = true;
75 }
76
77 function getTree (treeId) { return eval (treeId + "_data"); }