diff options
author | Andrew Dolgov <[email protected]> | 2010-11-15 10:39:52 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2010-11-15 10:39:52 +0300 |
commit | 2f01fe57a8d37767827d6db42850aef86a767c53 (patch) | |
tree | 516a95ffce2fc2435aed8d9976e444dbcba7dce3 /lib/dojo/dnd | |
parent | 951906dcecb1d3c7bcf751976a03e0c196ca6db0 (diff) |
add dijit/dojo stuff; initial ui mockup
Diffstat (limited to 'lib/dojo/dnd')
-rw-r--r-- | lib/dojo/dnd/Avatar.js | 64 | ||||
-rw-r--r-- | lib/dojo/dnd/Container.js | 235 | ||||
-rw-r--r-- | lib/dojo/dnd/Manager.js | 128 | ||||
-rw-r--r-- | lib/dojo/dnd/Moveable.js | 77 | ||||
-rw-r--r-- | lib/dojo/dnd/Mover.js | 65 | ||||
-rw-r--r-- | lib/dojo/dnd/Selector.js | 239 | ||||
-rw-r--r-- | lib/dojo/dnd/Source.js | 298 | ||||
-rw-r--r-- | lib/dojo/dnd/TimedMoveable.js | 40 | ||||
-rw-r--r-- | lib/dojo/dnd/autoscroll.js | 99 | ||||
-rw-r--r-- | lib/dojo/dnd/common.js | 28 | ||||
-rw-r--r-- | lib/dojo/dnd/move.js | 125 |
11 files changed, 1398 insertions, 0 deletions
diff --git a/lib/dojo/dnd/Avatar.js b/lib/dojo/dnd/Avatar.js new file mode 100644 index 000000000..057668026 --- /dev/null +++ b/lib/dojo/dnd/Avatar.js @@ -0,0 +1,64 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dojo.dnd.Avatar"]){ +dojo._hasResource["dojo.dnd.Avatar"]=true; +dojo.provide("dojo.dnd.Avatar"); +dojo.require("dojo.dnd.common"); +dojo.declare("dojo.dnd.Avatar",null,{constructor:function(_1){ +this.manager=_1; +this.construct(); +},construct:function(){ +this.isA11y=dojo.hasClass(dojo.body(),"dijit_a11y"); +var a=dojo.create("table",{"class":"dojoDndAvatar",style:{position:"absolute",zIndex:"1999",margin:"0px"}}),_2=this.manager.source,_3,b=dojo.create("tbody",null,a),tr=dojo.create("tr",null,b),td=dojo.create("td",null,tr),_4=this.isA11y?dojo.create("span",{id:"a11yIcon",innerHTML:this.manager.copy?"+":"<"},td):null,_5=dojo.create("span",{innerHTML:_2.generateText?this._generateText():""},td),k=Math.min(5,this.manager.nodes.length),i=0; +dojo.attr(tr,{"class":"dojoDndAvatarHeader",style:{opacity:0.9}}); +for(;i<k;++i){ +if(_2.creator){ +_3=_2._normalizedCreator(_2.getItem(this.manager.nodes[i].id).data,"avatar").node; +}else{ +_3=this.manager.nodes[i].cloneNode(true); +if(_3.tagName.toLowerCase()=="tr"){ +var _6=dojo.create("table"),_7=dojo.create("tbody",null,_6); +_7.appendChild(_3); +_3=_6; +} +} +_3.id=""; +tr=dojo.create("tr",null,b); +td=dojo.create("td",null,tr); +td.appendChild(_3); +dojo.attr(tr,{"class":"dojoDndAvatarItem",style:{opacity:(9-i)/10}}); +} +this.node=a; +},destroy:function(){ +dojo.destroy(this.node); +this.node=false; +},update:function(){ +dojo[(this.manager.canDropFlag?"add":"remove")+"Class"](this.node,"dojoDndAvatarCanDrop"); +if(this.isA11y){ +var _8=dojo.byId("a11yIcon"); +var _9="+"; +if(this.manager.canDropFlag&&!this.manager.copy){ +_9="< "; +}else{ +if(!this.manager.canDropFlag&&!this.manager.copy){ +_9="o"; +}else{ +if(!this.manager.canDropFlag){ +_9="x"; +} +} +} +_8.innerHTML=_9; +} +dojo.query(("tr.dojoDndAvatarHeader td span"+(this.isA11y?" span":"")),this.node).forEach(function(_a){ +_a.innerHTML=this._generateText(); +},this); +},_generateText:function(){ +return this.manager.nodes.length.toString(); +}}); +} diff --git a/lib/dojo/dnd/Container.js b/lib/dojo/dnd/Container.js new file mode 100644 index 000000000..01e4ce2d9 --- /dev/null +++ b/lib/dojo/dnd/Container.js @@ -0,0 +1,235 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dojo.dnd.Container"]){ +dojo._hasResource["dojo.dnd.Container"]=true; +dojo.provide("dojo.dnd.Container"); +dojo.require("dojo.dnd.common"); +dojo.require("dojo.parser"); +dojo.declare("dojo.dnd.Container",null,{skipForm:false,constructor:function(_1,_2){ +this.node=dojo.byId(_1); +if(!_2){ +_2={}; +} +this.creator=_2.creator||null; +this.skipForm=_2.skipForm; +this.parent=_2.dropParent&&dojo.byId(_2.dropParent); +this.map={}; +this.current=null; +this.containerState=""; +dojo.addClass(this.node,"dojoDndContainer"); +if(!(_2&&_2._skipStartup)){ +this.startup(); +} +this.events=[dojo.connect(this.node,"onmouseover",this,"onMouseOver"),dojo.connect(this.node,"onmouseout",this,"onMouseOut"),dojo.connect(this.node,"ondragstart",this,"onSelectStart"),dojo.connect(this.node,"onselectstart",this,"onSelectStart")]; +},creator:function(){ +},getItem:function(_3){ +return this.map[_3]; +},setItem:function(_4,_5){ +this.map[_4]=_5; +},delItem:function(_6){ +delete this.map[_6]; +},forInItems:function(f,o){ +o=o||dojo.global; +var m=this.map,e=dojo.dnd._empty; +for(var i in m){ +if(i in e){ +continue; +} +f.call(o,m[i],i,this); +} +return o; +},clearItems:function(){ +this.map={}; +},getAllNodes:function(){ +return dojo.query("> .dojoDndItem",this.parent); +},sync:function(){ +var _7={}; +this.getAllNodes().forEach(function(_8){ +if(_8.id){ +var _9=this.getItem(_8.id); +if(_9){ +_7[_8.id]=_9; +return; +} +}else{ +_8.id=dojo.dnd.getUniqueId(); +} +var _a=_8.getAttribute("dndType"),_b=_8.getAttribute("dndData"); +_7[_8.id]={data:_b||_8.innerHTML,type:_a?_a.split(/\s*,\s*/):["text"]}; +},this); +this.map=_7; +return this; +},insertNodes:function(_c,_d,_e){ +if(!this.parent.firstChild){ +_e=null; +}else{ +if(_d){ +if(!_e){ +_e=this.parent.firstChild; +} +}else{ +if(_e){ +_e=_e.nextSibling; +} +} +} +if(_e){ +for(var i=0;i<_c.length;++i){ +var t=this._normalizedCreator(_c[i]); +this.setItem(t.node.id,{data:t.data,type:t.type}); +this.parent.insertBefore(t.node,_e); +} +}else{ +for(var i=0;i<_c.length;++i){ +var t=this._normalizedCreator(_c[i]); +this.setItem(t.node.id,{data:t.data,type:t.type}); +this.parent.appendChild(t.node); +} +} +return this; +},destroy:function(){ +dojo.forEach(this.events,dojo.disconnect); +this.clearItems(); +this.node=this.parent=this.current=null; +},markupFactory:function(_f,_10){ +_f._skipStartup=true; +return new dojo.dnd.Container(_10,_f); +},startup:function(){ +if(!this.parent){ +this.parent=this.node; +if(this.parent.tagName.toLowerCase()=="table"){ +var c=this.parent.getElementsByTagName("tbody"); +if(c&&c.length){ +this.parent=c[0]; +} +} +} +this.defaultCreator=dojo.dnd._defaultCreator(this.parent); +this.sync(); +},onMouseOver:function(e){ +var n=e.relatedTarget; +while(n){ +if(n==this.node){ +break; +} +try{ +n=n.parentNode; +} +catch(x){ +n=null; +} +} +if(!n){ +this._changeState("Container","Over"); +this.onOverEvent(); +} +n=this._getChildByEvent(e); +if(this.current==n){ +return; +} +if(this.current){ +this._removeItemClass(this.current,"Over"); +} +if(n){ +this._addItemClass(n,"Over"); +} +this.current=n; +},onMouseOut:function(e){ +for(var n=e.relatedTarget;n;){ +if(n==this.node){ +return; +} +try{ +n=n.parentNode; +} +catch(x){ +n=null; +} +} +if(this.current){ +this._removeItemClass(this.current,"Over"); +this.current=null; +} +this._changeState("Container",""); +this.onOutEvent(); +},onSelectStart:function(e){ +if(!this.skipForm||!dojo.dnd.isFormElement(e)){ +dojo.stopEvent(e); +} +},onOverEvent:function(){ +},onOutEvent:function(){ +},_changeState:function(_11,_12){ +var _13="dojoDnd"+_11; +var _14=_11.toLowerCase()+"State"; +dojo.removeClass(this.node,_13+this[_14]); +dojo.addClass(this.node,_13+_12); +this[_14]=_12; +},_addItemClass:function(_15,_16){ +dojo.addClass(_15,"dojoDndItem"+_16); +},_removeItemClass:function(_17,_18){ +dojo.removeClass(_17,"dojoDndItem"+_18); +},_getChildByEvent:function(e){ +var _19=e.target; +if(_19){ +for(var _1a=_19.parentNode;_1a;_19=_1a,_1a=_19.parentNode){ +if(_1a==this.parent&&dojo.hasClass(_19,"dojoDndItem")){ +return _19; +} +} +} +return null; +},_normalizedCreator:function(_1b,_1c){ +var t=(this.creator||this.defaultCreator).call(this,_1b,_1c); +if(!dojo.isArray(t.type)){ +t.type=["text"]; +} +if(!t.node.id){ +t.node.id=dojo.dnd.getUniqueId(); +} +dojo.addClass(t.node,"dojoDndItem"); +return t; +}}); +dojo.dnd._createNode=function(tag){ +if(!tag){ +return dojo.dnd._createSpan; +} +return function(_1d){ +return dojo.create(tag,{innerHTML:_1d}); +}; +}; +dojo.dnd._createTrTd=function(_1e){ +var tr=dojo.create("tr"); +dojo.create("td",{innerHTML:_1e},tr); +return tr; +}; +dojo.dnd._createSpan=function(_1f){ +return dojo.create("span",{innerHTML:_1f}); +}; +dojo.dnd._defaultCreatorNodes={ul:"li",ol:"li",div:"div",p:"div"}; +dojo.dnd._defaultCreator=function(_20){ +var tag=_20.tagName.toLowerCase(); +var c=tag=="tbody"||tag=="thead"?dojo.dnd._createTrTd:dojo.dnd._createNode(dojo.dnd._defaultCreatorNodes[tag]); +return function(_21,_22){ +var _23=_21&&dojo.isObject(_21),_24,_25,n; +if(_23&&_21.tagName&&_21.nodeType&&_21.getAttribute){ +_24=_21.getAttribute("dndData")||_21.innerHTML; +_25=_21.getAttribute("dndType"); +_25=_25?_25.split(/\s*,\s*/):["text"]; +n=_21; +}else{ +_24=(_23&&_21.data)?_21.data:_21; +_25=(_23&&_21.type)?_21.type:["text"]; +n=(_22=="avatar"?dojo.dnd._createSpan:c)(String(_24)); +} +if(!n.id){ +n.id=dojo.dnd.getUniqueId(); +} +return {node:n,data:_24,type:_25}; +}; +}; +} diff --git a/lib/dojo/dnd/Manager.js b/lib/dojo/dnd/Manager.js new file mode 100644 index 000000000..c6f91aac3 --- /dev/null +++ b/lib/dojo/dnd/Manager.js @@ -0,0 +1,128 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dojo.dnd.Manager"]){ +dojo._hasResource["dojo.dnd.Manager"]=true; +dojo.provide("dojo.dnd.Manager"); +dojo.require("dojo.dnd.common"); +dojo.require("dojo.dnd.autoscroll"); +dojo.require("dojo.dnd.Avatar"); +dojo.declare("dojo.dnd.Manager",null,{constructor:function(){ +this.avatar=null; +this.source=null; +this.nodes=[]; +this.copy=true; +this.target=null; +this.canDropFlag=false; +this.events=[]; +},OFFSET_X:16,OFFSET_Y:16,overSource:function(_1){ +if(this.avatar){ +this.target=(_1&&_1.targetState!="Disabled")?_1:null; +this.canDropFlag=Boolean(this.target); +this.avatar.update(); +} +dojo.publish("/dnd/source/over",[_1]); +},outSource:function(_2){ +if(this.avatar){ +if(this.target==_2){ +this.target=null; +this.canDropFlag=false; +this.avatar.update(); +dojo.publish("/dnd/source/over",[null]); +} +}else{ +dojo.publish("/dnd/source/over",[null]); +} +},startDrag:function(_3,_4,_5){ +this.source=_3; +this.nodes=_4; +this.copy=Boolean(_5); +this.avatar=this.makeAvatar(); +dojo.body().appendChild(this.avatar.node); +dojo.publish("/dnd/start",[_3,_4,this.copy]); +this.events=[dojo.connect(dojo.doc,"onmousemove",this,"onMouseMove"),dojo.connect(dojo.doc,"onmouseup",this,"onMouseUp"),dojo.connect(dojo.doc,"onkeydown",this,"onKeyDown"),dojo.connect(dojo.doc,"onkeyup",this,"onKeyUp"),dojo.connect(dojo.doc,"ondragstart",dojo.stopEvent),dojo.connect(dojo.body(),"onselectstart",dojo.stopEvent)]; +var c="dojoDnd"+(_5?"Copy":"Move"); +dojo.addClass(dojo.body(),c); +},canDrop:function(_6){ +var _7=Boolean(this.target&&_6); +if(this.canDropFlag!=_7){ +this.canDropFlag=_7; +this.avatar.update(); +} +},stopDrag:function(){ +dojo.removeClass(dojo.body(),"dojoDndCopy"); +dojo.removeClass(dojo.body(),"dojoDndMove"); +dojo.forEach(this.events,dojo.disconnect); +this.events=[]; +this.avatar.destroy(); +this.avatar=null; +this.source=this.target=null; +this.nodes=[]; +},makeAvatar:function(){ +return new dojo.dnd.Avatar(this); +},updateAvatar:function(){ +this.avatar.update(); +},onMouseMove:function(e){ +var a=this.avatar; +if(a){ +dojo.dnd.autoScrollNodes(e); +var s=a.node.style; +s.left=(e.pageX+this.OFFSET_X)+"px"; +s.top=(e.pageY+this.OFFSET_Y)+"px"; +var _8=Boolean(this.source.copyState(dojo.isCopyKey(e))); +if(this.copy!=_8){ +this._setCopyStatus(_8); +} +} +},onMouseUp:function(e){ +if(this.avatar){ +if(this.target&&this.canDropFlag){ +var _9=Boolean(this.source.copyState(dojo.isCopyKey(e))),_a=[this.source,this.nodes,_9,this.target,e]; +dojo.publish("/dnd/drop/before",_a); +dojo.publish("/dnd/drop",_a); +}else{ +dojo.publish("/dnd/cancel"); +} +this.stopDrag(); +} +},onKeyDown:function(e){ +if(this.avatar){ +switch(e.keyCode){ +case dojo.keys.CTRL: +var _b=Boolean(this.source.copyState(true)); +if(this.copy!=_b){ +this._setCopyStatus(_b); +} +break; +case dojo.keys.ESCAPE: +dojo.publish("/dnd/cancel"); +this.stopDrag(); +break; +} +} +},onKeyUp:function(e){ +if(this.avatar&&e.keyCode==dojo.keys.CTRL){ +var _c=Boolean(this.source.copyState(false)); +if(this.copy!=_c){ +this._setCopyStatus(_c); +} +} +},_setCopyStatus:function(_d){ +this.copy=_d; +this.source._markDndStatus(this.copy); +this.updateAvatar(); +dojo.removeClass(dojo.body(),"dojoDnd"+(this.copy?"Move":"Copy")); +dojo.addClass(dojo.body(),"dojoDnd"+(this.copy?"Copy":"Move")); +}}); +dojo.dnd._manager=null; +dojo.dnd.manager=function(){ +if(!dojo.dnd._manager){ +dojo.dnd._manager=new dojo.dnd.Manager(); +} +return dojo.dnd._manager; +}; +} diff --git a/lib/dojo/dnd/Moveable.js b/lib/dojo/dnd/Moveable.js new file mode 100644 index 000000000..17d8d9200 --- /dev/null +++ b/lib/dojo/dnd/Moveable.js @@ -0,0 +1,77 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dojo.dnd.Moveable"]){ +dojo._hasResource["dojo.dnd.Moveable"]=true; +dojo.provide("dojo.dnd.Moveable"); +dojo.require("dojo.dnd.Mover"); +dojo.declare("dojo.dnd.Moveable",null,{handle:"",delay:0,skip:false,constructor:function(_1,_2){ +this.node=dojo.byId(_1); +if(!_2){ +_2={}; +} +this.handle=_2.handle?dojo.byId(_2.handle):null; +if(!this.handle){ +this.handle=this.node; +} +this.delay=_2.delay>0?_2.delay:0; +this.skip=_2.skip; +this.mover=_2.mover?_2.mover:dojo.dnd.Mover; +this.events=[dojo.connect(this.handle,"onmousedown",this,"onMouseDown"),dojo.connect(this.handle,"ondragstart",this,"onSelectStart"),dojo.connect(this.handle,"onselectstart",this,"onSelectStart")]; +},markupFactory:function(_3,_4){ +return new dojo.dnd.Moveable(_4,_3); +},destroy:function(){ +dojo.forEach(this.events,dojo.disconnect); +this.events=this.node=this.handle=null; +},onMouseDown:function(e){ +if(this.skip&&dojo.dnd.isFormElement(e)){ +return; +} +if(this.delay){ +this.events.push(dojo.connect(this.handle,"onmousemove",this,"onMouseMove"),dojo.connect(this.handle,"onmouseup",this,"onMouseUp")); +this._lastX=e.pageX; +this._lastY=e.pageY; +}else{ +this.onDragDetected(e); +} +dojo.stopEvent(e); +},onMouseMove:function(e){ +if(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay){ +this.onMouseUp(e); +this.onDragDetected(e); +} +dojo.stopEvent(e); +},onMouseUp:function(e){ +for(var i=0;i<2;++i){ +dojo.disconnect(this.events.pop()); +} +dojo.stopEvent(e); +},onSelectStart:function(e){ +if(!this.skip||!dojo.dnd.isFormElement(e)){ +dojo.stopEvent(e); +} +},onDragDetected:function(e){ +new this.mover(this.node,e,this); +},onMoveStart:function(_5){ +dojo.publish("/dnd/move/start",[_5]); +dojo.addClass(dojo.body(),"dojoMove"); +dojo.addClass(this.node,"dojoMoveItem"); +},onMoveStop:function(_6){ +dojo.publish("/dnd/move/stop",[_6]); +dojo.removeClass(dojo.body(),"dojoMove"); +dojo.removeClass(this.node,"dojoMoveItem"); +},onFirstMove:function(_7,e){ +},onMove:function(_8,_9,e){ +this.onMoving(_8,_9); +var s=_8.node.style; +s.left=_9.l+"px"; +s.top=_9.t+"px"; +this.onMoved(_8,_9); +},onMoving:function(_a,_b){ +},onMoved:function(_c,_d){ +}}); +} diff --git a/lib/dojo/dnd/Mover.js b/lib/dojo/dnd/Mover.js new file mode 100644 index 000000000..6ea793efc --- /dev/null +++ b/lib/dojo/dnd/Mover.js @@ -0,0 +1,65 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dojo.dnd.Mover"]){ +dojo._hasResource["dojo.dnd.Mover"]=true; +dojo.provide("dojo.dnd.Mover"); +dojo.require("dojo.dnd.common"); +dojo.require("dojo.dnd.autoscroll"); +dojo.declare("dojo.dnd.Mover",null,{constructor:function(_1,e,_2){ +this.node=dojo.byId(_1); +this.marginBox={l:e.pageX,t:e.pageY}; +this.mouseButton=e.button; +var h=this.host=_2,d=_1.ownerDocument,_3=dojo.connect(d,"onmousemove",this,"onFirstMove"); +this.events=[dojo.connect(d,"onmousemove",this,"onMouseMove"),dojo.connect(d,"onmouseup",this,"onMouseUp"),dojo.connect(d,"ondragstart",dojo.stopEvent),dojo.connect(d.body,"onselectstart",dojo.stopEvent),_3]; +if(h&&h.onMoveStart){ +h.onMoveStart(this); +} +},onMouseMove:function(e){ +dojo.dnd.autoScroll(e); +var m=this.marginBox; +this.host.onMove(this,{l:m.l+e.pageX,t:m.t+e.pageY},e); +dojo.stopEvent(e); +},onMouseUp:function(e){ +if(dojo.isWebKit&&dojo.isMac&&this.mouseButton==2?e.button==0:this.mouseButton==e.button){ +this.destroy(); +} +dojo.stopEvent(e); +},onFirstMove:function(e){ +var s=this.node.style,l,t,h=this.host; +switch(s.position){ +case "relative": +case "absolute": +l=Math.round(parseFloat(s.left))||0; +t=Math.round(parseFloat(s.top))||0; +break; +default: +s.position="absolute"; +var m=dojo.marginBox(this.node); +var b=dojo.doc.body; +var bs=dojo.getComputedStyle(b); +var bm=dojo._getMarginBox(b,bs); +var bc=dojo._getContentBox(b,bs); +l=m.l-(bc.l-bm.l); +t=m.t-(bc.t-bm.t); +break; +} +this.marginBox.l=l-this.marginBox.l; +this.marginBox.t=t-this.marginBox.t; +if(h&&h.onFirstMove){ +h.onFirstMove(this,e); +} +dojo.disconnect(this.events.pop()); +},destroy:function(){ +dojo.forEach(this.events,dojo.disconnect); +var h=this.host; +if(h&&h.onMoveStop){ +h.onMoveStop(this); +} +this.events=this.node=this.host=null; +}}); +} diff --git a/lib/dojo/dnd/Selector.js b/lib/dojo/dnd/Selector.js new file mode 100644 index 000000000..95c1bff47 --- /dev/null +++ b/lib/dojo/dnd/Selector.js @@ -0,0 +1,239 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dojo.dnd.Selector"]){ +dojo._hasResource["dojo.dnd.Selector"]=true; +dojo.provide("dojo.dnd.Selector"); +dojo.require("dojo.dnd.common"); +dojo.require("dojo.dnd.Container"); +dojo.declare("dojo.dnd.Selector",dojo.dnd.Container,{constructor:function(_1,_2){ +if(!_2){ +_2={}; +} +this.singular=_2.singular; +this.autoSync=_2.autoSync; +this.selection={}; +this.anchor=null; +this.simpleSelection=false; +this.events.push(dojo.connect(this.node,"onmousedown",this,"onMouseDown"),dojo.connect(this.node,"onmouseup",this,"onMouseUp")); +},singular:false,getSelectedNodes:function(){ +var t=new dojo.NodeList(); +var e=dojo.dnd._empty; +for(var i in this.selection){ +if(i in e){ +continue; +} +t.push(dojo.byId(i)); +} +return t; +},selectNone:function(){ +return this._removeSelection()._removeAnchor(); +},selectAll:function(){ +this.forInItems(function(_3,id){ +this._addItemClass(dojo.byId(id),"Selected"); +this.selection[id]=1; +},this); +return this._removeAnchor(); +},deleteSelectedNodes:function(){ +var e=dojo.dnd._empty; +for(var i in this.selection){ +if(i in e){ +continue; +} +var n=dojo.byId(i); +this.delItem(i); +dojo.destroy(n); +} +this.anchor=null; +this.selection={}; +return this; +},forInSelectedItems:function(f,o){ +o=o||dojo.global; +var s=this.selection,e=dojo.dnd._empty; +for(var i in s){ +if(i in e){ +continue; +} +f.call(o,this.getItem(i),i,this); +} +},sync:function(){ +dojo.dnd.Selector.superclass.sync.call(this); +if(this.anchor){ +if(!this.getItem(this.anchor.id)){ +this.anchor=null; +} +} +var t=[],e=dojo.dnd._empty; +for(var i in this.selection){ +if(i in e){ +continue; +} +if(!this.getItem(i)){ +t.push(i); +} +} +dojo.forEach(t,function(i){ +delete this.selection[i]; +},this); +return this; +},insertNodes:function(_4,_5,_6,_7){ +var _8=this._normalizedCreator; +this._normalizedCreator=function(_9,_a){ +var t=_8.call(this,_9,_a); +if(_4){ +if(!this.anchor){ +this.anchor=t.node; +this._removeItemClass(t.node,"Selected"); +this._addItemClass(this.anchor,"Anchor"); +}else{ +if(this.anchor!=t.node){ +this._removeItemClass(t.node,"Anchor"); +this._addItemClass(t.node,"Selected"); +} +} +this.selection[t.node.id]=1; +}else{ +this._removeItemClass(t.node,"Selected"); +this._removeItemClass(t.node,"Anchor"); +} +return t; +}; +dojo.dnd.Selector.superclass.insertNodes.call(this,_5,_6,_7); +this._normalizedCreator=_8; +return this; +},destroy:function(){ +dojo.dnd.Selector.superclass.destroy.call(this); +this.selection=this.anchor=null; +},markupFactory:function(_b,_c){ +_b._skipStartup=true; +return new dojo.dnd.Selector(_c,_b); +},onMouseDown:function(e){ +if(this.autoSync){ +this.sync(); +} +if(!this.current){ +return; +} +if(!this.singular&&!dojo.isCopyKey(e)&&!e.shiftKey&&(this.current.id in this.selection)){ +this.simpleSelection=true; +if(e.button===dojo.mouseButtons.LEFT){ +dojo.stopEvent(e); +} +return; +} +if(!this.singular&&e.shiftKey){ +if(!dojo.isCopyKey(e)){ +this._removeSelection(); +} +var c=this.getAllNodes(); +if(c.length){ +if(!this.anchor){ +this.anchor=c[0]; +this._addItemClass(this.anchor,"Anchor"); +} +this.selection[this.anchor.id]=1; +if(this.anchor!=this.current){ +var i=0; +for(;i<c.length;++i){ +var _d=c[i]; +if(_d==this.anchor||_d==this.current){ +break; +} +} +for(++i;i<c.length;++i){ +var _d=c[i]; +if(_d==this.anchor||_d==this.current){ +break; +} +this._addItemClass(_d,"Selected"); +this.selection[_d.id]=1; +} +this._addItemClass(this.current,"Selected"); +this.selection[this.current.id]=1; +} +} +}else{ +if(this.singular){ +if(this.anchor==this.current){ +if(dojo.isCopyKey(e)){ +this.selectNone(); +} +}else{ +this.selectNone(); +this.anchor=this.current; +this._addItemClass(this.anchor,"Anchor"); +this.selection[this.current.id]=1; +} +}else{ +if(dojo.isCopyKey(e)){ +if(this.anchor==this.current){ +delete this.selection[this.anchor.id]; +this._removeAnchor(); +}else{ +if(this.current.id in this.selection){ +this._removeItemClass(this.current,"Selected"); +delete this.selection[this.current.id]; +}else{ +if(this.anchor){ +this._removeItemClass(this.anchor,"Anchor"); +this._addItemClass(this.anchor,"Selected"); +} +this.anchor=this.current; +this._addItemClass(this.current,"Anchor"); +this.selection[this.current.id]=1; +} +} +}else{ +if(!(this.current.id in this.selection)){ +this.selectNone(); +this.anchor=this.current; +this._addItemClass(this.current,"Anchor"); +this.selection[this.current.id]=1; +} +} +} +} +dojo.stopEvent(e); +},onMouseUp:function(e){ +if(!this.simpleSelection){ +return; +} +this.simpleSelection=false; +this.selectNone(); +if(this.current){ +this.anchor=this.current; +this._addItemClass(this.anchor,"Anchor"); +this.selection[this.current.id]=1; +} +},onMouseMove:function(e){ +this.simpleSelection=false; +},onOverEvent:function(){ +this.onmousemoveEvent=dojo.connect(this.node,"onmousemove",this,"onMouseMove"); +},onOutEvent:function(){ +dojo.disconnect(this.onmousemoveEvent); +delete this.onmousemoveEvent; +},_removeSelection:function(){ +var e=dojo.dnd._empty; +for(var i in this.selection){ +if(i in e){ +continue; +} +var _e=dojo.byId(i); +if(_e){ +this._removeItemClass(_e,"Selected"); +} +} +this.selection={}; +return this; +},_removeAnchor:function(){ +if(this.anchor){ +this._removeItemClass(this.anchor,"Anchor"); +this.anchor=null; +} +return this; +}}); +} diff --git a/lib/dojo/dnd/Source.js b/lib/dojo/dnd/Source.js new file mode 100644 index 000000000..fb05eb048 --- /dev/null +++ b/lib/dojo/dnd/Source.js @@ -0,0 +1,298 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dojo.dnd.Source"]){ +dojo._hasResource["dojo.dnd.Source"]=true; +dojo.provide("dojo.dnd.Source"); +dojo.require("dojo.dnd.Selector"); +dojo.require("dojo.dnd.Manager"); +dojo.declare("dojo.dnd.Source",dojo.dnd.Selector,{isSource:true,horizontal:false,copyOnly:false,selfCopy:false,selfAccept:true,skipForm:false,withHandles:false,autoSync:false,delay:0,accept:["text"],generateText:true,constructor:function(_1,_2){ +dojo.mixin(this,dojo.mixin({},_2)); +var _3=this.accept; +if(_3.length){ +this.accept={}; +for(var i=0;i<_3.length;++i){ +this.accept[_3[i]]=1; +} +} +this.isDragging=false; +this.mouseDown=false; +this.targetAnchor=null; +this.targetBox=null; +this.before=true; +this._lastX=0; +this._lastY=0; +this.sourceState=""; +if(this.isSource){ +dojo.addClass(this.node,"dojoDndSource"); +} +this.targetState=""; +if(this.accept){ +dojo.addClass(this.node,"dojoDndTarget"); +} +if(this.horizontal){ +dojo.addClass(this.node,"dojoDndHorizontal"); +} +this.topics=[dojo.subscribe("/dnd/source/over",this,"onDndSourceOver"),dojo.subscribe("/dnd/start",this,"onDndStart"),dojo.subscribe("/dnd/drop",this,"onDndDrop"),dojo.subscribe("/dnd/cancel",this,"onDndCancel")]; +},checkAcceptance:function(_4,_5){ +if(this==_4){ +return !this.copyOnly||this.selfAccept; +} +for(var i=0;i<_5.length;++i){ +var _6=_4.getItem(_5[i].id).type; +var _7=false; +for(var j=0;j<_6.length;++j){ +if(_6[j] in this.accept){ +_7=true; +break; +} +} +if(!_7){ +return false; +} +} +return true; +},copyState:function(_8,_9){ +if(_8){ +return true; +} +if(arguments.length<2){ +_9=this==dojo.dnd.manager().target; +} +if(_9){ +if(this.copyOnly){ +return this.selfCopy; +} +}else{ +return this.copyOnly; +} +return false; +},destroy:function(){ +dojo.dnd.Source.superclass.destroy.call(this); +dojo.forEach(this.topics,dojo.unsubscribe); +this.targetAnchor=null; +},markupFactory:function(_a,_b){ +_a._skipStartup=true; +return new dojo.dnd.Source(_b,_a); +},onMouseMove:function(e){ +if(this.isDragging&&this.targetState=="Disabled"){ +return; +} +dojo.dnd.Source.superclass.onMouseMove.call(this,e); +var m=dojo.dnd.manager(); +if(!this.isDragging){ +if(this.mouseDown&&this.isSource&&(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay)){ +var _c=this.getSelectedNodes(); +if(_c.length){ +m.startDrag(this,_c,this.copyState(dojo.isCopyKey(e),true)); +} +} +} +if(this.isDragging){ +var _d=false; +if(this.current){ +if(!this.targetBox||this.targetAnchor!=this.current){ +this.targetBox=dojo.position(this.current,true); +} +if(this.horizontal){ +_d=(e.pageX-this.targetBox.x)<(this.targetBox.w/2); +}else{ +_d=(e.pageY-this.targetBox.y)<(this.targetBox.h/2); +} +} +if(this.current!=this.targetAnchor||_d!=this.before){ +this._markTargetAnchor(_d); +m.canDrop(!this.current||m.source!=this||!(this.current.id in this.selection)); +} +} +},onMouseDown:function(e){ +if(!this.mouseDown&&this._legalMouseDown(e)&&(!this.skipForm||!dojo.dnd.isFormElement(e))){ +this.mouseDown=true; +this._lastX=e.pageX; +this._lastY=e.pageY; +dojo.dnd.Source.superclass.onMouseDown.call(this,e); +} +},onMouseUp:function(e){ +if(this.mouseDown){ +this.mouseDown=false; +dojo.dnd.Source.superclass.onMouseUp.call(this,e); +} +},onDndSourceOver:function(_e){ +if(this!=_e){ +this.mouseDown=false; +if(this.targetAnchor){ +this._unmarkTargetAnchor(); +} +}else{ +if(this.isDragging){ +var m=dojo.dnd.manager(); +m.canDrop(this.targetState!="Disabled"&&(!this.current||m.source!=this||!(this.current.id in this.selection))); +} +} +},onDndStart:function(_f,_10,_11){ +if(this.autoSync){ +this.sync(); +} +if(this.isSource){ +this._changeState("Source",this==_f?(_11?"Copied":"Moved"):""); +} +var _12=this.accept&&this.checkAcceptance(_f,_10); +this._changeState("Target",_12?"":"Disabled"); +if(this==_f){ +dojo.dnd.manager().overSource(this); +} +this.isDragging=true; +},onDndDrop:function(_13,_14,_15,_16){ +if(this==_16){ +this.onDrop(_13,_14,_15); +} +this.onDndCancel(); +},onDndCancel:function(){ +if(this.targetAnchor){ +this._unmarkTargetAnchor(); +this.targetAnchor=null; +} +this.before=true; +this.isDragging=false; +this.mouseDown=false; +this._changeState("Source",""); +this._changeState("Target",""); +},onDrop:function(_17,_18,_19){ +if(this!=_17){ +this.onDropExternal(_17,_18,_19); +}else{ +this.onDropInternal(_18,_19); +} +},onDropExternal:function(_1a,_1b,_1c){ +var _1d=this._normalizedCreator; +if(this.creator){ +this._normalizedCreator=function(_1e,_1f){ +return _1d.call(this,_1a.getItem(_1e.id).data,_1f); +}; +}else{ +if(_1c){ +this._normalizedCreator=function(_20,_21){ +var t=_1a.getItem(_20.id); +var n=_20.cloneNode(true); +n.id=dojo.dnd.getUniqueId(); +return {node:n,data:t.data,type:t.type}; +}; +}else{ +this._normalizedCreator=function(_22,_23){ +var t=_1a.getItem(_22.id); +_1a.delItem(_22.id); +return {node:_22,data:t.data,type:t.type}; +}; +} +} +this.selectNone(); +if(!_1c&&!this.creator){ +_1a.selectNone(); +} +this.insertNodes(true,_1b,this.before,this.current); +if(!_1c&&this.creator){ +_1a.deleteSelectedNodes(); +} +this._normalizedCreator=_1d; +},onDropInternal:function(_24,_25){ +var _26=this._normalizedCreator; +if(this.current&&this.current.id in this.selection){ +return; +} +if(_25){ +if(this.creator){ +this._normalizedCreator=function(_27,_28){ +return _26.call(this,this.getItem(_27.id).data,_28); +}; +}else{ +this._normalizedCreator=function(_29,_2a){ +var t=this.getItem(_29.id); +var n=_29.cloneNode(true); +n.id=dojo.dnd.getUniqueId(); +return {node:n,data:t.data,type:t.type}; +}; +} +}else{ +if(!this.current){ +return; +} +this._normalizedCreator=function(_2b,_2c){ +var t=this.getItem(_2b.id); +return {node:_2b,data:t.data,type:t.type}; +}; +} +this._removeSelection(); +this.insertNodes(true,_24,this.before,this.current); +this._normalizedCreator=_26; +},onDraggingOver:function(){ +},onDraggingOut:function(){ +},onOverEvent:function(){ +dojo.dnd.Source.superclass.onOverEvent.call(this); +dojo.dnd.manager().overSource(this); +if(this.isDragging&&this.targetState!="Disabled"){ +this.onDraggingOver(); +} +},onOutEvent:function(){ +dojo.dnd.Source.superclass.onOutEvent.call(this); +dojo.dnd.manager().outSource(this); +if(this.isDragging&&this.targetState!="Disabled"){ +this.onDraggingOut(); +} +},_markTargetAnchor:function(_2d){ +if(this.current==this.targetAnchor&&this.before==_2d){ +return; +} +if(this.targetAnchor){ +this._removeItemClass(this.targetAnchor,this.before?"Before":"After"); +} +this.targetAnchor=this.current; +this.targetBox=null; +this.before=_2d; +if(this.targetAnchor){ +this._addItemClass(this.targetAnchor,this.before?"Before":"After"); +} +},_unmarkTargetAnchor:function(){ +if(!this.targetAnchor){ +return; +} +this._removeItemClass(this.targetAnchor,this.before?"Before":"After"); +this.targetAnchor=null; +this.targetBox=null; +this.before=true; +},_markDndStatus:function(_2e){ +this._changeState("Source",_2e?"Copied":"Moved"); +},_legalMouseDown:function(e){ +if(!dojo.mouseButtons.isLeft(e)){ +return false; +} +if(!this.withHandles){ +return true; +} +for(var _2f=e.target;_2f&&_2f!==this.node;_2f=_2f.parentNode){ +if(dojo.hasClass(_2f,"dojoDndHandle")){ +return true; +} +if(dojo.hasClass(_2f,"dojoDndItem")||dojo.hasClass(_2f,"dojoDndIgnore")){ +break; +} +} +return false; +}}); +dojo.declare("dojo.dnd.Target",dojo.dnd.Source,{constructor:function(_30,_31){ +this.isSource=false; +dojo.removeClass(this.node,"dojoDndSource"); +},markupFactory:function(_32,_33){ +_32._skipStartup=true; +return new dojo.dnd.Target(_33,_32); +}}); +dojo.declare("dojo.dnd.AutoSource",dojo.dnd.Source,{constructor:function(_34,_35){ +this.autoSync=true; +},markupFactory:function(_36,_37){ +_36._skipStartup=true; +return new dojo.dnd.AutoSource(_37,_36); +}}); +} diff --git a/lib/dojo/dnd/TimedMoveable.js b/lib/dojo/dnd/TimedMoveable.js new file mode 100644 index 000000000..05609a379 --- /dev/null +++ b/lib/dojo/dnd/TimedMoveable.js @@ -0,0 +1,40 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dojo.dnd.TimedMoveable"]){ +dojo._hasResource["dojo.dnd.TimedMoveable"]=true; +dojo.provide("dojo.dnd.TimedMoveable"); +dojo.require("dojo.dnd.Moveable"); +(function(){ +var _1=dojo.dnd.Moveable.prototype.onMove; +dojo.declare("dojo.dnd.TimedMoveable",dojo.dnd.Moveable,{timeout:40,constructor:function(_2,_3){ +if(!_3){ +_3={}; +} +if(_3.timeout&&typeof _3.timeout=="number"&&_3.timeout>=0){ +this.timeout=_3.timeout; +} +},markupFactory:function(_4,_5){ +return new dojo.dnd.TimedMoveable(_5,_4); +},onMoveStop:function(_6){ +if(_6._timer){ +clearTimeout(_6._timer); +_1.call(this,_6,_6._leftTop); +} +dojo.dnd.Moveable.prototype.onMoveStop.apply(this,arguments); +},onMove:function(_7,_8){ +_7._leftTop=_8; +if(!_7._timer){ +var _9=this; +_7._timer=setTimeout(function(){ +_7._timer=null; +_1.call(_9,_7,_7._leftTop); +},this.timeout); +} +}}); +})(); +} diff --git a/lib/dojo/dnd/autoscroll.js b/lib/dojo/dnd/autoscroll.js new file mode 100644 index 000000000..27496c6cd --- /dev/null +++ b/lib/dojo/dnd/autoscroll.js @@ -0,0 +1,99 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dojo.dnd.autoscroll"]){ +dojo._hasResource["dojo.dnd.autoscroll"]=true; +dojo.provide("dojo.dnd.autoscroll"); +dojo.dnd.getViewport=function(){ +var d=dojo.doc,dd=d.documentElement,w=window,b=dojo.body(); +if(dojo.isMozilla){ +return {w:dd.clientWidth,h:w.innerHeight}; +}else{ +if(!dojo.isOpera&&w.innerWidth){ +return {w:w.innerWidth,h:w.innerHeight}; +}else{ +if(!dojo.isOpera&&dd&&dd.clientWidth){ +return {w:dd.clientWidth,h:dd.clientHeight}; +}else{ +if(b.clientWidth){ +return {w:b.clientWidth,h:b.clientHeight}; +} +} +} +} +return null; +}; +dojo.dnd.V_TRIGGER_AUTOSCROLL=32; +dojo.dnd.H_TRIGGER_AUTOSCROLL=32; +dojo.dnd.V_AUTOSCROLL_VALUE=16; +dojo.dnd.H_AUTOSCROLL_VALUE=16; +dojo.dnd.autoScroll=function(e){ +var v=dojo.dnd.getViewport(),dx=0,dy=0; +if(e.clientX<dojo.dnd.H_TRIGGER_AUTOSCROLL){ +dx=-dojo.dnd.H_AUTOSCROLL_VALUE; +}else{ +if(e.clientX>v.w-dojo.dnd.H_TRIGGER_AUTOSCROLL){ +dx=dojo.dnd.H_AUTOSCROLL_VALUE; +} +} +if(e.clientY<dojo.dnd.V_TRIGGER_AUTOSCROLL){ +dy=-dojo.dnd.V_AUTOSCROLL_VALUE; +}else{ +if(e.clientY>v.h-dojo.dnd.V_TRIGGER_AUTOSCROLL){ +dy=dojo.dnd.V_AUTOSCROLL_VALUE; +} +} +window.scrollBy(dx,dy); +}; +dojo.dnd._validNodes={"div":1,"p":1,"td":1}; +dojo.dnd._validOverflow={"auto":1,"scroll":1}; +dojo.dnd.autoScrollNodes=function(e){ +for(var n=e.target;n;){ +if(n.nodeType==1&&(n.tagName.toLowerCase() in dojo.dnd._validNodes)){ +var s=dojo.getComputedStyle(n); +if(s.overflow.toLowerCase() in dojo.dnd._validOverflow){ +var b=dojo._getContentBox(n,s),t=dojo.position(n,true); +var w=Math.min(dojo.dnd.H_TRIGGER_AUTOSCROLL,b.w/2),h=Math.min(dojo.dnd.V_TRIGGER_AUTOSCROLL,b.h/2),rx=e.pageX-t.x,ry=e.pageY-t.y,dx=0,dy=0; +if(dojo.isWebKit||dojo.isOpera){ +rx+=dojo.body().scrollLeft,ry+=dojo.body().scrollTop; +} +if(rx>0&&rx<b.w){ +if(rx<w){ +dx=-w; +}else{ +if(rx>b.w-w){ +dx=w; +} +} +} +if(ry>0&&ry<b.h){ +if(ry<h){ +dy=-h; +}else{ +if(ry>b.h-h){ +dy=h; +} +} +} +var _1=n.scrollLeft,_2=n.scrollTop; +n.scrollLeft=n.scrollLeft+dx; +n.scrollTop=n.scrollTop+dy; +if(_1!=n.scrollLeft||_2!=n.scrollTop){ +return; +} +} +} +try{ +n=n.parentNode; +} +catch(x){ +n=null; +} +} +dojo.dnd.autoScroll(e); +}; +} diff --git a/lib/dojo/dnd/common.js b/lib/dojo/dnd/common.js new file mode 100644 index 000000000..d2d18f75a --- /dev/null +++ b/lib/dojo/dnd/common.js @@ -0,0 +1,28 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dojo.dnd.common"]){ +dojo._hasResource["dojo.dnd.common"]=true; +dojo.provide("dojo.dnd.common"); +dojo.dnd.getCopyKeyState=dojo.isCopyKey; +dojo.dnd._uniqueId=0; +dojo.dnd.getUniqueId=function(){ +var id; +do{ +id=dojo._scopeName+"Unique"+(++dojo.dnd._uniqueId); +}while(dojo.byId(id)); +return id; +}; +dojo.dnd._empty={}; +dojo.dnd.isFormElement=function(e){ +var t=e.target; +if(t.nodeType==3){ +t=t.parentNode; +} +return " button textarea input select option ".indexOf(" "+t.tagName.toLowerCase()+" ")>=0; +}; +} diff --git a/lib/dojo/dnd/move.js b/lib/dojo/dnd/move.js new file mode 100644 index 000000000..af7cd98dc --- /dev/null +++ b/lib/dojo/dnd/move.js @@ -0,0 +1,125 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dojo.dnd.move"]){ +dojo._hasResource["dojo.dnd.move"]=true; +dojo.provide("dojo.dnd.move"); +dojo.require("dojo.dnd.Mover"); +dojo.require("dojo.dnd.Moveable"); +dojo.declare("dojo.dnd.move.constrainedMoveable",dojo.dnd.Moveable,{constraints:function(){ +},within:false,markupFactory:function(_1,_2){ +return new dojo.dnd.move.constrainedMoveable(_2,_1); +},constructor:function(_3,_4){ +if(!_4){ +_4={}; +} +this.constraints=_4.constraints; +this.within=_4.within; +},onFirstMove:function(_5){ +var c=this.constraintBox=this.constraints.call(this,_5); +c.r=c.l+c.w; +c.b=c.t+c.h; +if(this.within){ +var mb=dojo.marginBox(_5.node); +c.r-=mb.w; +c.b-=mb.h; +} +},onMove:function(_6,_7){ +var c=this.constraintBox,s=_6.node.style; +s.left=(_7.l<c.l?c.l:c.r<_7.l?c.r:_7.l)+"px"; +s.top=(_7.t<c.t?c.t:c.b<_7.t?c.b:_7.t)+"px"; +}}); +dojo.declare("dojo.dnd.move.boxConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{box:{},markupFactory:function(_8,_9){ +return new dojo.dnd.move.boxConstrainedMoveable(_9,_8); +},constructor:function(_a,_b){ +var _c=_b&&_b.box; +this.constraints=function(){ +return _c; +}; +}}); +dojo.declare("dojo.dnd.move.parentConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{area:"content",markupFactory:function(_d,_e){ +return new dojo.dnd.move.parentConstrainedMoveable(_e,_d); +},constructor:function(_f,_10){ +var _11=_10&&_10.area; +this.constraints=function(){ +var n=this.node.parentNode,s=dojo.getComputedStyle(n),mb=dojo._getMarginBox(n,s); +if(_11=="margin"){ +return mb; +} +var t=dojo._getMarginExtents(n,s); +mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h; +if(_11=="border"){ +return mb; +} +t=dojo._getBorderExtents(n,s); +mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h; +if(_11=="padding"){ +return mb; +} +t=dojo._getPadExtents(n,s); +mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h; +return mb; +}; +}}); +dojo.dnd.move.constrainedMover=function(fun,_12){ +dojo.deprecated("dojo.dnd.move.constrainedMover, use dojo.dnd.move.constrainedMoveable instead"); +var _13=function(_14,e,_15){ +dojo.dnd.Mover.call(this,_14,e,_15); +}; +dojo.extend(_13,dojo.dnd.Mover.prototype); +dojo.extend(_13,{onMouseMove:function(e){ +dojo.dnd.autoScroll(e); +var m=this.marginBox,c=this.constraintBox,l=m.l+e.pageX,t=m.t+e.pageY; +l=l<c.l?c.l:c.r<l?c.r:l; +t=t<c.t?c.t:c.b<t?c.b:t; +this.host.onMove(this,{l:l,t:t}); +},onFirstMove:function(){ +dojo.dnd.Mover.prototype.onFirstMove.call(this); +var c=this.constraintBox=fun.call(this); +c.r=c.l+c.w; +c.b=c.t+c.h; +if(_12){ +var mb=dojo.marginBox(this.node); +c.r-=mb.w; +c.b-=mb.h; +} +}}); +return _13; +}; +dojo.dnd.move.boxConstrainedMover=function(box,_16){ +dojo.deprecated("dojo.dnd.move.boxConstrainedMover, use dojo.dnd.move.boxConstrainedMoveable instead"); +return dojo.dnd.move.constrainedMover(function(){ +return box; +},_16); +}; +dojo.dnd.move.parentConstrainedMover=function(_17,_18){ +dojo.deprecated("dojo.dnd.move.parentConstrainedMover, use dojo.dnd.move.parentConstrainedMoveable instead"); +var fun=function(){ +var n=this.node.parentNode,s=dojo.getComputedStyle(n),mb=dojo._getMarginBox(n,s); +if(_17=="margin"){ +return mb; +} +var t=dojo._getMarginExtents(n,s); +mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h; +if(_17=="border"){ +return mb; +} +t=dojo._getBorderExtents(n,s); +mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h; +if(_17=="padding"){ +return mb; +} +t=dojo._getPadExtents(n,s); +mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h; +return mb; +}; +return dojo.dnd.move.constrainedMover(fun,_18); +}; +dojo.dnd.constrainedMover=dojo.dnd.move.constrainedMover; +dojo.dnd.boxConstrainedMover=dojo.dnd.move.boxConstrainedMover; +dojo.dnd.parentConstrainedMover=dojo.dnd.move.parentConstrainedMover; +} |