| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 | <!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-Proxy'>/**</span> * A custom drag proxy implementation specific to {@link Ext.panel.Panel}s. This class * is primarily used internally for the Panel's drag drop implementation, and * should never need to be created directly. * @private */Ext.define('Ext.panel.Proxy', {    alternateClassName: 'Ext.dd.PanelProxy',    <span id='Ext-panel-Proxy-cfg-moveOnDrag'>    /**</span>     * @cfg {Boolean} [moveOnDrag=true]     * True to move the panel to the dragged position when dropped     */    moveOnDrag: true,<span id='Ext-panel-Proxy-method-constructor'>    /**</span>     * Creates new panel proxy.     * @param {Ext.panel.Panel} panel The {@link Ext.panel.Panel} to proxy for     * @param {Object} [config] Config object     */    constructor: function(panel, config){        var me = this;        <span id='Ext-panel-Proxy-property-panel'>        /**</span>         * @property panel         * @type Ext.panel.Panel         */        me.panel = panel;        me.id = me.panel.id +'-ddproxy';        Ext.apply(me, config);    },<span id='Ext-panel-Proxy-cfg-insertProxy'>    /**</span>     * @cfg {Boolean} insertProxy     * True to insert a placeholder proxy element while dragging the panel, false to drag with no proxy.     * Most Panels are not absolute positioned and therefore we need to reserve this space.     */    insertProxy: true,    // private overrides    setStatus: Ext.emptyFn,    reset: Ext.emptyFn,    update: Ext.emptyFn,    stop: Ext.emptyFn,    sync: Ext.emptyFn,<span id='Ext-panel-Proxy-method-getEl'>    /**</span>     * Gets the proxy's element     * @return {Ext.Element} The proxy's element     */    getEl: function(){        return this.ghost.el;    },<span id='Ext-panel-Proxy-method-getGhost'>    /**</span>     * Gets the proxy's ghost Panel     * @return {Ext.panel.Panel} The proxy's ghost Panel     */    getGhost: function(){        return this.ghost;    },<span id='Ext-panel-Proxy-method-getProxy'>    /**</span>     * Gets the proxy element. This is the element that represents where the     * Panel was before we started the drag operation.     * @return {Ext.Element} The proxy's element     */    getProxy: function(){        return this.proxy;    },<span id='Ext-panel-Proxy-method-hide'>    /**</span>     * Hides the proxy     */    hide : function(){        var me = this;                if (me.ghost) {            if (me.proxy) {                me.proxy.remove();                delete me.proxy;            }            // Unghost the Panel, do not move the Panel to where the ghost was            me.panel.unghost(null, me.moveOnDrag);            delete me.ghost;        }    },<span id='Ext-panel-Proxy-method-show'>    /**</span>     * Shows the proxy     */    show: function(){        var me = this,            panelSize;                    if (!me.ghost) {            panelSize = me.panel.getSize();            me.panel.el.setVisibilityMode(Ext.Element.DISPLAY);            me.ghost = me.panel.ghost();            if (me.insertProxy) {                // bc Panels aren't absolute positioned we need to take up the space                // of where the panel previously was                me.proxy = me.panel.el.insertSibling({cls: Ext.baseCSSPrefix + 'panel-dd-spacer'});                me.proxy.setSize(panelSize);            }        }    },    // private    repair: function(xy, callback, scope) {        this.hide();        Ext.callback(callback, scope || this);    },<span id='Ext-panel-Proxy-method-moveProxy'>    /**</span>     * Moves the proxy to a different position in the DOM.  This is typically     * called while dragging the Panel to keep the proxy sync'd to the Panel's     * location.     * @param {HTMLElement} parentNode The proxy's parent DOM node     * @param {HTMLElement} [before] The sibling node before which the     * proxy should be inserted. Defaults to the parent's last child if not     * specified.     */    moveProxy : function(parentNode, before){        if (this.proxy) {            parentNode.insertBefore(this.proxy.dom, before);        }    }});</pre></body></html>
 |