Project

General

Profile

Statistics
| Revision:

root / trunk / web / dojo / dojox / mdnd / PureSource.js @ 9

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
}