blob: e386c6ac19e26abe8cfb21ab63042766181e2fbe [file] [log] [blame]
dojo.provide("dojo.dnd.HtmlDragCopy");
dojo.require("dojo.dnd.*");
dojo.declare("dojo.dnd.HtmlDragCopySource",dojo.dnd.HtmlDragSource,function(_1,_2,_3){
this.copyOnce=_3;
this.makeCopy=true;
},{onDragStart:function(){
var _4=new dojo.dnd.HtmlDragCopyObject(this.dragObject,this.type,this);
if(this.dragClass){
_4.dragClass=this.dragClass;
}
if(this.constrainToContainer){
_4.constrainTo(this.constrainingContainer||this.domNode.parentNode);
}
return _4;
},onSelected:function(){
for(var i=0;i<this.dragObjects.length;i++){
dojo.dnd.dragManager.selectedSources.push(new dojo.dnd.HtmlDragCopySource(this.dragObjects[i]));
}
}});
dojo.declare("dojo.dnd.HtmlDragCopyObject",dojo.dnd.HtmlDragObject,function(_6,_7,_8){
this.copySource=_8;
},{onDragStart:function(e){
dojo.dnd.HtmlDragCopyObject.superclass.onDragStart.apply(this,arguments);
if(this.copySource.makeCopy){
this.sourceNode=this.domNode;
this.domNode=this.domNode.cloneNode(true);
}
},onDragEnd:function(e){
switch(e.dragStatus){
case "dropFailure":
var _b=dojo.html.getAbsolutePosition(this.dragClone,true);
var _c={left:this.dragStartPosition.x+1,top:this.dragStartPosition.y+1};
var _d=dojo.lfx.slideTo(this.dragClone,_c,500,dojo.lfx.easeOut);
var _e=this;
dojo.event.connect(_d,"onEnd",function(e){
dojo.lang.setTimeout(function(){
dojo.html.removeNode(_e.dragClone);
_e.dragClone=null;
if(_e.copySource.makeCopy){
dojo.html.removeNode(_e.domNode);
_e.domNode=_e.sourceNode;
_e.sourceNode=null;
}
},200);
});
_d.play();
dojo.event.topic.publish("dragEnd",{source:this});
return;
}
dojo.dnd.HtmlDragCopyObject.superclass.onDragEnd.apply(this,arguments);
this.copySource.dragObject=this.domNode;
if(this.copySource.copyOnce){
this.copySource.makeCopy=false;
}
new dojo.dnd.HtmlDragCopySource(this.sourceNode,this.type,this.copySource.copyOnce);
this.sourceNode=null;
}});