proxy.js revision 3603f91160ffcd6fe9834ae62761af309f251153
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * The Drag & Drop Utility allows you to create a draggable interface efficiently, buffering you from browser-level abnormalities and enabling you to focus on the interesting logic surrounding your particular implementation. This component enables you to create a variety of standard draggable objects with just a few lines of code and then, using its extensive API, add your own specific implementation logic.
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @module dd
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @submodule dd-proxy
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * This plugin for dd-drag is for creating a proxy drag node, instead of dragging the original node.
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @class DDProxy
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @extends Base
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @constructor
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @namespace plugin
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass Proxy.superclass.constructor.apply(this, arguments);
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @property proxy
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @description The Proxy instance will be placed on the Drag instance under the proxy namespace.
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @type {String}
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @attribute moveOnEnd
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @description Move the original node at the end of the drag. Default: true
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @type Boolean
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @attribute resizeFrame
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @description Make the Proxy node assume the size of the original node. Default: true
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @type Boolean
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @attribute positionProxy
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @description Make the Proxy node appear in the same place as the original node. Default: true
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @type Boolean
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @attribute borderStyle
dbf2c770f8178b12e8fe3c36bfa29df58ef13959Dav Glass * @description The default border style for the border of the proxy. Default: 1px solid #808080
borderStyle: {
owner: {
writeOnce: true,
value: false
var proto = {
_proxyHandles: null,
_setProxy: function() {
if (!this._proxyHandles) {
this._proxyHandles = [];
for (i in this._proxyHandles) {
initializer: function() {
this._setProxy();
destructor: function() {
for (var i in this._proxyHandles) {
_createFrame: function() {
p.setStyles({
* @description If resizeProxy is set to true (default) it will resize the proxy element to match the size of the Drag Element.
* If positionProxy is set to true (default) it will position the proxy element in the same location as the Drag Element.
if (ah) {
d.setStyles({