1 line
2.7 KiB
JavaScript
1 line
2.7 KiB
JavaScript
Type.registerNamespace("Sys.Extended.UI"),Sys.Extended.UI.DraggableListItem=function(e){Sys.Extended.UI.DraggableListItem.initializeBase(this,[e]),this._data=null,this._handle=null,this._dragVisualTemplate=null,this._dragVisualTemplateInstance=null,this._mouseDownHandler=null},Sys.Extended.UI.DraggableListItem.prototype={dispose:function(){this.get_element();this.set_handle(null),Sys.Extended.UI.DraggableListItem.callBaseMethod(this,"dispose")},get_data:function(){if(null==this._data){var e=this._findDragSource();if(null!=e&&Sys.Extended.UI.DragDropList.IsValidDataType(e.get_dragDataType()))return this.get_element()}return this._data},set_data:function(e){this._data!=e&&(this._data=e,this.raisePropertyChanged("data"))},get_handle:function(){return this._handle},set_handle:function(e){null!=this._handle&&($removeHandler(this._handle,"mousedown",this.get_mouseDownHandler()),this._handle.__draggableBehavior=null),e?(e.element&&(e=e.element),this._handle=e,this.raisePropertyChanged("handle"),this._handle.__draggableBehavior=this,$addHandler(this._handle,"mousedown",this.get_mouseDownHandler()),this._handle.__draggableBehavior=this):this._handle=null},get_mouseDownHandler:function(){return null==this._mouseDownHandler&&(this._mouseDownHandler=Function.createDelegate(this,this._onMouseDown)),this._mouseDownHandler},get_dragVisualTemplate:function(){return this._dragVisualTemplate},set_dragVisualTemplate:function(e){this._dragVisualTemplate!=e&&(this._dragVisualTemplate=e,this.raisePropertyChanged("dragVisualTemplate"))},_onMouseDown:function(e){window._event=e.rawEvent,this._handle.__draggableBehavior._mouseDownHandlerInternal(e)},_mouseDownHandlerInternal:function(e){var e=window.testEvent?window.testEvent:e;if(e.button<=1){var t=this._findDragSource();if(null!=t){var a=this._createDragVisual();t.startDragDrop(this.get_element(),this.get_data(),a),e.returnValue=!1}}},_createDragVisual:function(){var e=window.testEvent?window.testEvent:window.event;if(null!=this._dragVisualTemplate){null==this._dragVisualTemplateInstance?this._dragVisualTemplateInstance=this._dragVisualTemplate.cloneElement():Sys.UI.DragDropManager._getInstance().hasParent(this._dragVisualTemplateInstance)||this.get_element().appendChild(this._dragVisualTemplateInstance);var t={x:e.clientX,y:e.clientY};t=Sys.UI.DragDropManager._getInstance().addPoints(t,Sys.UI.DragDropManager._getInstance().getScrollOffset(document.body,!0)),$common.setLocation(this._dragVisualTemplateInstance,t)}return this._dragVisualTemplateInstance},_findDragSource:function(){for(var e=this.get_element();null!=e;){if(null!=e.__dragDropList)return e.__dragDropList;e=e.parentNode}return null}},Sys.Extended.UI.DraggableListItem.registerClass("Sys.Extended.UI.DraggableListItem",Sys.Extended.UI.BehaviorBase); |