Subversion Repositories Applications.papyrus

Rev

Go to most recent revision | Details | 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.lang.extras");
12
dojo.require("dojo.lang.common");
13
dojo.lang.setTimeout = function (func, delay) {
14
	var context = window, argsStart = 2;
15
	if (!dojo.lang.isFunction(func)) {
16
		context = func;
17
		func = delay;
18
		delay = arguments[2];
19
		argsStart++;
20
	}
21
	if (dojo.lang.isString(func)) {
22
		func = context[func];
23
	}
24
	var args = [];
25
	for (var i = argsStart; i < arguments.length; i++) {
26
		args.push(arguments[i]);
27
	}
28
	return dojo.global().setTimeout(function () {
29
		func.apply(context, args);
30
	}, delay);
31
};
32
dojo.lang.clearTimeout = function (timer) {
33
	dojo.global().clearTimeout(timer);
34
};
35
dojo.lang.getNameInObj = function (ns, item) {
36
	if (!ns) {
37
		ns = dj_global;
38
	}
39
	for (var x in ns) {
40
		if (ns[x] === item) {
41
			return new String(x);
42
		}
43
	}
44
	return null;
45
};
46
dojo.lang.shallowCopy = function (obj, deep) {
47
	var i, ret;
48
	if (obj === null) {
49
		return null;
50
	}
51
	if (dojo.lang.isObject(obj)) {
52
		ret = new obj.constructor();
53
		for (i in obj) {
54
			if (dojo.lang.isUndefined(ret[i])) {
55
				ret[i] = deep ? dojo.lang.shallowCopy(obj[i], deep) : obj[i];
56
			}
57
		}
58
	} else {
59
		if (dojo.lang.isArray(obj)) {
60
			ret = [];
61
			for (i = 0; i < obj.length; i++) {
62
				ret[i] = deep ? dojo.lang.shallowCopy(obj[i], deep) : obj[i];
63
			}
64
		} else {
65
			ret = obj;
66
		}
67
	}
68
	return ret;
69
};
70
dojo.lang.firstValued = function () {
71
	for (var i = 0; i < arguments.length; i++) {
72
		if (typeof arguments[i] != "undefined") {
73
			return arguments[i];
74
		}
75
	}
76
	return undefined;
77
};
78
dojo.lang.getObjPathValue = function (objpath, context, create) {
79
	with (dojo.parseObjPath(objpath, context, create)) {
80
		return dojo.evalProp(prop, obj, create);
81
	}
82
};
83
dojo.lang.setObjPathValue = function (objpath, value, context, create) {
84
	dojo.deprecated("dojo.lang.setObjPathValue", "use dojo.parseObjPath and the '=' operator", "0.6");
85
	if (arguments.length < 4) {
86
		create = true;
87
	}
88
	with (dojo.parseObjPath(objpath, context, create)) {
89
		if (obj && (create || (prop in obj))) {
90
			obj[prop] = value;
91
		}
92
	}
93
};
94