dd4
//正在拖动的面板原来的容器
var sourceCt = dd.panel.ownerCt;
//正在拖动的面板在原来容器中的行序号
var sourcePos = sourceCt.items.items.indexOf(dd.panel);
//获取空降地点在同一个容器里,即在同一列里移动
if(c == sourceCt )
{
sourceDom.parentNode.removeChild(sourceDom);
//插队
if(pos !== false)
{
c.insert(pos, dd.panel);
}
else//追加
{
c.insert(c.items.items.length,dd.panel);
}
}
else//容器不同,要把空降地点原先的面板 与 当前面板互换
{
//pos不等于false,表示是插入的情况,原先此处必然有面板
//需要互换sourceDom.parentNode.removeChild(sourceDom);
//空降地点原先的面板
if(pos !== false)
{
var sourceDesPanel = c.items.items[pos];
sourceDesPanel.el.dom.parentNode.removeChild(sourceDesPanel.el.dom);
sourceCt.insert(sourcePos,sourceDesPanel);
c.insert(pos, dd.panel);
//容器不同时,起飞地点需要重新布局
sourceCt.doLayout();
}
}
//空降地点必须要重新布局
sourceCt.doLayout();
c.doLayout();
//sourceCt.doLayout();
//c.doLayout();
this.portal.fireEvent('drop', dropEvent);
// scroll position is lost on drop, fix it
}
delete this.lastPos;
},
// internal cache of body and column coords
getGrid : function(){
var box = this.portal.bwrap.getBox();
box.columnX = [];
this.portal.items.each(function(c){
box.columnX.push({x: c.el.getX(), w: c.el.getWidth()});
});
return box;
},
// unregister the dropzone from ScrollManager
unreg: function() {
//Ext.dd.ScrollManager.unregister(this.portal.body);
Ext.ux.SecoPortal.DropZone.superclass.unreg.call(this);
}
});