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

📄 treebasiccontroller.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.TreeBasicController");dojo.require("dojo.event.*");dojo.require("dojo.json");dojo.require("dojo.io.*");dojo.widget.defineWidget("dojo.widget.TreeBasicController", dojo.widget.HtmlWidget, {widgetType:"TreeBasicController", DNDController:"", dieWithTree:false, initialize:function (args, frag) {	if (this.DNDController == "create") {		dojo.require("dojo.dnd.TreeDragAndDrop");		this.DNDController = new dojo.dnd.TreeDNDController(this);	}}, listenTree:function (tree) {	dojo.event.topic.subscribe(tree.eventNames.createDOMNode, this, "onCreateDOMNode");	dojo.event.topic.subscribe(tree.eventNames.treeClick, this, "onTreeClick");	dojo.event.topic.subscribe(tree.eventNames.treeCreate, this, "onTreeCreate");	dojo.event.topic.subscribe(tree.eventNames.treeDestroy, this, "onTreeDestroy");	if (this.DNDController) {		this.DNDController.listenTree(tree);	}}, unlistenTree:function (tree) {	dojo.event.topic.unsubscribe(tree.eventNames.createDOMNode, this, "onCreateDOMNode");	dojo.event.topic.unsubscribe(tree.eventNames.treeClick, this, "onTreeClick");	dojo.event.topic.unsubscribe(tree.eventNames.treeCreate, this, "onTreeCreate");	dojo.event.topic.unsubscribe(tree.eventNames.treeDestroy, this, "onTreeDestroy");}, onTreeDestroy:function (message) {	var tree = message.source;	this.unlistenTree(tree);	if (this.dieWithTree) {		this.destroy();	}}, onCreateDOMNode:function (message) {	var node = message.source;	if (node.expandLevel > 0) {		this.expandToLevel(node, node.expandLevel);	}}, onTreeCreate:function (message) {	var tree = message.source;	var _this = this;	if (tree.expandLevel) {		dojo.lang.forEach(tree.children, function (child) {			_this.expandToLevel(child, tree.expandLevel - 1);		});	}}, expandToLevel:function (node, level) {	if (level == 0) {		return;	}	var children = node.children;	var _this = this;	var handler = function (node, expandLevel) {		this.node = node;		this.expandLevel = expandLevel;		this.process = function () {			for (var i = 0; i < this.node.children.length; i++) {				var child = node.children[i];				_this.expandToLevel(child, this.expandLevel);			}		};	};	var h = new handler(node, level - 1);	this.expand(node, false, h, h.process);}, onTreeClick:function (message) {	var node = message.source;	if (node.isLocked()) {		return false;	}	if (node.isExpanded) {		this.collapse(node);	} else {		this.expand(node);	}}, expand:function (node, sync, callObj, callFunc) {	node.expand();	if (callFunc) {		callFunc.apply(callObj, [node]);	}}, collapse:function (node) {	node.collapse();}, canMove:function (child, newParent) {	if (child.actionIsDisabled(child.actions.MOVE)) {		return false;	}	if (child.parent !== newParent && newParent.actionIsDisabled(newParent.actions.ADDCHILD)) {		return false;	}	var node = newParent;	while (node.isTreeNode) {		if (node === child) {			return false;		}		node = node.parent;	}	return true;}, move:function (child, newParent, index) {	if (!this.canMove(child, newParent)) {		return false;	}	var result = this.doMove(child, newParent, index);	if (!result) {		return result;	}	if (newParent.isTreeNode) {		this.expand(newParent);	}	return result;}, doMove:function (child, newParent, index) {	child.tree.move(child, newParent, index);	return true;}, canRemoveNode:function (child) {	if (child.actionIsDisabled(child.actions.REMOVE)) {		return false;	}	return true;}, removeNode:function (node, callObj, callFunc) {	if (!this.canRemoveNode(node)) {		return false;	}	return this.doRemoveNode(node, callObj, callFunc);}, doRemoveNode:function (node, callObj, callFunc) {	node.tree.removeNode(node);	if (callFunc) {		callFunc.apply(dojo.lang.isUndefined(callObj) ? this : callObj, [node]);	}}, canCreateChild:function (parent, index, data) {	if (parent.actionIsDisabled(parent.actions.ADDCHILD)) {		return false;	}	return true;}, createChild:function (parent, index, data, callObj, callFunc) {	if (!this.canCreateChild(parent, index, data)) {		return false;	}	return this.doCreateChild.apply(this, arguments);}, doCreateChild:function (parent, index, data, callObj, callFunc) {	var widgetType = data.widgetType ? data.widgetType : "TreeNode";	var newChild = dojo.widget.createWidget(widgetType, data);	parent.addChild(newChild, index);	this.expand(parent);	if (callFunc) {		callFunc.apply(callObj, [newChild]);	}	return newChild;}});

⌨️ 快捷键说明

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