Mercurial > projects > dang
annotate docs/candydoc/tree.js @ 211:9e9f3e7e342b default tip
Added dang folder and Module in ast.
author | Anders Johnsen <skabet@gmail.com> |
---|---|
date | Tue, 12 Aug 2008 20:07:35 +0200 |
parents | d3c148ca429b |
children |
rev | line source |
---|---|
200
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
1 /* This file is a part of CanDyDOC fileset. |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
2 File is written by Victor Nakoryakov and placed into the public domain. |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
3 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
4 This file is javascript with classes that represents native style tree control. */ |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
5 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
6 var pmNone = 0; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
7 var pmPlus = 1; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
8 var pmMinus = 2; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
9 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
10 var hlNone = 0; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
11 var hlGrey = 1; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
12 var hlSelected = 2; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
13 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
14 function TreeView(hrefMode) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
15 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
16 this.domEntry = document.createElement("div"); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
17 this.children = new Array(); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
18 this.selection = null; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
19 this.hrefMode = hrefMode; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
20 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
21 this.createBranch = function(text, iconSrc) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
22 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
23 var root = new TreeNode(text, iconSrc, this.hrefMode); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
24 root.owner = this; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
25 this.children[ this.children.length ] = root; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
26 this.domEntry.appendChild( root.domEntry ); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
27 return root; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
28 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
29 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
30 this.branch = function(text) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
31 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
32 var ret = null; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
33 for (var i = 0; i < this.children.length; ++i) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
34 if (this.children[i].textElement.data == text) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
35 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
36 ret = this.children[i]; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
37 break; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
38 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
39 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
40 return ret; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
41 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
42 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
43 this.domEntry.style.fontSize = "10px"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
44 this.domEntry.style.cursor = "default"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
45 this.domEntry.style.whiteSpace = "nowrap"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
46 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
47 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
48 var idCounter = 0; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
49 function TreeNode(text, iconSrc, hrefMode) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
50 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
51 this.id = idCounter++; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
52 this.parentNode = null; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
53 this.children = new Array(); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
54 this.domEntry = document.createElement("div"); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
55 this.icon = document.createElement("img"); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
56 this.textElement = document.createTextNode(text); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
57 this.textSpan = document.createElement("span"); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
58 this.lineDiv = document.createElement("div"); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
59 this.hierarchyImgs = new Array(); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
60 this.onclick = null; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
61 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
62 function createIcon() |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
63 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
64 var img = document.createElement("img"); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
65 img.style.verticalAlign = "middle"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
66 img.style.position = "relative"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
67 img.style.top = "-1px"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
68 img.width = 16; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
69 img.height = 16; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
70 return img; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
71 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
72 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
73 function createHierarchyImage() |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
74 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
75 var img = createIcon(); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
76 img.pointsTop = false; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
77 img.pointsBottom = false; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
78 img.pointsRight = false; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
79 img.pmState = pmNone; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
80 return img; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
81 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
82 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
83 function genHierarchyImageSrc(hierarchyImg) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
84 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
85 var name = ""; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
86 if (hierarchyImg.pointsTop) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
87 name += "t"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
88 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
89 if (hierarchyImg.pointsBottom) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
90 name += "b"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
91 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
92 if (hierarchyImg.pointsRight) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
93 name += "r"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
94 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
95 if (hierarchyImg.pmState == pmPlus) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
96 name += "p"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
97 else if (hierarchyImg.pmState == pmMinus) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
98 name += "m"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
99 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
100 if (name == "") |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
101 name = "shim"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
102 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
103 return "candydoc/img/tree/" + name + ".gif"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
104 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
105 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
106 function setSrc(icon, src) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
107 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
108 icon.src = src; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
109 // After src change width and height are reseted in IE. |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
110 // Bug workaround: |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
111 icon.width = 16; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
112 icon.height = 16; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
113 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
114 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
115 this.createChild = function(text, iconSrc) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
116 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
117 var child = new TreeNode(text, iconSrc, this.owner.hrefMode); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
118 this.children[ this.children.length ] = child; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
119 this.domEntry.appendChild( child.domEntry ); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
120 child.parentNode = this; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
121 child.owner = this.owner; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
122 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
123 // insert hierarchy images according to deepness level |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
124 // of created child. |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
125 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
126 if (this.children.length > 1) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
127 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
128 // there were already added child before. So copy `level-1` |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
129 // hierarchy images from it. |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
130 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
131 var prevAddedChild = this.children[ this.children.length - 2 ]; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
132 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
133 for (var i = 0; i < prevAddedChild.hierarchyImgs.length - 1; ++i) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
134 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
135 var prevAddedChildImg = prevAddedChild.hierarchyImgs[i]; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
136 var img = createHierarchyImage(); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
137 setSrc(img, prevAddedChildImg.src); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
138 img.pointsTop = prevAddedChildImg.pointsTop; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
139 img.pointsBottom = prevAddedChildImg.pointsBottom; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
140 img.pointsRight = prevAddedChildImg.pointsRight; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
141 img.pmState = prevAddedChildImg.pmState; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
142 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
143 child.hierarchyImgs[ child.hierarchyImgs.length ] = img; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
144 child.lineDiv.insertBefore(img, child.icon); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
145 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
146 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
147 // change last hierarchy image of prevAddedChild from |_ to |- |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
148 var lastHierarchyImg = prevAddedChild.hierarchyImgs[ prevAddedChild.hierarchyImgs.length - 1 ]; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
149 lastHierarchyImg.pointsBottom = true; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
150 setSrc(lastHierarchyImg, genHierarchyImageSrc(lastHierarchyImg)); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
151 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
152 // change hierarchy images of prevAddedChild's children on it's last |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
153 // level to | |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
154 prevAddedChild.addHierarchyTBLine(prevAddedChild.hierarchyImgs.length - 1); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
155 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
156 else |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
157 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
158 // this is a first child. So copy `level-2` |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
159 // hierarchy images from parent, i.e. this. |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
160 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
161 for (var i = 0; i < this.hierarchyImgs.length - 1; ++i) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
162 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
163 var parentImg = this.hierarchyImgs[i]; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
164 var img = createHierarchyImage(); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
165 setSrc(img, parentImg.src); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
166 img.pointsTop = parentImg.pointsTop; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
167 img.pointsBottom = parentImg.pointsBottom; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
168 img.pointsRight = parentImg.pointsRight; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
169 img.pmState = parentImg.pmState; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
170 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
171 child.hierarchyImgs[ child.hierarchyImgs.length ] = img; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
172 child.lineDiv.insertBefore(img, child.icon); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
173 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
174 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
175 if (this.hierarchyImgs.length > 0) // we are not root |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
176 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
177 // change last hierarchy image of parent (i.e. this): add minus to it |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
178 var lastHierarchyImg = this.hierarchyImgs[ this.hierarchyImgs.length - 1]; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
179 lastHierarchyImg.pmState = pmMinus; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
180 setSrc(lastHierarchyImg, genHierarchyImageSrc(lastHierarchyImg)); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
181 lastHierarchyImg.owner = this; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
182 lastHierarchyImg.onclick = new Function("e", "this.owner.processPMClick(e);"); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
183 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
184 // make decision on image on `level-1`. It depends on parent's (ie this) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
185 // image on same level. |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
186 var parentL1HierarchyImg = lastHierarchyImg; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
187 var l1HierarchyImg = createHierarchyImage(); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
188 if (parentL1HierarchyImg.pointsBottom) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
189 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
190 l1HierarchyImg.pointsTop = true; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
191 l1HierarchyImg.pointsBottom = true; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
192 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
193 setSrc(l1HierarchyImg, genHierarchyImageSrc(l1HierarchyImg)); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
194 child.hierarchyImgs[ child.hierarchyImgs.length ] = l1HierarchyImg; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
195 child.lineDiv.insertBefore(l1HierarchyImg, child.icon); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
196 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
197 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
198 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
199 // in any case on last level our child will have icon |_ |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
200 var img = createHierarchyImage(); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
201 img.pointsTop = true; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
202 img.pointsRight = true; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
203 setSrc(img, genHierarchyImageSrc(img)); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
204 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
205 child.hierarchyImgs[ child.hierarchyImgs.length ] = img; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
206 child.lineDiv.insertBefore(img, child.icon); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
207 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
208 return child; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
209 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
210 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
211 this.lastChild = function() |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
212 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
213 return this.children[ this.children.length - 1 ]; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
214 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
215 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
216 this.child = function(text) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
217 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
218 var ret = null; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
219 for (var i = 0; i < this.children.length; ++i) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
220 if (this.children[i].textElement.data == text) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
221 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
222 ret = this.children[i]; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
223 break; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
224 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
225 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
226 return ret; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
227 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
228 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
229 this.addHierarchyTBLine = function(level) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
230 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
231 for (var i = 0; i < this.children.length; ++i) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
232 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
233 var img = this.children[i].hierarchyImgs[level]; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
234 img.pointsTop = true; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
235 img.pointsBottom = true; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
236 setSrc(img, genHierarchyImageSrc(img)); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
237 this.children[i].addHierarchyTBLine(level); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
238 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
239 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
240 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
241 this.expand = function() |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
242 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
243 var img = this.hierarchyImgs[ this.hierarchyImgs.length - 1 ]; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
244 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
245 if (img.pmState == pmPlus) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
246 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
247 img.pmState = pmMinus; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
248 setSrc(img, genHierarchyImageSrc(img)); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
249 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
250 for (var i = 0; i < this.children.length; ++i) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
251 this.children[i].domEntry.style.display = ""; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
252 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
253 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
254 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
255 this.collapse = function() |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
256 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
257 var img = this.hierarchyImgs[ this.hierarchyImgs.length - 1 ]; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
258 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
259 if (img.pmState == pmMinus) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
260 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
261 img.pmState = pmPlus; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
262 setSrc(img, genHierarchyImageSrc(img)); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
263 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
264 for (var i = 0; i < this.children.length; ++i) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
265 this.children[i].domEntry.style.display = "none"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
266 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
267 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
268 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
269 this.toggle = function() |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
270 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
271 var img = this.hierarchyImgs[ this.hierarchyImgs.length - 1 ]; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
272 if (img.pmState == pmMinus) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
273 this.collapse(); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
274 else |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
275 this.expand(); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
276 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
277 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
278 this.select = function() |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
279 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
280 if (this.owner.selection != this) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
281 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
282 if (this.owner.selection) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
283 this.owner.selection.setHighlight(hlNone); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
284 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
285 this.owner.selection = this; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
286 this.setHighlight(hlSelected); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
287 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
288 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
289 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
290 this.setHighlight = function(mode) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
291 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
292 if (mode == hlNone) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
293 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
294 this.textSpan.style.backgroundColor = ""; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
295 this.textSpan.style.color = ""; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
296 this.textSpan.style.border = ""; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
297 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
298 else if (mode == hlGrey) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
299 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
300 this.textSpan.style.backgroundColor = "#aaaaaa"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
301 this.textSpan.style.color = ""; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
302 this.textSpan.style.border = ""; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
303 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
304 else if (mode == hlSelected) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
305 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
306 this.textSpan.style.backgroundColor = "3399cc"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
307 this.textSpan.style.color = "white"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
308 this.textSpan.style.border = "dotted 1px red"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
309 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
310 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
311 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
312 this.setOnclick = function(proc) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
313 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
314 this.onclick = proc; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
315 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
316 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
317 this.setRef = function(url) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
318 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
319 if (this.anchor) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
320 this.anchor.href = url; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
321 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
322 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
323 this.processPMClick = function(e) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
324 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
325 this.toggle(); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
326 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
327 // prevent this line selection, stop bubbling |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
328 if (e) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
329 e.stopPropagation(); // Mozilla way |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
330 if (window.event) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
331 window.event.cancelBubble = true; // IE way |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
332 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
333 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
334 this.processOnclick = function() |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
335 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
336 this.select(); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
337 if (this.onclick instanceof Function) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
338 this.onclick(); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
339 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
340 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
341 /////////////////////////////////////////////////////////////////////////// |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
342 if (iconSrc) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
343 this.icon.src = iconSrc; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
344 else |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
345 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
346 this.icon.width = 0; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
347 this.icon.height = 0; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
348 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
349 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
350 this.icon.style.verticalAlign = "middle"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
351 this.icon.style.position = "relative"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
352 this.icon.style.top = "-1px"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
353 this.icon.style.paddingRight = "2px"; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
354 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
355 if (!hrefMode) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
356 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
357 this.textSpan.appendChild( this.textElement ); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
358 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
359 else |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
360 { |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
361 this.anchor = document.createElement("a"); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
362 this.anchor.appendChild( this.textElement ); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
363 this.textSpan.appendChild( this.anchor ); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
364 } |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
365 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
366 this.lineDiv.appendChild( this.icon ); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
367 this.lineDiv.appendChild( this.textSpan ); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
368 this.domEntry.appendChild( this.lineDiv ); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
369 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
370 this.lineDiv.owner = this; |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
371 |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
372 if (!hrefMode) |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
373 this.lineDiv.onclick = new Function("this.owner.processOnclick();"); |
4c121c2aa844
Added candydoc files for docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
374 } |