86 lines
2.1 KiB
JavaScript
86 lines
2.1 KiB
JavaScript
//>>built
|
|
define("dojox/mdnd/DropIndicator", ["dojo/_base/kernel","dojo/_base/declare","dojo/_base/html","./AreaManager"],function(dojo){
|
|
var di = dojo.declare(
|
|
"dojox.mdnd.DropIndicator",
|
|
null,
|
|
{
|
|
// summary:
|
|
// DropIndicator managment for DnD.
|
|
|
|
// node: DOMNode
|
|
// the drop indicator node
|
|
node : null,
|
|
|
|
constructor: function(){
|
|
//console.log("dojox.mdnd.DropIndicator ::: constructor");
|
|
var dropIndicator = document.createElement("div");
|
|
var subDropIndicator = document.createElement("div");
|
|
dropIndicator.appendChild(subDropIndicator);
|
|
dojo.addClass(dropIndicator, "dropIndicator");
|
|
this.node = dropIndicator;
|
|
},
|
|
|
|
place: function(/*Node*/area, /*Node*/nodeRef, /*Object*/size){
|
|
// summary:
|
|
// Place the DropIndicator in the right place
|
|
// area:
|
|
// the dnd targer area node
|
|
// nodeRef:
|
|
// node where the dropIndicator have to be placed into the area
|
|
// dragNode:
|
|
// the node which is dragged
|
|
// returns:
|
|
// the node inserted or null if it crashes
|
|
|
|
//console.log("dojox.mdnd.DropIndicator ::: place");
|
|
if(size){
|
|
this.node.style.height = size.h + "px";
|
|
}
|
|
try{
|
|
if(nodeRef){
|
|
area.insertBefore(this.node, nodeRef);
|
|
}
|
|
else{
|
|
// empty target area or last node => appendChild
|
|
area.appendChild(this.node);
|
|
}
|
|
return this.node; // DOMNode
|
|
}catch(e){
|
|
return null;
|
|
}
|
|
},
|
|
|
|
remove: function(){
|
|
// summary:
|
|
// remove the DropIndicator (not destroy)
|
|
|
|
//console.log("dojox.mdnd.DropIndicator ::: remove");
|
|
if(this.node){
|
|
//FIX : IE6 problem
|
|
this.node.style.height = "";
|
|
if(this.node.parentNode){
|
|
this.node.parentNode.removeChild(this.node);
|
|
}
|
|
}
|
|
},
|
|
|
|
destroy: function(){
|
|
// summary:
|
|
// destroy the dropIndicator
|
|
|
|
//console.log("dojox.mdnd.DropIndicator ::: destroy");
|
|
if(this.node){
|
|
if(this.node.parentNode){
|
|
this.node.parentNode.removeChild(this.node);
|
|
}
|
|
dojo._destroyElement(this.node);
|
|
delete this.node;
|
|
}
|
|
}
|
|
});
|
|
|
|
dojox.mdnd.areaManager()._dropIndicator = new dojox.mdnd.DropIndicator();
|
|
|
|
return di;
|
|
});
|