| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // The delegate interface: | 5 // The delegate interface: |
| 6 // dragContainer --> | 6 // dragContainer --> |
| 7 // element containing the draggable items | 7 // element containing the draggable items |
| 8 // | 8 // |
| 9 // transitionsDuration --> | 9 // transitionsDuration --> |
| 10 // length of time of transitions in ms | 10 // length of time of transitions in ms |
| 11 // | 11 // |
| 12 // dragItem --> | 12 // dragItem --> |
| 13 // get / set property containing the item being dragged | 13 // get / set property containing the item being dragged |
| 14 // | 14 // |
| 15 // getItem(e) --> | 15 // getItem(e) --> |
| 16 // get's the item that is under the mouse event |e| | 16 // get's the item that is under the mouse event |e| |
| 17 // | 17 // |
| 18 // canDropOn(coordinates) --> | 18 // canDropOn(coordinates) --> |
| 19 // returns true if the coordinates (relative to the drag container) | 19 // returns true if the coordinates (relative to the drag container) |
| 20 // point to a valid place to drop an item | 20 // point to a valid place to drop an item |
| 21 // | 21 // |
| 22 // setDragPlaceholder(coordinates) --> | 22 // setDragPlaceholder(coordinates) --> |
| 23 // tells the delegate that the dragged item is currently above | 23 // tells the delegate that the dragged item is currently above |
| 24 // the specified coordinates. | 24 // the specified coordinates. |
| 25 // | 25 // |
| 26 // saveDrag() --> | 26 // saveDrag(draggedItem) --> |
| 27 // tells the delegate that the drag is done. move the item to the | 27 // tells the delegate that the drag is done. move the item to the |
| 28 // position last specified by setDragPlaceholder. (e.g., commit changes) | 28 // position last specified by setDragPlaceholder (e.g., commit changes). |
| 29 // draggedItem was the item being dragged. |
| 29 // | 30 // |
| 30 | 31 |
| 31 // The distance, in px, that the mouse must move before initiating a drag. | 32 // The distance, in px, that the mouse must move before initiating a drag. |
| 32 var DRAG_THRESHOLD = 35; | 33 var DRAG_THRESHOLD = 35; |
| 33 | 34 |
| 34 function DragAndDropController(delegate) { | 35 function DragAndDropController(delegate) { |
| 35 this.delegate_ = delegate; | 36 this.delegate_ = delegate; |
| 36 | 37 |
| 37 // Install the 'mousedown' handler, the entry point to drag and drop. | 38 // Install the 'mousedown' handler, the entry point to drag and drop. |
| 38 var el = this.delegate_.dragContainer; | 39 var el = this.delegate_.dragContainer; |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 }, | 156 }, |
| 156 | 157 |
| 157 handleDrop_: function() { | 158 handleDrop_: function() { |
| 158 this.disableHandlers_(); | 159 this.disableHandlers_(); |
| 159 | 160 |
| 160 var dragItem = this.delegate_.dragItem; | 161 var dragItem = this.delegate_.dragItem; |
| 161 if (!dragItem) | 162 if (!dragItem) |
| 162 return; | 163 return; |
| 163 | 164 |
| 164 this.delegate_.dragItem = this.startItem_ = null; | 165 this.delegate_.dragItem = this.startItem_ = null; |
| 165 this.delegate_.saveDrag(); | 166 this.delegate_.saveDrag(dragItem); |
| 166 dragItem.classList.remove('dragging'); | 167 dragItem.classList.remove('dragging'); |
| 167 | 168 |
| 168 setTimeout(function() { | 169 setTimeout(function() { |
| 169 // Keep the flag around a little so other 'mouseup' and 'click' | 170 // Keep the flag around a little so other 'mouseup' and 'click' |
| 170 // listeners know the event is from a drag operation. | 171 // listeners know the event is from a drag operation. |
| 171 this.isDragging_ = false; | 172 this.isDragging_ = false; |
| 172 dragItem.style.zIndex = 0; | 173 dragItem.style.zIndex = 0; |
| 173 }.bind(this), this.delegate_.transitionsDuration); | 174 }.bind(this), this.delegate_.transitionsDuration); |
| 174 }, | 175 }, |
| 175 | 176 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 202 | 203 |
| 203 dragItem.style.left = x + 'px'; | 204 dragItem.style.left = x + 'px'; |
| 204 dragItem.style.top = y + 'px'; | 205 dragItem.style.top = y + 'px'; |
| 205 | 206 |
| 206 // Update the layouts and positions based on the new drag location. | 207 // Update the layouts and positions based on the new drag location. |
| 207 this.handleDragOver_(); | 208 this.handleDragOver_(); |
| 208 | 209 |
| 209 this.delegate_.scrollPage(this.mouseXY_); | 210 this.delegate_.scrollPage(this.mouseXY_); |
| 210 } | 211 } |
| 211 }; | 212 }; |
| OLD | NEW |