root / trunk / web / dojo / dojox / mdnd / PureSource.js
History | View | Annotate | Download (2.48 KB)
| 1 |
/*
|
|---|---|
| 2 |
Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
|
| 3 |
Available via Academic Free License >= 2.1 OR the modified BSD license.
|
| 4 |
see: http://dojotoolkit.org/license for details
|
| 5 |
*/
|
| 6 |
|
| 7 |
|
| 8 |
if(!dojo._hasResource["dojox.mdnd.PureSource"]){ |
| 9 |
dojo._hasResource["dojox.mdnd.PureSource"]=true; |
| 10 |
dojo.provide("dojox.mdnd.PureSource");
|
| 11 |
dojo.require("dojo.dnd.Selector");
|
| 12 |
dojo.require("dojo.dnd.Manager");
|
| 13 |
dojo.declare("dojox.mdnd.PureSource",dojo.dnd.Selector,{horizontal:false,copyOnly:true,skipForm:false,withHandles:false,isSource:true,targetState:"Disabled",generateText:true,constructor:function(_1,_2){ |
| 14 |
dojo.mixin(this,dojo.mixin({},_2));
|
| 15 |
var _3=this.accept; |
| 16 |
this.isDragging=false; |
| 17 |
this.mouseDown=false; |
| 18 |
this.sourceState=""; |
| 19 |
dojo.addClass(this.node,"dojoDndSource"); |
| 20 |
if(this.horizontal){ |
| 21 |
dojo.addClass(this.node,"dojoDndHorizontal"); |
| 22 |
} |
| 23 |
this.topics=[dojo.subscribe("/dnd/cancel",this,"onDndCancel"),dojo.subscribe("/dnd/drop",this,"onDndCancel")]; |
| 24 |
},onDndCancel:function(){ |
| 25 |
this.isDragging=false; |
| 26 |
this.mouseDown=false; |
| 27 |
delete this.mouseButton; |
| 28 |
},copyState:function(_4){ |
| 29 |
return this.copyOnly||_4; |
| 30 |
},destroy:function(){ |
| 31 |
dojox.mdnd.PureSource.superclass.destroy.call(this);
|
| 32 |
dojo.forEach(this.topics,dojo.unsubscribe);
|
| 33 |
this.targetAnchor=null; |
| 34 |
},markupFactory:function(_5,_6){ |
| 35 |
_5._skipStartup=true;
|
| 36 |
return new dojox.mdnd.PureSource(_6,_5); |
| 37 |
},onMouseMove:function(e){ |
| 38 |
if(this.isDragging){ |
| 39 |
return;
|
| 40 |
} |
| 41 |
dojox.mdnd.PureSource.superclass.onMouseMove.call(this,e);
|
| 42 |
var m=dojo.dnd.manager();
|
| 43 |
if(this.mouseDown&&!this.isDragging&&this.isSource){ |
| 44 |
var _7=this.getSelectedNodes(); |
| 45 |
if(_7.length){
|
| 46 |
m.startDrag(this,_7,this.copyState(dojo.isCopyKey(e))); |
| 47 |
this.isDragging=true; |
| 48 |
} |
| 49 |
} |
| 50 |
},onMouseDown:function(e){ |
| 51 |
if(this._legalMouseDown(e)&&(!this.skipForm||!dojo.dnd.isFormElement(e))){ |
| 52 |
this.mouseDown=true; |
| 53 |
this.mouseButton=e.button;
|
| 54 |
dojox.mdnd.PureSource.superclass.onMouseDown.call(this,e);
|
| 55 |
} |
| 56 |
},onMouseUp:function(e){ |
| 57 |
if(this.mouseDown){ |
| 58 |
this.mouseDown=false; |
| 59 |
dojox.mdnd.PureSource.superclass.onMouseUp.call(this,e);
|
| 60 |
} |
| 61 |
},onOverEvent:function(){ |
| 62 |
dojox.mdnd.PureSource.superclass.onOverEvent.call(this);
|
| 63 |
dojo.dnd.manager().overSource(this);
|
| 64 |
},onOutEvent:function(){ |
| 65 |
dojox.mdnd.PureSource.superclass.onOutEvent.call(this);
|
| 66 |
dojo.dnd.manager().outSource(this);
|
| 67 |
},_markDndStatus:function(_8){ |
| 68 |
this._changeState("Source",_8?"Copied":"Moved"); |
| 69 |
},_legalMouseDown:function(e){ |
| 70 |
if(!this.withHandles){ |
| 71 |
return true; |
| 72 |
} |
| 73 |
for(var _9=e.target;_9&&!dojo.hasClass(_9,"dojoDndItem");_9=_9.parentNode){ |
| 74 |
if(dojo.hasClass(_9,"dojoDndHandle")){ |
| 75 |
return true; |
| 76 |
} |
| 77 |
} |
| 78 |
return false; |
| 79 |
}}); |
| 80 |
} |