root / trunk / web / dojo / dojox / mdnd / PureSource.js @ 9
History | View | Annotate | Download (2.48 KB)
1 | 9 | andrej.cim | /*
|
---|---|---|---|
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 | } |