Mercurial > hg > digilib-old
annotate client/digitallibrary/greyskin/debug.js @ 474:fb51443ca0ee
modified DocuDirent.compareTo instead of ImageFileset.compareTo
author | hertzhaft |
---|---|
date | Wed, 12 Apr 2006 14:12:37 +0200 |
parents | 84aee0e6d64e |
children | b9b8e54ed3bb |
rev | line source |
---|---|
409 | 1 var Debug; |
2 var _now = {}; | |
3 | |
4 function newElement(tagname, content) { | |
5 // creates a new element, adding node or text content if given | |
6 var elem = document.createElement(tagname); | |
7 if (content) elem.appendChild(content.nodeType | |
8 ? content // content is a node | |
9 : document.createTextNode(content) // content is a string | |
10 ); | |
11 return elem; | |
12 } | |
13 | |
14 function appendNewElement(node, tagname, content) { | |
15 // appends a new element to "node", adding content if given | |
16 if (!node.appendChild) { | |
427 | 17 alert("Could not append '" + tagname + "' to " + typeof(node)); |
409 | 18 return null; |
19 } | |
20 return node.appendChild(newElement(tagname, content)); | |
21 } | |
22 | |
23 function getDebug() { | |
24 if (Debug == null) { | |
25 Debug = document.getElementById('debug'); | |
26 if (Debug == null) { | |
27 if (!document.body) return null; | |
28 // its still too early! | |
29 Debug = appendNewElement(document.body, 'div'); | |
30 Debug.setAttribute('id', 'debug'); | |
31 Debug.className = 'debug'; | |
32 Debug.innerhtml = '<p class="debug">Debug</p>'; | |
33 }; | |
34 }; | |
35 return Debug; | |
36 } | |
37 | |
38 function debug() { | |
39 var msg = ""; | |
40 for (var i = 0; i<arguments.length; i++) | |
41 msg += arguments[i] + " "; | |
42 var D = getDebug(); | |
43 if (!D) { | |
44 alert("Debug div not present!\n" + msg); | |
45 return null; | |
46 } | |
47 return appendNewElement(D, "p", msg); | |
48 } | |
49 | |
414
68c26335e880
added debugProps() method for viewing an object's properties
hertzhaft
parents:
409
diff
changeset
|
50 function debugProps(obj, msg) { |
68c26335e880
added debugProps() method for viewing an object's properties
hertzhaft
parents:
409
diff
changeset
|
51 var D = getDebug(); |
68c26335e880
added debugProps() method for viewing an object's properties
hertzhaft
parents:
409
diff
changeset
|
52 if (msg) appendNewElement(D, "h1", msg); |
68c26335e880
added debugProps() method for viewing an object's properties
hertzhaft
parents:
409
diff
changeset
|
53 for (var item in obj) { |
68c26335e880
added debugProps() method for viewing an object's properties
hertzhaft
parents:
409
diff
changeset
|
54 var typ = typeof(obj[item]); |
68c26335e880
added debugProps() method for viewing an object's properties
hertzhaft
parents:
409
diff
changeset
|
55 if (typ != "function") appendNewElement(D, "p", |
68c26335e880
added debugProps() method for viewing an object's properties
hertzhaft
parents:
409
diff
changeset
|
56 item |
68c26335e880
added debugProps() method for viewing an object's properties
hertzhaft
parents:
409
diff
changeset
|
57 + " (" + typ + "): " |
68c26335e880
added debugProps() method for viewing an object's properties
hertzhaft
parents:
409
diff
changeset
|
58 + obj[item] |
68c26335e880
added debugProps() method for viewing an object's properties
hertzhaft
parents:
409
diff
changeset
|
59 ); |
68c26335e880
added debugProps() method for viewing an object's properties
hertzhaft
parents:
409
diff
changeset
|
60 }; |
68c26335e880
added debugProps() method for viewing an object's properties
hertzhaft
parents:
409
diff
changeset
|
61 } |
68c26335e880
added debugProps() method for viewing an object's properties
hertzhaft
parents:
409
diff
changeset
|
62 |
68c26335e880
added debugProps() method for viewing an object's properties
hertzhaft
parents:
409
diff
changeset
|
63 function debugObject(obj, msg) { |
68c26335e880
added debugProps() method for viewing an object's properties
hertzhaft
parents:
409
diff
changeset
|
64 if (msg) appendNewElement(D, "h1", msg); |
409 | 65 var D = getDebug(); |
66 var A = new Array(); | |
67 for (var i in obj) A[i] = typeof(obj[i]); | |
68 var T = appendNewElement(D, "table"); | |
69 for (var item in A) { | |
70 var TR = appendNewElement(T, "tr"); | |
414
68c26335e880
added debugProps() method for viewing an object's properties
hertzhaft
parents:
409
diff
changeset
|
71 appendNewElement(TR, "td", newElement("b", item)); |
409 | 72 appendNewElement(TR, "td", A[item]); |
73 if (A[item] == "function") | |
74 appendNewElement(TR, "td", A[item].toSource()); | |
75 }; | |
76 } | |
77 | |
78 function strObject(obj) { | |
79 var res = ""; | |
80 var A = new Array(); | |
81 for (var i in obj) A[i] = typeof(obj[i]); | |
82 for (var item in A) { | |
83 typ = A[item]; | |
84 res += item + " (" + typ + "): "; | |
85 if (typ != "function") res += obj[item]; | |
86 res += "\n"; | |
87 } | |
88 return res; | |
89 } | |
90 | |
91 function alertObject(obj) { | |
92 return alert(strObject(obj)); | |
93 } | |
94 | |
95 function startTime(s) { | |
96 _now[s] = new Date(); | |
97 } | |
98 | |
99 function elapsedTime(s) { | |
100 var diff = new Date(new Date - _now[s]); | |
101 debug(s + ": " + diff.getSeconds() + "." + diff.getMilliseconds() + " sec."); | |
102 } |