| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 | <!DOCTYPE html><html><head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>The source code</title>  <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />  <script type="text/javascript" src="../resources/prettify/prettify.js"></script>  <style type="text/css">    .highlight { display: block; background-color: #ddd; }  </style>  <script type="text/javascript">    function highlight() {      document.getElementById(location.hash.replace(/#/, "")).className = "highlight";    }  </script></head><body onload="prettyPrint(); highlight();">  <pre class="prettyprint lang-js"><span id='Ext-panel-DD'>/**</span> * DD implementation for Panels. * @private */Ext.define('Ext.panel.DD', {    extend: 'Ext.dd.DragSource',    requires: ['Ext.panel.Proxy'],    constructor : function(panel, cfg){        var me = this;                me.panel = panel;        me.dragData = {panel: panel};        me.panelProxy = new Ext.panel.Proxy(panel, cfg);        me.proxy = me.panelProxy.proxy;        me.callParent([panel.el, cfg]);        me.setupEl(panel);    },        setupEl: function(panel){        var me = this,            header = panel.header,            el = panel.body;                    if (header) {            me.setHandleElId(header.id);            el = header.el;        }        if (el) {            el.setStyle('cursor', 'move');            me.scroll = false;        } else {            // boxready fires after first layout, so we'll definitely be rendered            panel.on('boxready', me.setupEl, me, {single: true});        }    },    showFrame: Ext.emptyFn,    startDrag: Ext.emptyFn,        b4StartDrag: function(x, y) {        this.panelProxy.show();    },        b4MouseDown: function(e) {        var x = e.getPageX(),            y = e.getPageY();                    this.autoOffset(x, y);    },        onInitDrag : function(x, y){        this.onStartDrag(x, y);        return true;    },        createFrame : Ext.emptyFn,        getDragEl : function(e){        return this.panelProxy.ghost.el.dom;    },        endDrag : function(e){        this.panelProxy.hide();        this.panel.saveState();    },    autoOffset : function(x, y) {        x -= this.startPageX;        y -= this.startPageY;        this.setDelta(x, y);    },        // Override this, we don't want to repair on an "invalid" drop, the panel    // should main it's position    onInvalidDrop: function(target, e, id) {        var me = this;                me.beforeInvalidDrop(target, e, id);        if (me.cachedTarget) {            if(me.cachedTarget.isNotifyTarget){                me.cachedTarget.notifyOut(me, e, me.dragData);            }            me.cacheTarget = null;        }        if (me.afterInvalidDrop) {<span id='Ext-panel-DD-method-afterInvalidDrop'>            /**</span>             * An empty function by default, but provided so that you can perform a custom action             * after an invalid drop has occurred by providing an implementation.             * @param {Event} e The event object             * @param {String} id The id of the dropped element             * @method afterInvalidDrop             */            me.afterInvalidDrop(e, id);        }    }});</pre></body></html>
 |