⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 docs.js

📁 struts hibernet spring
💻 JS
📖 第 1 页 / 共 2 页
字号:
					}				}			}			dojo.debug("Publishing docResults");			dojo.docs._printFnResults(results);		}	},	_printFunctionResults: function(results){		dojo.debug("_printFnResults(): called");		// summary: Call this function to send the /docs/function/results topic	},	_printPkgResult: function(results){		dojo.debug("_printPkgResult(): called");	},	_onDocSelectFunction: function(/*Object*/ input){		// summary: Get doc, meta, and src		var name = input.name;		var pkg = input.pkg;		dojo.debug("_onDocSelectFunction(" + name + ")");		if(!name){			return false;		}		if(!input.selectKey){			input.selectKey = ++dojo.docs._count;		}		input.expects = {			"docresults": ["meta", "doc", "pkgmeta"]		}		dojo.docs.getMeta(input, pkg, name, dojo.docs._onDocSelectResults);		dojo.docs.getDoc(input, pkg, name, dojo.docs._onDocSelectResults);	},	_onDocSelectPackage: function(/*Object*/ input){		dojo.debug("_onDocSelectPackage(" + input.name + ")")		input.expects = {			"pkgresults": ["pkgmeta", "pkgdoc"]		};		if(!input.selectKey){			input.selectKey = ++dojo.docs._count;		}		dojo.docs.getPkgMeta(input, input.name, dojo.docs._onPkgResults);		dojo.docs.getPkgDoc(input, input.name, dojo.docs._onPkgResults);	},	_onDocSelectResults: function(/*String*/ type, /*Object*/ data, /*Object*/ evt, /*Object*/ input){		dojo.debug("_onDocSelectResults(" + evt.type + ", " + evt.name + ")");		if(evt.type == "meta"){			dojo.docs.getPkgMeta(input, evt.pkg, dojo.docs._onDocSelectResults);		}		if(input){			input[evt.type] = data;			if(input.expects && input.expects.docresults){				for(var i = 0, expect; expect = input.expects.docresults[i]; i++){					if(!(expect in input)){						dojo.debug("_onDocSelectResults() waiting for more data");						return;					}				}			}		}		dojo.docs._printFunctionDetail(input);	},		_printFunctionDetail: function(results) {		// summary: Call this function to send the /docs/function/detail topic event	},	_buildCache: function(/*Object*/ input){		dojo.debug("_buildCache(" + input.type + ", " + input.name + ")");		// Get stuff from the input object		var type = input.type;		var pkg = input.pkg;		var callbacks = input.callbacks;		var id = input.id;		if(!id){			id = input.id = "_";		}		var name = input.name;		var selectKey = input.selectKey;		var META = "meta";		var METHODS = "methods";		var SRC = "src";		var DESCRIPTION = "description";		var INPUT = "input";		var LOAD = "load";		var ERROR = "error";				var docs = dojo.docs;		var getCache = docs._getCache;				// Stuff to pass to RPC		var search = [];			if(type == "doc"){			if(!pkg){				docs.functionPackages(selectKey, name, function(){ var a = arguments; docs._withPkg.call(this, a[0], a[1], a[2], a[3], "doc"); }, input);				return;			}else{				var cached = getCache(pkg, META, METHODS, name, id, META);							if(cached[DESCRIPTION]){					callbacks.shift()(LOAD, cached[DESCRIPTION], input, input[INPUT]);					return;				}				var obj = {};				obj.forFormName = "DocFnForm";				obj.limit = 1;				obj.filter = "it/DocFnForm/require = '" + pkg + "' and it/DocFnForm/name = '" + name + "' and ";				if(id == "_"){					obj.filter += " not(it/DocFnForm/id)";				}else{					obj.filter += " it/DocFnForm/id = '" + id + "'";				}				obj.load = function(data){					var cached = getCache(pkg, META, METHODS, name, id, META);					var description = "";					var returns = "";					if(data.list && data.list.length){						description = docs._getMainText(data.list[0]["main/text"]);						returns = data.list[0]["DocFnForm/returns"];					}					cached[DESCRIPTION]  = description;					if(!cached.returns){						cached.returns = {};					}					cached.returns.summary = returns;					input.type = "fn";					docs._gotDoc(LOAD, cached, input, input[INPUT]);								}				obj.error = function(data){					input.type = "fn";					docs._gotDoc(ERROR, {}, input, input[INPUT]);				}				search.push(obj);				obj = {};				obj.forFormName = "DocParamForm";				obj.filter = "it/DocParamForm/fns = '" + pkg + "=>" + name;				if(id != "_"){					obj.filter += "=>" + id;				}				obj.filter += "'";							obj.load = function(data){					var cache = getCache(pkg, META, METHODS, name, id, META);					for(var i = 0, param; param = data.list[i]; i++){						var pName = param["DocParamForm/name"];						if(!cache.parameters[pName]){							cache.parameters[pName] = {};						}						cache.parameters[pName].summary = param["DocParamForm/desc"];					}					input.type = "param";					docs._gotDoc(LOAD, cache.parameters, input);				}				obj.error = function(data){					input.type = "param";					docs._gotDoc(ERROR, {}, input);				}				search.push(obj);			}		}else if(type == "pkgdoc"){			var cached = getCache(name, META);			if(cached[DESCRIPTION]){				callbacks.shift()(LOAD, {description: cached[DESCRIPTION], path: cached.path}, input, input.input);				return;			}			var obj = {};			obj.forFormName = "DocPkgForm";			obj.limit = 1;			obj.filter = "it/DocPkgForm/require = '" + name + "'";						obj.load = function(data){				var description = "";				var list = data.list;				if(list && list.length && list[0]["main/text"]){					description = docs._getMainText(list[0]["main/text"]);					cached[DESCRIPTION] = description;					cached.path = list[0].name;				}				if(callbacks && callbacks.length){					callbacks.shift()(LOAD, {description: description, path: cached.path}, input, input.input);				}			}			obj.error = function(data){				if(callbacks && callbacks.length){					callbacks.shift()(ERROR, "", input, input.input);				}			}			search.push(obj);		}else if(type == "function_names"){			var cached = getCache();			if(!cached.function_names){				dojo.debug("_buildCache() new cache");				if(callbacks && callbacks.length){					docs._callbacks.function_names.push([input, callbacks.shift()]);				}				cached.function_names = {loading: true};								var obj = {};				obj.url = "function_names";				obj.load = function(type, data, evt){					cached.function_names = data;					while(docs._callbacks.function_names.length){						var parts = docs._callbacks.function_names.pop();						parts[1](LOAD, data, parts[0]);					}				}				obj.error = function(type, data, evt){					while(docs._callbacks.function_names.length){						var parts = docs._callbacks.function_names.pop();						parts[1](LOAD, {}, parts[0]);					}				}				search.push(obj);			}else if(cached.function_names.loading){				dojo.debug("_buildCache() loading cache, adding to callback list");				if(callbacks && callbacks.length){					docs._callbacks.function_names.push([input, callbacks.shift()]);				}				return;			}else{				dojo.debug("_buildCache() loading from cache");				if(callbacks && callbacks.length){					callbacks.shift()(LOAD, cached.function_names, input);				}				return;			}		}else if(type == META || type == SRC){			if(!pkg){				if(type == META){					docs.functionPackages(selectKey, name, function(){ var a = arguments; docs._withPkg.call(this, a[0], a[1], a[2], a[3], META); }, input);					return;				}else{					docs.functionPackages(selectKey, name, function(){ var a = arguments; docs._withPkg.call(this, a[0], a[1], a[2], a[3], SRC); }, input);					return;				}			}else{				var cached = getCache(pkg, META, METHODS, name, id);				if(cached[type] && cached[type].returns){					if(callbacks && callbacks.length){						callbacks.shift()(LOAD, cached[type], input);						return;					}				}				dojo.debug("Finding " + type + " for: " + pkg + ", function: " + name + ", id: " + id);				var obj = {};				if(type == SRC){					obj.mimetype = "text/plain"				}				obj.url = pkg + "/" + name + "/" + id + "/" + type;				obj.load = function(type, data, evt){					dojo.debug("_buildCache() loaded " + input.type);					if(input.type == SRC){						getCache(pkg, META, METHODS, name, id).src = data;						if(callbacks && callbacks.length){							callbacks.shift()(LOAD, data, input, input[INPUT]);						}					}else{						var cache = getCache(pkg, META, METHODS, name, id, META);						if(!cache.parameters){							cache.parameters = {};						}						for(var i = 0, param; param = data.parameters[i]; i++){							if(!cache.parameters[param[1]]){								cache.parameters[param[1]] = {};							}							cache.parameters[param[1]].type = param[0];						}						if(!cache.returns){							cache.returns = {};						}						cache.returns.type = data.returns;					}					if(callbacks && callbacks.length){						callbacks.shift()(LOAD, cache, input, input[INPUT]);					}				}				obj.error = function(type, data, evt){					if(callbacks && callbacks.length){						callbacks.shift()(ERROR, {}, input, input[INPUT]);					}				}			}			search.push(obj);		}else if(type == "pkgmeta"){			var cached = getCache(name, "meta");			if(cached.requires){				if(callbacks && callbacks.length){					callbacks.shift()(LOAD, cached, input, input[INPUT]);					return;				}			}			dojo.debug("Finding package meta for: " + name);			var obj = {};			obj.url = name + "/meta";			obj.load = function(type, data, evt){				dojo.debug("_buildCache() loaded for: " + name);						var methods = data.methods;				if(methods){					for(var method in methods){						if (method == "is") {							continue;						}						for(var pId in methods[method]){							getCache(name, META, METHODS, method, pId, META).summary = methods[method][pId];						}					}				}				var requires = data.requires;				var cache = getCache(name, META);				if(requires){					cache.requires = requires;				}				if(callbacks && callbacks.length){					callbacks.shift()(LOAD, cache, input, input[INPUT]);				}			}			obj.error = function(type, data, evt){				if(callbacks && callbacks.length){					callbacks.shift()(ERROR, {}, input, input[INPUT]);				}			}			search.push(obj);		}				for(var i = 0, obj; obj = search[i]; i++){			var load = obj.load;			var error = obj.error;			delete obj.load;			delete obj.error;			var mimetype = obj.mimetype;			if(!mimetype){				mimetype = "text/json"			}			if(obj.url){				dojo.io.bind({					url: new dojo.uri.Uri(docs._url, obj.url),					input: input,					mimetype: mimetype,					error: error,					load: load				});			}else{				docs._rpc.callRemote("search", obj).addCallbacks(load, error);			}		}	},	selectFunction: function(/*String*/ name, /*String?*/ id){		// summary: The combined information	},	savePackage: function(/*Object*/ callbackObject, /*String*/ callback, /*Object*/ parameters){		dojo.event.kwConnect({			srcObj: dojo.docs,			srcFunc: "_savedPkgRpc",			targetObj: callbackObject,			targetFunc: callback,			once: true		});				var props = {};		var cache = dojo.docs._getCache(parameters.pkg, "meta");		var i = 1;		if(!cache.path){			var path = "id";			props[["pname", i].join("")] = "DocPkgForm/require";			props[["pvalue", i++].join("")] = parameters.pkg;		}else{			var path = cache.path;		}		props.form = "//DocPkgForm";		props.path = ["/WikiHome/DojoDotDoc/", path].join("");		if(parameters.description){			props[["pname", i].join("")] = "main/text";			props[["pvalue", i++].join("")] = parameters.description;		}				dojo.docs._rpc.callRemote("saveForm",	props).addCallbacks(dojo.docs._pkgRpc, dojo.docs._pkgRpc);	},	_pkgRpc: function(data){		if(data.name){			dojo.docs._getCache(data["DocPkgForm/require"], "meta").path = data.name;			dojo.docs._savedPkgRpc("load");		}else{			dojo.docs._savedPkgRpc("error");		}	},	_savedPkgRpc: function(type){	},	functionPackages: function(/*mixed*/ selectKey, /*String*/ name, /*Function*/ callback, /*Object*/ input){		// summary: Gets the package associated with a function and stores it in the .pkg value of input		dojo.debug("functionPackages() name: " + name);		if(!input){			input = {};		}		if(!input.callbacks){			input.callbacks = [];		}		input.type = "function_names";		input.name = name;		input.callbacks.unshift(callback);		input.callbacks.unshift(dojo.docs._functionPackages);		dojo.docs._buildCache(input);	},	_functionPackages: function(/*String*/ type, /*Array*/ data, /*Object*/ evt){		dojo.debug("_functionPackages() name: " + evt.name);		evt.pkg = '';		var results = [];		var data = dojo.docs._cache['function_names'];		for(var key in data){			if(dojo.lang.inArray(data[key], evt.name)){				dojo.debug("_functionPackages() package: " + key);				results.push(key);			}		}		if(evt.callbacks && evt.callbacks.length){			evt.callbacks.shift()(type, results, evt, evt.input);		}	},	setUserName: function(/*String*/ name){		dojo.docs._userName = name;		if(name && dojo.docs._password){			dojo.docs._logIn();		}	},	setPassword: function(/*String*/ password){		dojo.docs._password = password;		if(password && dojo.docs._userName){			dojo.docs._logIn();		}	},	_logIn: function(){		dojo.io.bind({			url: dojo.docs._rpc.serviceUrl.toString(),			method: "post",			mimetype: "text/json",			content: {				username: dojo.docs._userName,				password: dojo.docs._password			},			load: function(type, data){				if(data.error){					dojo.docs.logInSuccess();				}else{					dojo.docs.logInFailure();				}			},			error: function(){				dojo.docs.logInFailure();			}		});	},	logInSuccess: function(){},	logInFailure: function(){},	_set: function(/*Object*/ base, /*String...*/ keys, /*String*/ value){		var args = [];		for(var i = 0, arg; arg = arguments[i]; i++){			args.push(arg);		}		if(args.length < 3) return;		base = args.shift();		value = args.pop();		var key = args.pop();		for(var i = 0, arg; arg = args[i]; i++){			if(typeof base[arg] != "object"){				base[arg] = {};			}			base = base[arg];		}		base[key] = value;	},	_getCache: function(/*String...*/ keys){		var obj = dojo.docs._cache;		for(var i = 0; i < arguments.length; i++){			var arg = arguments[i];			if(!obj[arg]){				obj[arg] = {};			}			obj = obj[arg];		}		return obj;	}});dojo.event.topic.subscribe("/docs/search", dojo.docs, "_onDocSearch");dojo.event.topic.subscribe("/docs/function/select", dojo.docs, "_onDocSelectFunction");dojo.event.topic.subscribe("/docs/package/select", dojo.docs, "_onDocSelectPackage");dojo.event.topic.registerPublisher("/docs/function/results", dojo.docs, "_printFunctionResults");dojo.event.topic.registerPublisher("/docs/function/detail", dojo.docs, "_printFunctionDetail");dojo.event.topic.registerPublisher("/docs/package/detail", dojo.docs, "_printPkgResult");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -