/*
* - LGPL
*
* dropable area
*
*/
/**
* @class Roo.bootstrap.DropTarget
* @extends Roo.bootstrap.Element
* Bootstrap DropTarget class
* @cfg {string} name dropable name
*
* @constructor
* Create a new Dropable Area
* @param {Object} config The config object
*/
Roo.bootstrap.DropTarget = function(config){
Roo.bootstrap.DropTarget.superclass.constructor.call(this, config);
this.addEvents({
// raw events
/**
* @event click
* When a element is chick
* @param {Roo.bootstrap.Element} this
* @param {Roo.EventObject} e
*/
"drop" : true
});
};
Roo.extend(Roo.bootstrap.DropTarget, Roo.bootstrap.Element, {
getAutoCreate : function(){
},
initEvents: function()
{
Roo.bootstrap.DropTarget.superclass.initEvents.call(this);
this.dropZone = new Roo.dd.DropTarget(this.getEl(), {
ddGroup: this.name,
listeners : {
drop : this.dragDrop.createDelegate(this),
enter : this.dragEnter.createDelegate(this),
out : this.dragOut.createDelegate(this),
over : this.dragOver.createDelegate(this)
}
});
this.dropZone.DDM.useCache = false // so data gets refreshed when we resize stuff
},
dragDrop : function(source,e,data)
{
// user has to decide how to impliment this.
Roo.log('drop');
Roo.log(this);
//this.fireEvent('drop', this, source, e ,data);
return false;
},
dragEnter : function(n, dd, e, data)
{
// probably want to resize the element to match the dropped element..
Roo.log("enter");
this.originalSize = this.el.getSize();
this.el.setSize( n.el.getSize());
this.dropZone.DDM.refreshCache(this.name);
Roo.log([n, dd, e, data]);
},
dragOut : function(value)
{
// resize back to normal
Roo.log("out");
this.el.setSize(this.originalSize);
this.dropZone.resetConstraints();
},
dragOver : function()
{
// ??? do nothing?
}
});