blob: 37f2c8b7ee0eaedc7c6ac58e0d4ff1e69891a370 [file] [log] [blame]
dojo.require("dojo.lang.declare");
dojo.provide("dojo.widget.TreeWithNode");
dojo.declare("dojo.widget.TreeWithNode",null,function(){
},{loadStates:{UNCHECKED:"UNCHECKED",LOADING:"LOADING",LOADED:"LOADED"},state:"UNCHECKED",objectId:"",isContainer:true,lockLevel:0,lock:function(){
this.lockLevel++;
},unlock:function(){
if(!this.lockLevel){
dojo.raise(this.widgetType+" unlock: not locked");
}
this.lockLevel--;
},expandLevel:0,loadLevel:0,hasLock:function(){
return this.lockLevel>0;
},isLocked:function(){
var _1=this;
while(true){
if(_1.lockLevel){
return true;
}
if(!_1.parent||_1.isTree){
break;
}
_1=_1.parent;
}
return false;
},flushLock:function(){
this.lockLevel=0;
},actionIsDisabled:function(_2){
var _3=false;
if(dojo.lang.inArray(this.actionsDisabled,_2)){
_3=true;
}
if(this.isTreeNode){
if(!this.tree.allowAddChildToLeaf&&_2==this.actions.ADDCHILD&&!this.isFolder){
_3=true;
}
}
return _3;
},actionIsDisabledNow:function(_4){
return this.actionIsDisabled(_4)||this.isLocked();
},setChildren:function(_5){
if(this.isTreeNode&&!this.isFolder){
this.setFolder();
}else{
if(this.isTreeNode){
this.state=this.loadStates.LOADED;
}
}
var _6=this.children.length>0;
if(_6&&_5){
this.destroyChildren();
}
if(_5){
this.children=_5;
}
var _7=this.children.length>0;
if(this.isTreeNode&&_7!=_6){
this.viewSetHasChildren();
}
for(var i=0;i<this.children.length;i++){
var _9=this.children[i];
if(!(_9 instanceof dojo.widget.Widget)){
_9=this.children[i]=this.tree.createNode(_9);
var _a=true;
}else{
var _a=false;
}
if(!_9.parent){
_9.parent=this;
if(this.tree!==_9.tree){
_9.updateTree(this.tree);
}
_9.viewAddLayout();
this.containerNode.appendChild(_9.domNode);
var _b={child:_9,index:i,parent:this,childWidgetCreated:_a};
delete dojo.widget.manager.topWidgets[_9.widgetId];
dojo.event.topic.publish(this.tree.eventNames.afterAddChild,_b);
}
if(this.tree.eagerWidgetInstantiation){
dojo.lang.forEach(this.children,function(_c){
_c.setChildren();
});
}
}
},doAddChild:function(_d,_e){
return this.addChild(_d,_e,true);
},addChild:function(_f,_10,_11){
if(dojo.lang.isUndefined(_10)){
_10=this.children.length;
}
if(!_f.isTreeNode){
dojo.raise("You can only add TreeNode widgets to a "+this.widgetType+" widget!");
return;
}
this.children.splice(_10,0,_f);
_f.parent=this;
_f.addedTo(this,_10,_11);
delete dojo.widget.manager.topWidgets[_f.widgetId];
},onShow:function(){
this.animationInProgress=false;
},onHide:function(){
this.animationInProgress=false;
}});