<!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,
|
|
<span id='Ext-panel-Proxy-method-setStatus'> // private overrides
|
</span> setStatus: Ext.emptyFn,
|
<span id='Ext-panel-Proxy-method-reset'> reset: Ext.emptyFn,
|
</span><span id='Ext-panel-Proxy-method-update'> update: Ext.emptyFn,
|
</span><span id='Ext-panel-Proxy-method-stop'> stop: Ext.emptyFn,
|
</span><span id='Ext-panel-Proxy-method-sync'> sync: Ext.emptyFn,
|
</span>
|
<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);
|
}
|
}
|
},
|
|
<span id='Ext-panel-Proxy-method-repair'> // private
|
</span> 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>
|