Subversion Repositories Applications.papyrus

Rev

Rev 1318 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1318 alexandre_ 1
/*
2
	Copyright (c) 2004-2006, The Dojo Foundation
3
	All Rights Reserved.
4
 
5
	Licensed under the Academic Free License version 2.1 or above OR the
6
	modified BSD license. For more information on Dojo licensing, see:
7
 
8
		http://dojotoolkit.org/community/licensing.shtml
9
*/
10
 
11
dojo.provide("dojo.debug.console");
12
dojo.require("dojo.logging.ConsoleLogger");
13
if (window.console) {
14
	if (console.info != null) {
15
		dojo.hostenv.println = function () {
16
			if (!djConfig.isDebug) {
17
				return;
18
			}
19
			console.info.apply(console, arguments);
20
		};
21
		dojo.debug = dojo.hostenv.println;
22
		dojo.debugDeep = dojo.debug;
23
		dojo.debugShallow = function (obj, showMethods, sort) {
24
			if (!djConfig.isDebug) {
25
				return;
26
			}
27
			showMethods = (showMethods != false);
28
			sort = (sort != false);
29
			if (obj == null || obj.constructor == null) {
30
				return dojo.debug(obj);
31
			}
32
			var type = obj.declaredClass;
33
			if (type == null) {
34
				type = obj.constructor.toString().match(/function\s*(.*)\(/);
35
				if (type) {
36
					type = type[1];
37
				}
38
			}
39
			if (type) {
40
				if (type == "String" || type == "Number") {
41
					return dojo.debug(type + ": ", obj);
42
				}
43
				if (showMethods && !sort) {
44
					var sortedObj = obj;
45
				} else {
46
					var propNames = [];
47
					if (showMethods) {
48
						for (var prop in obj) {
49
							propNames.push(prop);
50
						}
51
					} else {
52
						for (var prop in obj) {
53
							if (typeof obj[prop] != "function") {
54
								propNames.push(prop);
55
							} else {
56
								dojo.debug(prop);
57
							}
58
						}
59
					}
60
					if (sort) {
61
						propNames.sort();
62
					}
63
					var sortedObj = {};
64
					dojo.lang.forEach(propNames, function (prop) {
65
						sortedObj[prop] = obj[prop];
66
					});
67
				}
68
				return dojo.debug(type + ": %o\n%2.o", obj, sortedObj);
69
			}
70
			return dojo.debug(obj.constructor + ": ", obj);
71
		};
72
	} else {
73
		if (console.log != null) {
74
			dojo.hostenv.println = function () {
75
				if (!djConfig.isDebug) {
76
					return;
77
				}
78
				var args = dojo.lang.toArray(arguments);
79
				console.log("DEBUG: " + args.join(" "));
80
			};
81
			dojo.debug = dojo.hostenv.println;
82
		} else {
83
			dojo.debug("dojo.debug.console requires Firebug > 0.4");
84
		}
85
	}
86
} else {
87
	if (dojo.render.html.opera) {
88
		if (opera && opera.postError) {
89
			dojo.hostenv.println = opera.postError;
90
		} else {
91
			dojo.debug("dojo.debug.Opera requires Opera > 8.0");
92
		}
93
	}
94
}
95