docs: function(setting, zTreeTools) {
  		zTreeTools.checkNode = function(node, checked, checkTypeFlag, callbackFlag) {
  			var checkedKey = this.setting.data.key.checked;
  			if (node.chkDisabled === true) return;
  			if (checked !== true && checked !== false) {
  				checked = !node[checkedKey];
  			}
  			callbackFlag = !!callbackFlag;
  
  			if (node[checkedKey] === checked && !checkTypeFlag) {
  				return;
  			} else if (callbackFlag && tools.apply(this.setting.callback.beforeCheck, [this.setting.treeId, node], true) == false) {
  				return;
  			}
  			if (tools.uCanDo(this.setting) && this.setting.check.enable && node.nocheck !== true) {
  				node[checkedKey] = checked;
  				var checkObj = $$(node, consts.id.CHECK, this.setting);
  				if (checkTypeFlag || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node);
  				view.setChkClass(this.setting, checkObj, node);
  				view.repairParentChkClassWithSelf(this.setting, node);
  				if (callbackFlag) {
  					this.setting.treeObj.trigger(consts.event.CHECK, [null, this.setting.treeId, node]);
  				}
  			}
  		}
  
  		zTreeTools.checkAllNodes = function(checked) {
  			view.repairAllChk(this.setting, !!checked);
  		}
  
  		zTreeTools.getCheckedNodes = function(checked) {
  			var childKey = this.setting.data.key.children;
  			checked = (checked !== false);
  			return data.getTreeCheckedNodes(this.setting, data.getRoot(this.setting)[childKey], checked);
  		}
  
  		zTreeTools.getChangeCheckedNodes = function() {
  			var childKey = this.setting.data.key.children;
  			return data.getTreeChangeCheckedNodes(this.setting, data.getRoot(this.setting)[childKey]);
  		}
  
  		zTreeTools.setChkDisabled = function(node, disabled, inheritParent, inheritChildren) {
  			disabled = !!disabled;
  			inheritParent = !!inheritParent;
  			inheritChildren = !!inheritChildren;
  			view.repairSonChkDisabled(this.setting, node, disabled, inheritChildren);
  			view.repairParentChkDisabled(this.setting, node.getParentNode(), disabled, inheritParent);
  		}
  
  		var _updateNode = zTreeTools.updateNode;
  		zTreeTools.updateNode = function(node, checkTypeFlag) {
  			if (_updateNode) _updateNode.apply(zTreeTools, arguments);
  			if (!node || !this.setting.check.enable) return;
  			var nObj = $$(node, this.setting);
  			if (nObj.get(0) && tools.uCanDo(this.setting)) {
  				var checkObj = $$(node, consts.id.CHECK, this.setting);
  				if (checkTypeFlag == true || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node);
  				view.setChkClass(this.setting, checkObj, node);
  				view.repairParentChkClassWithSelf(this.setting, node);
  			}
  		}
  	}