New file |
0,0 → 1,68 |
/* |
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.dnd.HtmlDragCopy"); |
dojo.require("dojo.dnd.*"); |
dojo.declare("dojo.dnd.HtmlDragCopySource", dojo.dnd.HtmlDragSource, function (node, type, copyOnce) { |
this.copyOnce = copyOnce; |
this.makeCopy = true; |
}, {onDragStart:function () { |
var dragObj = new dojo.dnd.HtmlDragCopyObject(this.dragObject, this.type, this); |
if (this.dragClass) { |
dragObj.dragClass = this.dragClass; |
} |
if (this.constrainToContainer) { |
dragObj.constrainTo(this.constrainingContainer || this.domNode.parentNode); |
} |
return dragObj; |
}, 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 (dragObject, type, source) { |
this.copySource = source; |
}, {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 startCoords = dojo.html.getAbsolutePosition(this.dragClone, true); |
var endCoords = {left:this.dragStartPosition.x + 1, top:this.dragStartPosition.y + 1}; |
var anim = dojo.lfx.slideTo(this.dragClone, endCoords, 500, dojo.lfx.easeOut); |
var dragObject = this; |
dojo.event.connect(anim, "onEnd", function (e) { |
dojo.lang.setTimeout(function () { |
dojo.html.removeNode(dragObject.dragClone); |
dragObject.dragClone = null; |
if (dragObject.copySource.makeCopy) { |
dojo.html.removeNode(dragObject.domNode); |
dragObject.domNode = dragObject.sourceNode; |
dragObject.sourceNode = null; |
} |
}, 200); |
}); |
anim.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; |
}}); |
|