diff options
Diffstat (limited to 'js/dojo/dojox/mdnd/DropIndicator.js')
| -rw-r--r-- | js/dojo/dojox/mdnd/DropIndicator.js | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/js/dojo/dojox/mdnd/DropIndicator.js b/js/dojo/dojox/mdnd/DropIndicator.js new file mode 100644 index 0000000..ff2ca6b --- /dev/null +++ b/js/dojo/dojox/mdnd/DropIndicator.js @@ -0,0 +1,85 @@ +//>>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; +}); |
