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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }