123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- define("dojox/mdnd/PureSource", ["dojo/_base/kernel","dojo/_base/declare","dojo/_base/html","dojo/_base/connect",
- "dojo/_base/array","dojo/dnd/Selector","dojo/dnd/Manager"],function(dojo){
- return dojo.declare(
- "dojox.mdnd.PureSource",
- dojo.dnd.Selector,
- {
-
-
-
-
-
- horizontal: false,
- copyOnly: true,
- skipForm: false,
- withHandles: false,
- isSource: true,
- targetState: "Disabled",
- generateText: true,
-
- constructor: function(/*DOMNode|String*/node, /*dojo.dnd.__SourceArgs?*/params){
-
-
-
-
-
-
-
-
-
- dojo.mixin(this, dojo.mixin({}, params));
- var type = this.accept;
-
-
- this.isDragging = false;
- this.mouseDown = false;
-
-
- this.sourceState = "";
- dojo.addClass(this.node, "dojoDndSource");
- if(this.horizontal){
- dojo.addClass(this.node, "dojoDndHorizontal");
- }
-
- this.topics = [
- dojo.subscribe("/dnd/cancel", this, "onDndCancel"),
- dojo.subscribe("/dnd/drop", this, "onDndCancel")
- ];
- },
-
- onDndCancel: function(){
-
-
-
-
-
-
-
- this.isDragging = false;
- this.mouseDown = false;
- delete this.mouseButton;
- },
-
- copyState: function(/*Boolean*/keyPressed){
-
-
-
-
-
-
-
-
-
- return this.copyOnly || keyPressed;
- },
-
- destroy: function(){
-
-
-
-
- dojox.mdnd.PureSource.superclass.destroy.call(this);
- dojo.forEach(this.topics, dojo.unsubscribe);
- this.targetAnchor = null;
- },
-
- markupFactory: function(/*Object*/params, /*DomNode*/node){
-
-
-
-
-
-
-
-
-
-
- params._skipStartup = true;
- return new dojox.mdnd.PureSource(node, params);
- },
-
- onMouseMove: function(/*Event*/e){
-
-
-
-
-
-
- if(this.isDragging){
- return;
- }
- dojox.mdnd.PureSource.superclass.onMouseMove.call(this, e);
- var m = dojo.dnd.manager();
- if(this.mouseDown && !this.isDragging && this.isSource){
- var nodes = this.getSelectedNodes();
- if(nodes.length){
- m.startDrag(this, nodes, this.copyState(dojo.isCopyKey(e)));
- this.isDragging = true;
- }
- }
-
- },
-
- onMouseDown: function(/*Event*/e){
-
-
-
-
-
-
-
-
- if(this._legalMouseDown(e) && (!this.skipForm || !dojo.dnd.isFormElement(e))){
- this.mouseDown = true;
- this.mouseButton = e.button;
- dojox.mdnd.PureSource.superclass.onMouseDown.call(this, e);
- }
- },
-
- onMouseUp: function(/*Event*/e){
-
-
-
-
-
-
-
-
- if(this.mouseDown){
- this.mouseDown = false;
- dojox.mdnd.PureSource.superclass.onMouseUp.call(this, e);
- }
- },
-
- onOverEvent: function(){
-
-
-
-
-
-
- dojox.mdnd.PureSource.superclass.onOverEvent.call(this);
- dojo.dnd.manager().overSource(this);
- },
-
- onOutEvent: function(){
-
-
-
-
-
-
- dojox.mdnd.PureSource.superclass.onOutEvent.call(this);
- dojo.dnd.manager().outSource(this);
- },
-
- _markDndStatus: function(/*Boolean*/copy){
-
-
-
-
-
-
-
-
- this._changeState("Source", copy ? "Copied" : "Moved");
- },
-
- _legalMouseDown: function(/*Event*/e){
-
-
-
-
-
-
-
-
-
-
- if(!this.withHandles){ return true; }
- for(var node = e.target; node && !dojo.hasClass(node, "dojoDndItem"); node = node.parentNode){
- if(dojo.hasClass(node, "dojoDndHandle")){ return true; }
- }
- return false;
- }
- });
- });
|