Subversion Repositories Applications.papyrus

Rev

Rev 1318 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1318 Rev 1422
1
/*
1
/*
2
	Copyright (c) 2004-2006, The Dojo Foundation
2
	Copyright (c) 2004-2006, The Dojo Foundation
3
	All Rights Reserved.
3
	All Rights Reserved.
4
 
4
 
5
	Licensed under the Academic Free License version 2.1 or above OR the
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:
6
	modified BSD license. For more information on Dojo licensing, see:
7
 
7
 
8
		http://dojotoolkit.org/community/licensing.shtml
8
		http://dojotoolkit.org/community/licensing.shtml
9
*/
9
*/
-
 
10
 
-
 
11
 
10
 
12
 
11
dojo.provide("dojo.lang.repr");
13
dojo.provide("dojo.lang.repr");
12
dojo.require("dojo.lang.common");
14
dojo.require("dojo.lang.common");
13
dojo.require("dojo.AdapterRegistry");
15
dojo.require("dojo.AdapterRegistry");
14
dojo.require("dojo.string.extras");
16
dojo.require("dojo.string.extras");
15
dojo.lang.reprRegistry = new dojo.AdapterRegistry();
17
dojo.lang.reprRegistry = new dojo.AdapterRegistry();
16
dojo.lang.registerRepr = function (name, check, wrap, override) {
18
dojo.lang.registerRepr = function (name, check, wrap, override) {
17
	dojo.lang.reprRegistry.register(name, check, wrap, override);
19
	dojo.lang.reprRegistry.register(name, check, wrap, override);
18
};
20
};
19
dojo.lang.repr = function (obj) {
21
dojo.lang.repr = function (obj) {
20
	if (typeof (obj) == "undefined") {
22
	if (typeof (obj) == "undefined") {
21
		return "undefined";
23
		return "undefined";
22
	} else {
24
	} else {
23
		if (obj === null) {
25
		if (obj === null) {
24
			return "null";
26
			return "null";
25
		}
27
		}
26
	}
28
	}
27
	try {
29
	try {
28
		if (typeof (obj["__repr__"]) == "function") {
30
		if (typeof (obj["__repr__"]) == "function") {
29
			return obj["__repr__"]();
31
			return obj["__repr__"]();
30
		} else {
32
		} else {
31
			if ((typeof (obj["repr"]) == "function") && (obj.repr != arguments.callee)) {
33
			if ((typeof (obj["repr"]) == "function") && (obj.repr != arguments.callee)) {
32
				return obj["repr"]();
34
				return obj["repr"]();
33
			}
35
			}
34
		}
36
		}
35
		return dojo.lang.reprRegistry.match(obj);
37
		return dojo.lang.reprRegistry.match(obj);
36
	}
38
	}
37
	catch (e) {
39
	catch (e) {
38
		if (typeof (obj.NAME) == "string" && (obj.toString == Function.prototype.toString || obj.toString == Object.prototype.toString)) {
40
		if (typeof (obj.NAME) == "string" && (obj.toString == Function.prototype.toString || obj.toString == Object.prototype.toString)) {
39
			return obj.NAME;
41
			return obj.NAME;
40
		}
42
		}
41
	}
43
	}
42
	if (typeof (obj) == "function") {
44
	if (typeof (obj) == "function") {
43
		obj = (obj + "").replace(/^\s+/, "");
45
		obj = (obj + "").replace(/^\s+/, "");
44
		var idx = obj.indexOf("{");
46
		var idx = obj.indexOf("{");
45
		if (idx != -1) {
47
		if (idx != -1) {
46
			obj = obj.substr(0, idx) + "{...}";
48
			obj = obj.substr(0, idx) + "{...}";
47
		}
49
		}
48
	}
50
	}
49
	return obj + "";
51
	return obj + "";
50
};
52
};
51
dojo.lang.reprArrayLike = function (arr) {
53
dojo.lang.reprArrayLike = function (arr) {
52
	try {
54
	try {
53
		var na = dojo.lang.map(arr, dojo.lang.repr);
55
		var na = dojo.lang.map(arr, dojo.lang.repr);
54
		return "[" + na.join(", ") + "]";
56
		return "[" + na.join(", ") + "]";
55
	}
57
	}
56
	catch (e) {
58
	catch (e) {
57
	}
59
	}
58
};
60
};
59
(function () {
61
(function () {
60
	var m = dojo.lang;
62
	var m = dojo.lang;
61
	m.registerRepr("arrayLike", m.isArrayLike, m.reprArrayLike);
63
	m.registerRepr("arrayLike", m.isArrayLike, m.reprArrayLike);
62
	m.registerRepr("string", m.isString, m.reprString);
64
	m.registerRepr("string", m.isString, m.reprString);
63
	m.registerRepr("numbers", m.isNumber, m.reprNumber);
65
	m.registerRepr("numbers", m.isNumber, m.reprNumber);
64
	m.registerRepr("boolean", m.isBoolean, m.reprNumber);
66
	m.registerRepr("boolean", m.isBoolean, m.reprNumber);
65
})();
67
})();
66
 
68