summaryrefslogtreecommitdiff
path: root/frontend/beta/js/YUI-extensions/tree/TreeDragZone.js
Unidiff
Diffstat (limited to 'frontend/beta/js/YUI-extensions/tree/TreeDragZone.js') (more/less context) (show whitespace changes)
-rw-r--r--frontend/beta/js/YUI-extensions/tree/TreeDragZone.js43
1 files changed, 43 insertions, 0 deletions
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 @@
1YAHOO.ext.tree.TreeDragZone = function(tree, config){
2 YAHOO.ext.tree.TreeDragZone.superclass.constructor.call(this, tree.getEl(), config);
3 this.tree = tree;
4};
5
6YAHOO.extendX(YAHOO.ext.tree.TreeDragZone, YAHOO.ext.dd.DragZone, {
7 ddGroup : 'TreeDD',
8
9 onBeforeDrag : function(data, e){
10 var n = data.node;
11 return n && n.draggable && !n.disabled;
12 },
13
14 onInitDrag : function(e){
15 var data = this.dragData;
16 this.tree.getSelectionModel().select(data.node);
17 this.proxy.update('');
18 data.node.ui.appendDDGhost(this.proxy.ghost.dom);
19 this.tree.fireEvent('startdrag', this.tree, data.node, e);
20 },
21
22 getRepairXY : function(e, data){
23 return data.node.ui.getDDRepairXY();
24 },
25
26 onEndDrag : function(data, e){
27 this.tree.fireEvent('enddrag', this.tree, data.node, e);
28 },
29
30 onValidDrop : function(dd, e, id){
31 this.tree.fireEvent('dragdrop', this.tree, this.dragData.node, dd, e);
32 this.hideProxy();
33 },
34
35 beforeInvalidDrop : function(e, id){
36 if(YAHOO.util.Anim){
37 // this scrolls the original position back into view
38 var sm = this.tree.getSelectionModel();
39 sm.clearSelections();
40 sm.select(this.dragData.node);
41 }
42 }
43});