From 541bb378ddece2eab135a8066a16994e94436dea Mon Sep 17 00:00:00 2001 From: Giulio Cesare Solaroli Date: Mon, 03 Oct 2011 16:04:12 +0000 Subject: Merge pull request #1 from gcsolaroli/master First version of the restructured repository --- (limited to 'frontend/beta/js/YUI-extensions/tree/TreeDragZone.js') diff --git a/frontend/beta/js/YUI-extensions/tree/TreeDragZone.js b/frontend/beta/js/YUI-extensions/tree/TreeDragZone.js new file mode 100644 index 0000000..9b77b3c --- a/dev/null +++ b/frontend/beta/js/YUI-extensions/tree/TreeDragZone.js @@ -0,0 +1,43 @@ +YAHOO.ext.tree.TreeDragZone = function(tree, config){ + YAHOO.ext.tree.TreeDragZone.superclass.constructor.call(this, tree.getEl(), config); + this.tree = tree; +}; + +YAHOO.extendX(YAHOO.ext.tree.TreeDragZone, YAHOO.ext.dd.DragZone, { + ddGroup : 'TreeDD', + + onBeforeDrag : function(data, e){ + var n = data.node; + return n && n.draggable && !n.disabled; + }, + + onInitDrag : function(e){ + var data = this.dragData; + this.tree.getSelectionModel().select(data.node); + this.proxy.update(''); + data.node.ui.appendDDGhost(this.proxy.ghost.dom); + this.tree.fireEvent('startdrag', this.tree, data.node, e); + }, + + getRepairXY : function(e, data){ + return data.node.ui.getDDRepairXY(); + }, + + onEndDrag : function(data, e){ + this.tree.fireEvent('enddrag', this.tree, data.node, e); + }, + + onValidDrop : function(dd, e, id){ + this.tree.fireEvent('dragdrop', this.tree, this.dragData.node, dd, e); + this.hideProxy(); + }, + + beforeInvalidDrop : function(e, id){ + if(YAHOO.util.Anim){ + // this scrolls the original position back into view + var sm = this.tree.getSelectionModel(); + sm.clearSelections(); + sm.select(this.dragData.node); + } + } +}); -- cgit v0.9.0.2