You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.1 KiB
89 lines
2.1 KiB
define(["dojo/_base/kernel", |
|
"dojo/_base/declare", |
|
"dojo/dom-class", |
|
"dojo/dom-construct", |
|
"./AreaManager" |
|
], function(dojo, declare, domClass, domConstruct, AreaManager){ |
|
var di = 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); |
|
domClass.add(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); |
|
} |
|
domConstruct.destroy(this.node); |
|
delete this.node; |
|
} |
|
} |
|
}); |
|
|
|
AreaManager.areaManager()._dropIndicator = new di(); |
|
|
|
return di; |
|
});
|
|
|