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

📄 treeloadingcontroller.js

📁 初学者
💻 JS
字号:
/*	Copyright (c) 2004-2006, The Dojo Foundation	All Rights Reserved.	Licensed under the Academic Free License version 2.1 or above OR the	modified BSD license. For more information on Dojo licensing, see:		http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.widget.TreeLoadingController");dojo.require("dojo.widget.TreeBasicController");dojo.require("dojo.event.*");dojo.require("dojo.json");dojo.require("dojo.io.*");dojo.widget.defineWidget("dojo.widget.TreeLoadingController", dojo.widget.TreeBasicController, {RPCUrl:"", RPCActionParam:"action", RPCErrorHandler:function (type, obj, evt) {	alert("RPC Error: " + (obj.message || "no message"));}, preventCache:true, getRPCUrl:function (action) {	if (this.RPCUrl == "local") {		var dir = document.location.href.substr(0, document.location.href.lastIndexOf("/"));		var localUrl = dir + "/" + action;		return localUrl;	}	if (!this.RPCUrl) {		dojo.raise("Empty RPCUrl: can't load");	}	return this.RPCUrl + (this.RPCUrl.indexOf("?") > -1 ? "&" : "?") + this.RPCActionParam + "=" + action;}, loadProcessResponse:function (node, result, callObj, callFunc) {	if (!dojo.lang.isUndefined(result.error)) {		this.RPCErrorHandler("server", result.error);		return false;	}	var newChildren = result;	if (!dojo.lang.isArray(newChildren)) {		dojo.raise("loadProcessResponse: Not array loaded: " + newChildren);	}	for (var i = 0; i < newChildren.length; i++) {		newChildren[i] = dojo.widget.createWidget(node.widgetType, newChildren[i]);		node.addChild(newChildren[i]);	}	node.state = node.loadStates.LOADED;	if (dojo.lang.isFunction(callFunc)) {		callFunc.apply(dojo.lang.isUndefined(callObj) ? this : callObj, [node, newChildren]);	}}, getInfo:function (obj) {	return obj.getInfo();}, runRPC:function (kw) {	var _this = this;	var handle = function (type, data, evt) {		if (kw.lock) {			dojo.lang.forEach(kw.lock, function (t) {				t.unlock();			});		}		if (type == "load") {			kw.load.call(this, data);		} else {			this.RPCErrorHandler(type, data, evt);		}	};	if (kw.lock) {		dojo.lang.forEach(kw.lock, function (t) {			t.lock();		});	}	dojo.io.bind({url:kw.url, handle:dojo.lang.hitch(this, handle), mimetype:"text/json", preventCache:_this.preventCache, sync:kw.sync, content:{data:dojo.json.serialize(kw.params)}});}, loadRemote:function (node, sync, callObj, callFunc) {	var _this = this;	var params = {node:this.getInfo(node), tree:this.getInfo(node.tree)};	this.runRPC({url:this.getRPCUrl("getChildren"), load:function (result) {		_this.loadProcessResponse(node, result, callObj, callFunc);	}, sync:sync, lock:[node], params:params});}, expand:function (node, sync, callObj, callFunc) {	if (node.state == node.loadStates.UNCHECKED && node.isFolder) {		this.loadRemote(node, sync, this, function (node, newChildren) {			this.expand(node, sync, callObj, callFunc);		});		return;	}	dojo.widget.TreeBasicController.prototype.expand.apply(this, arguments);}, doMove:function (child, newParent, index) {	if (newParent.isTreeNode && newParent.state == newParent.loadStates.UNCHECKED) {		this.loadRemote(newParent, true);	}	return dojo.widget.TreeBasicController.prototype.doMove.apply(this, arguments);}, doCreateChild:function (parent, index, data, callObj, callFunc) {	if (parent.state == parent.loadStates.UNCHECKED) {		this.loadRemote(parent, true);	}	return dojo.widget.TreeBasicController.prototype.doCreateChild.apply(this, arguments);}});

⌨️ 快捷键说明

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