--- /dev/null
+<html>\r
+<head>\r
+ <title>The source code</title>\r
+ <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
+ <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
+</head>\r
+<body onload="prettyPrint();">\r
+ <pre class="prettyprint lang-js"><div id="cls-Ext.tree.TreeDragZone"></div>/**\r
+ * @class Ext.tree.TreeDragZone\r
+ * @extends Ext.dd.DragZone\r
+ * @constructor\r
+ * @param {String/HTMLElement/Element} tree The {@link Ext.tree.TreePanel} for which to enable dragging\r
+ * @param {Object} config\r
+ */\r
+if(Ext.dd.DragZone){\r
+Ext.tree.TreeDragZone = function(tree, config){\r
+ Ext.tree.TreeDragZone.superclass.constructor.call(this, tree.innerCt, config);\r
+ <div id="prop-Ext.tree.TreeDragZone-tree"></div>/**\r
+ * The TreePanel for this drag zone\r
+ * @type Ext.tree.TreePanel\r
+ * @property\r
+ */\r
+ this.tree = tree;\r
+};\r
+\r
+Ext.extend(Ext.tree.TreeDragZone, Ext.dd.DragZone, {\r
+ <div id="cfg-Ext.tree.TreeDragZone-ddGroup"></div>/**\r
+ * @cfg {String} ddGroup\r
+ * A named drag drop group to which this object belongs. If a group is specified, then this object will only\r
+ * interact with other drag drop objects in the same group (defaults to 'TreeDD').\r
+ */\r
+ ddGroup : "TreeDD",\r
+\r
+ // private\r
+ onBeforeDrag : function(data, e){\r
+ var n = data.node;\r
+ return n && n.draggable && !n.disabled;\r
+ },\r
+\r
+ // private\r
+ onInitDrag : function(e){\r
+ var data = this.dragData;\r
+ this.tree.getSelectionModel().select(data.node);\r
+ this.tree.eventModel.disable();\r
+ this.proxy.update("");\r
+ data.node.ui.appendDDGhost(this.proxy.ghost.dom);\r
+ this.tree.fireEvent("startdrag", this.tree, data.node, e);\r
+ },\r
+\r
+ // private\r
+ getRepairXY : function(e, data){\r
+ return data.node.ui.getDDRepairXY();\r
+ },\r
+\r
+ // private\r
+ onEndDrag : function(data, e){\r
+ this.tree.eventModel.enable.defer(100, this.tree.eventModel);\r
+ this.tree.fireEvent("enddrag", this.tree, data.node, e);\r
+ },\r
+\r
+ // private\r
+ onValidDrop : function(dd, e, id){\r
+ this.tree.fireEvent("dragdrop", this.tree, this.dragData.node, dd, e);\r
+ this.hideProxy();\r
+ },\r
+\r
+ // private\r
+ beforeInvalidDrop : function(e, id){\r
+ // this scrolls the original position back into view\r
+ var sm = this.tree.getSelectionModel();\r
+ sm.clearSelections();\r
+ sm.select(this.dragData.node);\r
+ },\r
+ \r
+ // private\r
+ afterRepair : function(){\r
+ if (Ext.enableFx && this.tree.hlDrop) {\r
+ Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor || "c3daf9");\r
+ }\r
+ this.dragging = false;\r
+ }\r
+});\r
+}</pre> \r
+</body>\r
+</html>
\ No newline at end of file