mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2026-01-04 09:09:15 +00:00
add dijit/dojo stuff; initial ui mockup
This commit is contained in:
64
lib/dojo/dnd/Avatar.js
Normal file
64
lib/dojo/dnd/Avatar.js
Normal file
@@ -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();
|
||||
}});
|
||||
}
|
||||
235
lib/dojo/dnd/Container.js
Normal file
235
lib/dojo/dnd/Container.js
Normal file
@@ -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};
|
||||
};
|
||||
};
|
||||
}
|
||||
128
lib/dojo/dnd/Manager.js
Normal file
128
lib/dojo/dnd/Manager.js
Normal file
@@ -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;
|
||||
};
|
||||
}
|
||||
77
lib/dojo/dnd/Moveable.js
Normal file
77
lib/dojo/dnd/Moveable.js
Normal file
@@ -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){
|
||||
}});
|
||||
}
|
||||
65
lib/dojo/dnd/Mover.js
Normal file
65
lib/dojo/dnd/Mover.js
Normal file
@@ -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;
|
||||
}});
|
||||
}
|
||||
239
lib/dojo/dnd/Selector.js
Normal file
239
lib/dojo/dnd/Selector.js
Normal file
@@ -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;
|
||||
}});
|
||||
}
|
||||
298
lib/dojo/dnd/Source.js
Normal file
298
lib/dojo/dnd/Source.js
Normal file
@@ -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);
|
||||
}});
|
||||
}
|
||||
40
lib/dojo/dnd/TimedMoveable.js
Normal file
40
lib/dojo/dnd/TimedMoveable.js
Normal file
@@ -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);
|
||||
}
|
||||
}});
|
||||
})();
|
||||
}
|
||||
99
lib/dojo/dnd/autoscroll.js
Normal file
99
lib/dojo/dnd/autoscroll.js
Normal file
@@ -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);
|
||||
};
|
||||
}
|
||||
28
lib/dojo/dnd/common.js
Normal file
28
lib/dojo/dnd/common.js
Normal file
@@ -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;
|
||||
};
|
||||
}
|
||||
125
lib/dojo/dnd/move.js
Normal file
125
lib/dojo/dnd/move.js
Normal file
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user