mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2026-02-10 16:01:33 +00:00
add dijit/dojo stuff; initial ui mockup
This commit is contained in:
83
lib/dijit/tree/ForestStoreModel.js
Normal file
83
lib/dijit/tree/ForestStoreModel.js
Normal file
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
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["dijit.tree.ForestStoreModel"]){
|
||||
dojo._hasResource["dijit.tree.ForestStoreModel"]=true;
|
||||
dojo.provide("dijit.tree.ForestStoreModel");
|
||||
dojo.require("dijit.tree.TreeStoreModel");
|
||||
dojo.declare("dijit.tree.ForestStoreModel",dijit.tree.TreeStoreModel,{rootId:"$root$",rootLabel:"ROOT",query:null,constructor:function(_1){
|
||||
this.root={store:this,root:true,id:_1.rootId,label:_1.rootLabel,children:_1.rootChildren};
|
||||
},mayHaveChildren:function(_2){
|
||||
return _2===this.root||this.inherited(arguments);
|
||||
},getChildren:function(_3,_4,_5){
|
||||
if(_3===this.root){
|
||||
if(this.root.children){
|
||||
_4(this.root.children);
|
||||
}else{
|
||||
this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_6){
|
||||
this.root.children=_6;
|
||||
_4(_6);
|
||||
}),onError:_5});
|
||||
}
|
||||
}else{
|
||||
this.inherited(arguments);
|
||||
}
|
||||
},isItem:function(_7){
|
||||
return (_7===this.root)?true:this.inherited(arguments);
|
||||
},fetchItemByIdentity:function(_8){
|
||||
if(_8.identity==this.root.id){
|
||||
var _9=_8.scope?_8.scope:dojo.global;
|
||||
if(_8.onItem){
|
||||
_8.onItem.call(_9,this.root);
|
||||
}
|
||||
}else{
|
||||
this.inherited(arguments);
|
||||
}
|
||||
},getIdentity:function(_a){
|
||||
return (_a===this.root)?this.root.id:this.inherited(arguments);
|
||||
},getLabel:function(_b){
|
||||
return (_b===this.root)?this.root.label:this.inherited(arguments);
|
||||
},newItem:function(_c,_d,_e){
|
||||
if(_d===this.root){
|
||||
this.onNewRootItem(_c);
|
||||
return this.store.newItem(_c);
|
||||
}else{
|
||||
return this.inherited(arguments);
|
||||
}
|
||||
},onNewRootItem:function(_f){
|
||||
},pasteItem:function(_10,_11,_12,_13,_14){
|
||||
if(_11===this.root){
|
||||
if(!_13){
|
||||
this.onLeaveRoot(_10);
|
||||
}
|
||||
}
|
||||
dijit.tree.TreeStoreModel.prototype.pasteItem.call(this,_10,_11===this.root?null:_11,_12===this.root?null:_12,_13,_14);
|
||||
if(_12===this.root){
|
||||
this.onAddToRoot(_10);
|
||||
}
|
||||
},onAddToRoot:function(_15){
|
||||
},onLeaveRoot:function(_16){
|
||||
},_requeryTop:function(){
|
||||
var _17=this.root.children||[];
|
||||
this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_18){
|
||||
this.root.children=_18;
|
||||
if(_17.length!=_18.length||dojo.some(_17,function(_19,idx){
|
||||
return _18[idx]!=_19;
|
||||
})){
|
||||
this.onChildrenChange(this.root,_18);
|
||||
}
|
||||
})});
|
||||
},onNewItem:function(_1a,_1b){
|
||||
this._requeryTop();
|
||||
this.inherited(arguments);
|
||||
},onDeleteItem:function(_1c){
|
||||
if(dojo.indexOf(this.root.children,_1c)!=-1){
|
||||
this._requeryTop();
|
||||
}
|
||||
this.inherited(arguments);
|
||||
}});
|
||||
}
|
||||
145
lib/dijit/tree/TreeStoreModel.js
Normal file
145
lib/dijit/tree/TreeStoreModel.js
Normal file
@@ -0,0 +1,145 @@
|
||||
/*
|
||||
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["dijit.tree.TreeStoreModel"]){
|
||||
dojo._hasResource["dijit.tree.TreeStoreModel"]=true;
|
||||
dojo.provide("dijit.tree.TreeStoreModel");
|
||||
dojo.declare("dijit.tree.TreeStoreModel",null,{store:null,childrenAttrs:["children"],newItemIdAttr:"id",labelAttr:"",root:null,query:null,deferItemLoadingUntilExpand:false,constructor:function(_1){
|
||||
dojo.mixin(this,_1);
|
||||
this.connects=[];
|
||||
var _2=this.store;
|
||||
if(!_2.getFeatures()["dojo.data.api.Identity"]){
|
||||
throw new Error("dijit.Tree: store must support dojo.data.Identity");
|
||||
}
|
||||
if(_2.getFeatures()["dojo.data.api.Notification"]){
|
||||
this.connects=this.connects.concat([dojo.connect(_2,"onNew",this,"onNewItem"),dojo.connect(_2,"onDelete",this,"onDeleteItem"),dojo.connect(_2,"onSet",this,"onSetItem")]);
|
||||
}
|
||||
},destroy:function(){
|
||||
dojo.forEach(this.connects,dojo.disconnect);
|
||||
},getRoot:function(_3,_4){
|
||||
if(this.root){
|
||||
_3(this.root);
|
||||
}else{
|
||||
this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_5){
|
||||
if(_5.length!=1){
|
||||
throw new Error(this.declaredClass+": query "+dojo.toJson(this.query)+" returned "+_5.length+" items, but must return exactly one item");
|
||||
}
|
||||
this.root=_5[0];
|
||||
_3(this.root);
|
||||
}),onError:_4});
|
||||
}
|
||||
},mayHaveChildren:function(_6){
|
||||
return dojo.some(this.childrenAttrs,function(_7){
|
||||
return this.store.hasAttribute(_6,_7);
|
||||
},this);
|
||||
},getChildren:function(_8,_9,_a){
|
||||
var _b=this.store;
|
||||
if(!_b.isItemLoaded(_8)){
|
||||
var _c=dojo.hitch(this,arguments.callee);
|
||||
_b.loadItem({item:_8,onItem:function(_d){
|
||||
_c(_d,_9,_a);
|
||||
},onError:_a});
|
||||
return;
|
||||
}
|
||||
var _e=[];
|
||||
for(var i=0;i<this.childrenAttrs.length;i++){
|
||||
var _f=_b.getValues(_8,this.childrenAttrs[i]);
|
||||
_e=_e.concat(_f);
|
||||
}
|
||||
var _10=0;
|
||||
if(!this.deferItemLoadingUntilExpand){
|
||||
dojo.forEach(_e,function(_11){
|
||||
if(!_b.isItemLoaded(_11)){
|
||||
_10++;
|
||||
}
|
||||
});
|
||||
}
|
||||
if(_10==0){
|
||||
_9(_e);
|
||||
}else{
|
||||
dojo.forEach(_e,function(_12,idx){
|
||||
if(!_b.isItemLoaded(_12)){
|
||||
_b.loadItem({item:_12,onItem:function(_13){
|
||||
_e[idx]=_13;
|
||||
if(--_10==0){
|
||||
_9(_e);
|
||||
}
|
||||
},onError:_a});
|
||||
}
|
||||
});
|
||||
}
|
||||
},isItem:function(_14){
|
||||
return this.store.isItem(_14);
|
||||
},fetchItemByIdentity:function(_15){
|
||||
this.store.fetchItemByIdentity(_15);
|
||||
},getIdentity:function(_16){
|
||||
return this.store.getIdentity(_16);
|
||||
},getLabel:function(_17){
|
||||
if(this.labelAttr){
|
||||
return this.store.getValue(_17,this.labelAttr);
|
||||
}else{
|
||||
return this.store.getLabel(_17);
|
||||
}
|
||||
},newItem:function(_18,_19,_1a){
|
||||
var _1b={parent:_19,attribute:this.childrenAttrs[0],insertIndex:_1a};
|
||||
if(this.newItemIdAttr&&_18[this.newItemIdAttr]){
|
||||
this.fetchItemByIdentity({identity:_18[this.newItemIdAttr],scope:this,onItem:function(_1c){
|
||||
if(_1c){
|
||||
this.pasteItem(_1c,null,_19,true,_1a);
|
||||
}else{
|
||||
this.store.newItem(_18,_1b);
|
||||
}
|
||||
}});
|
||||
}else{
|
||||
this.store.newItem(_18,_1b);
|
||||
}
|
||||
},pasteItem:function(_1d,_1e,_1f,_20,_21){
|
||||
var _22=this.store,_23=this.childrenAttrs[0];
|
||||
if(_1e){
|
||||
dojo.forEach(this.childrenAttrs,function(_24){
|
||||
if(_22.containsValue(_1e,_24,_1d)){
|
||||
if(!_20){
|
||||
var _25=dojo.filter(_22.getValues(_1e,_24),function(x){
|
||||
return x!=_1d;
|
||||
});
|
||||
_22.setValues(_1e,_24,_25);
|
||||
}
|
||||
_23=_24;
|
||||
}
|
||||
});
|
||||
}
|
||||
if(_1f){
|
||||
if(typeof _21=="number"){
|
||||
var _26=_22.getValues(_1f,_23).slice();
|
||||
_26.splice(_21,0,_1d);
|
||||
_22.setValues(_1f,_23,_26);
|
||||
}else{
|
||||
_22.setValues(_1f,_23,_22.getValues(_1f,_23).concat(_1d));
|
||||
}
|
||||
}
|
||||
},onChange:function(_27){
|
||||
},onChildrenChange:function(_28,_29){
|
||||
},onDelete:function(_2a,_2b){
|
||||
},onNewItem:function(_2c,_2d){
|
||||
if(!_2d){
|
||||
return;
|
||||
}
|
||||
this.getChildren(_2d.item,dojo.hitch(this,function(_2e){
|
||||
this.onChildrenChange(_2d.item,_2e);
|
||||
}));
|
||||
},onDeleteItem:function(_2f){
|
||||
this.onDelete(_2f);
|
||||
},onSetItem:function(_30,_31,_32,_33){
|
||||
if(dojo.indexOf(this.childrenAttrs,_31)!=-1){
|
||||
this.getChildren(_30,dojo.hitch(this,function(_34){
|
||||
this.onChildrenChange(_30,_34);
|
||||
}));
|
||||
}else{
|
||||
this.onChange(_30);
|
||||
}
|
||||
}});
|
||||
}
|
||||
49
lib/dijit/tree/_dndContainer.js
Normal file
49
lib/dijit/tree/_dndContainer.js
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
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["dijit.tree._dndContainer"]){
|
||||
dojo._hasResource["dijit.tree._dndContainer"]=true;
|
||||
dojo.provide("dijit.tree._dndContainer");
|
||||
dojo.require("dojo.dnd.common");
|
||||
dojo.require("dojo.dnd.Container");
|
||||
dojo.declare("dijit.tree._dndContainer",null,{constructor:function(_1,_2){
|
||||
this.tree=_1;
|
||||
this.node=_1.domNode;
|
||||
dojo.mixin(this,_2);
|
||||
this.map={};
|
||||
this.current=null;
|
||||
this.containerState="";
|
||||
dojo.addClass(this.node,"dojoDndContainer");
|
||||
this.events=[dojo.connect(this.node,"onmouseenter",this,"onOverEvent"),dojo.connect(this.node,"onmouseleave",this,"onOutEvent"),dojo.connect(this.tree,"_onNodeMouseEnter",this,"onMouseOver"),dojo.connect(this.tree,"_onNodeMouseLeave",this,"onMouseOut"),dojo.connect(this.node,"ondragstart",dojo,"stopEvent"),dojo.connect(this.node,"onselectstart",dojo,"stopEvent")];
|
||||
},getItem:function(_3){
|
||||
var _4=this.selection[_3],_5={data:dijit.getEnclosingWidget(_4),type:["treeNode"]};
|
||||
return _5;
|
||||
},destroy:function(){
|
||||
dojo.forEach(this.events,dojo.disconnect);
|
||||
this.node=this.parent=null;
|
||||
},onMouseOver:function(_6,_7){
|
||||
this.current=_6.rowNode;
|
||||
this.currentWidget=_6;
|
||||
},onMouseOut:function(_8,_9){
|
||||
this.current=null;
|
||||
this.currentWidget=null;
|
||||
},_changeState:function(_a,_b){
|
||||
var _c="dojoDnd"+_a;
|
||||
var _d=_a.toLowerCase()+"State";
|
||||
dojo.removeClass(this.node,_c+this[_d]);
|
||||
dojo.addClass(this.node,_c+_b);
|
||||
this[_d]=_b;
|
||||
},_addItemClass:function(_e,_f){
|
||||
dojo.addClass(_e,"dojoDndItem"+_f);
|
||||
},_removeItemClass:function(_10,_11){
|
||||
dojo.removeClass(_10,"dojoDndItem"+_11);
|
||||
},onOverEvent:function(){
|
||||
this._changeState("Container","Over");
|
||||
},onOutEvent:function(){
|
||||
this._changeState("Container","");
|
||||
}});
|
||||
}
|
||||
125
lib/dijit/tree/_dndSelector.js
Normal file
125
lib/dijit/tree/_dndSelector.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["dijit.tree._dndSelector"]){
|
||||
dojo._hasResource["dijit.tree._dndSelector"]=true;
|
||||
dojo.provide("dijit.tree._dndSelector");
|
||||
dojo.require("dojo.dnd.common");
|
||||
dojo.require("dijit.tree._dndContainer");
|
||||
dojo.declare("dijit.tree._dndSelector",dijit.tree._dndContainer,{constructor:function(_1,_2){
|
||||
this.selection={};
|
||||
this.anchor=null;
|
||||
this.simpleSelection=false;
|
||||
this.events.push(dojo.connect(this.tree.domNode,"onmousedown",this,"onMouseDown"),dojo.connect(this.tree.domNode,"onmouseup",this,"onMouseUp"),dojo.connect(this.tree.domNode,"onmousemove",this,"onMouseMove"));
|
||||
},singular:false,getSelectedNodes:function(){
|
||||
return this.selection;
|
||||
},selectNone:function(){
|
||||
return this._removeSelection()._removeAnchor();
|
||||
},destroy:function(){
|
||||
this.inherited(arguments);
|
||||
this.selection=this.anchor=null;
|
||||
},onMouseDown:function(e){
|
||||
if(!this.current){
|
||||
return;
|
||||
}
|
||||
if(e.button==dojo.mouseButtons.RIGHT){
|
||||
return;
|
||||
}
|
||||
var _3=dijit.getEnclosingWidget(this.current),id=_3.id+"-dnd";
|
||||
if(!dojo.hasAttr(this.current,"id")){
|
||||
dojo.attr(this.current,"id",id);
|
||||
}
|
||||
if(!this.singular&&!dojo.isCopyKey(e)&&!e.shiftKey&&(this.current.id in this.selection)){
|
||||
this.simpleSelection=true;
|
||||
dojo.stopEvent(e);
|
||||
return;
|
||||
}
|
||||
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]=this.current;
|
||||
}
|
||||
}else{
|
||||
if(!this.singular&&e.shiftKey){
|
||||
if(dojo.isCopyKey(e)){
|
||||
}else{
|
||||
}
|
||||
}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]=this.current;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if(!(id in this.selection)){
|
||||
this.selectNone();
|
||||
this.anchor=this.current;
|
||||
this._addItemClass(this.current,"Anchor");
|
||||
this.selection[id]=this.current;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
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]=this.current;
|
||||
}
|
||||
},onMouseMove:function(e){
|
||||
this.simpleSelection=false;
|
||||
},_removeSelection:function(){
|
||||
var e=dojo.dnd._empty;
|
||||
for(var i in this.selection){
|
||||
if(i in e){
|
||||
continue;
|
||||
}
|
||||
var _4=dojo.byId(i);
|
||||
if(_4){
|
||||
this._removeItemClass(_4,"Selected");
|
||||
}
|
||||
}
|
||||
this.selection={};
|
||||
return this;
|
||||
},_removeAnchor:function(){
|
||||
if(this.anchor){
|
||||
this._removeItemClass(this.anchor,"Anchor");
|
||||
this.anchor=null;
|
||||
}
|
||||
return this;
|
||||
},forInSelectedItems:function(f,o){
|
||||
o=o||dojo.global;
|
||||
for(var id in this.selection){
|
||||
f.call(o,this.getItem(id),id,this);
|
||||
}
|
||||
}});
|
||||
}
|
||||
240
lib/dijit/tree/dndSource.js
Normal file
240
lib/dijit/tree/dndSource.js
Normal file
@@ -0,0 +1,240 @@
|
||||
/*
|
||||
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["dijit.tree.dndSource"]){
|
||||
dojo._hasResource["dijit.tree.dndSource"]=true;
|
||||
dojo.provide("dijit.tree.dndSource");
|
||||
dojo.require("dijit.tree._dndSelector");
|
||||
dojo.require("dojo.dnd.Manager");
|
||||
dojo.declare("dijit.tree.dndSource",dijit.tree._dndSelector,{isSource:true,accept:["text","treeNode"],copyOnly:false,dragThreshold:5,betweenThreshold:0,constructor:function(_1,_2){
|
||||
if(!_2){
|
||||
_2={};
|
||||
}
|
||||
dojo.mixin(this,_2);
|
||||
this.isSource=typeof _2.isSource=="undefined"?true:_2.isSource;
|
||||
var _3=_2.accept instanceof Array?_2.accept:["text","treeNode"];
|
||||
this.accept=null;
|
||||
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.dropPosition="";
|
||||
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");
|
||||
}
|
||||
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){
|
||||
return true;
|
||||
},copyState:function(_6){
|
||||
return this.copyOnly||_6;
|
||||
},destroy:function(){
|
||||
this.inherited("destroy",arguments);
|
||||
dojo.forEach(this.topics,dojo.unsubscribe);
|
||||
this.targetAnchor=null;
|
||||
},_onDragMouse:function(e){
|
||||
var m=dojo.dnd.manager(),_7=this.targetAnchor,_8=this.current,_9=this.currentWidget,_a=this.dropPosition;
|
||||
var _b="Over";
|
||||
if(_8&&this.betweenThreshold>0){
|
||||
if(!this.targetBox||_7!=_8){
|
||||
this.targetBox=dojo.position(_8,true);
|
||||
}
|
||||
if((e.pageY-this.targetBox.y)<=this.betweenThreshold){
|
||||
_b="Before";
|
||||
}else{
|
||||
if((e.pageY-this.targetBox.y)>=(this.targetBox.h-this.betweenThreshold)){
|
||||
_b="After";
|
||||
}
|
||||
}
|
||||
}
|
||||
if(_8!=_7||_b!=_a){
|
||||
if(_7){
|
||||
this._removeItemClass(_7,_a);
|
||||
}
|
||||
if(_8){
|
||||
this._addItemClass(_8,_b);
|
||||
}
|
||||
if(!_8){
|
||||
m.canDrop(false);
|
||||
}else{
|
||||
if(_9==this.tree.rootNode&&_b!="Over"){
|
||||
m.canDrop(false);
|
||||
}else{
|
||||
if(m.source==this&&(_8.id in this.selection)){
|
||||
m.canDrop(false);
|
||||
}else{
|
||||
if(this.checkItemAcceptance(_8,m.source,_b.toLowerCase())&&!this._isParentChildDrop(m.source,_8)){
|
||||
m.canDrop(true);
|
||||
}else{
|
||||
m.canDrop(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
this.targetAnchor=_8;
|
||||
this.dropPosition=_b;
|
||||
}
|
||||
},onMouseMove:function(e){
|
||||
if(this.isDragging&&this.targetState=="Disabled"){
|
||||
return;
|
||||
}
|
||||
this.inherited(arguments);
|
||||
var m=dojo.dnd.manager();
|
||||
if(this.isDragging){
|
||||
this._onDragMouse(e);
|
||||
}else{
|
||||
if(this.mouseDown&&this.isSource&&(Math.abs(e.pageX-this._lastX)>=this.dragThreshold||Math.abs(e.pageY-this._lastY)>=this.dragThreshold)){
|
||||
var n=this.getSelectedNodes();
|
||||
var _c=[];
|
||||
for(var i in n){
|
||||
_c.push(n[i]);
|
||||
}
|
||||
if(_c.length){
|
||||
m.startDrag(this,_c,this.copyState(dojo.isCopyKey(e)));
|
||||
}
|
||||
}
|
||||
}
|
||||
},onMouseDown:function(e){
|
||||
this.mouseDown=true;
|
||||
this.mouseButton=e.button;
|
||||
this._lastX=e.pageX;
|
||||
this._lastY=e.pageY;
|
||||
this.inherited("onMouseDown",arguments);
|
||||
},onMouseUp:function(e){
|
||||
if(this.mouseDown){
|
||||
this.mouseDown=false;
|
||||
this.inherited("onMouseUp",arguments);
|
||||
}
|
||||
},onMouseOut:function(){
|
||||
this.inherited(arguments);
|
||||
this._unmarkTargetAnchor();
|
||||
},checkItemAcceptance:function(_d,_e,_f){
|
||||
return true;
|
||||
},onDndSourceOver:function(_10){
|
||||
if(this!=_10){
|
||||
this.mouseDown=false;
|
||||
this._unmarkTargetAnchor();
|
||||
}else{
|
||||
if(this.isDragging){
|
||||
var m=dojo.dnd.manager();
|
||||
m.canDrop(false);
|
||||
}
|
||||
}
|
||||
},onDndStart:function(_11,_12,_13){
|
||||
if(this.isSource){
|
||||
this._changeState("Source",this==_11?(_13?"Copied":"Moved"):"");
|
||||
}
|
||||
var _14=this.checkAcceptance(_11,_12);
|
||||
this._changeState("Target",_14?"":"Disabled");
|
||||
if(this==_11){
|
||||
dojo.dnd.manager().overSource(this);
|
||||
}
|
||||
this.isDragging=true;
|
||||
},itemCreator:function(_15,_16,_17){
|
||||
return dojo.map(_15,function(_18){
|
||||
return {"id":_18.id,"name":_18.textContent||_18.innerText||""};
|
||||
});
|
||||
},onDndDrop:function(_19,_1a,_1b){
|
||||
if(this.containerState=="Over"){
|
||||
var _1c=this.tree,_1d=_1c.model,_1e=this.targetAnchor,_1f=false;
|
||||
this.isDragging=false;
|
||||
var _20=dijit.getEnclosingWidget(_1e);
|
||||
var _21;
|
||||
var _22;
|
||||
_21=(_20&&_20.item)||_1c.item;
|
||||
if(this.dropPosition=="Before"||this.dropPosition=="After"){
|
||||
_21=(_20.getParent()&&_20.getParent().item)||_1c.item;
|
||||
_22=_20.getIndexInParent();
|
||||
if(this.dropPosition=="After"){
|
||||
_22=_20.getIndexInParent()+1;
|
||||
}
|
||||
}else{
|
||||
_21=(_20&&_20.item)||_1c.item;
|
||||
}
|
||||
var _23;
|
||||
dojo.forEach(_1a,function(_24,idx){
|
||||
var _25=_19.getItem(_24.id);
|
||||
if(dojo.indexOf(_25.type,"treeNode")!=-1){
|
||||
var _26=_25.data,_27=_26.item,_28=_26.getParent().item;
|
||||
}
|
||||
if(_19==this){
|
||||
if(typeof _22=="number"){
|
||||
if(_21==_28&&_26.getIndexInParent()<_22){
|
||||
_22-=1;
|
||||
}
|
||||
}
|
||||
_1d.pasteItem(_27,_28,_21,_1b,_22);
|
||||
}else{
|
||||
if(_1d.isItem(_27)){
|
||||
_1d.pasteItem(_27,_28,_21,_1b,_22);
|
||||
}else{
|
||||
if(!_23){
|
||||
_23=this.itemCreator(_1a,_1e,_19);
|
||||
}
|
||||
_1d.newItem(_23[idx],_21,_22);
|
||||
}
|
||||
}
|
||||
},this);
|
||||
this.tree._expandNode(_20);
|
||||
}
|
||||
this.onDndCancel();
|
||||
},onDndCancel:function(){
|
||||
this._unmarkTargetAnchor();
|
||||
this.isDragging=false;
|
||||
this.mouseDown=false;
|
||||
delete this.mouseButton;
|
||||
this._changeState("Source","");
|
||||
this._changeState("Target","");
|
||||
},onOverEvent:function(){
|
||||
this.inherited(arguments);
|
||||
dojo.dnd.manager().overSource(this);
|
||||
},onOutEvent:function(){
|
||||
this._unmarkTargetAnchor();
|
||||
var m=dojo.dnd.manager();
|
||||
if(this.isDragging){
|
||||
m.canDrop(false);
|
||||
}
|
||||
m.outSource(this);
|
||||
this.inherited(arguments);
|
||||
},_isParentChildDrop:function(_29,_2a){
|
||||
if(!_29.tree||_29.tree!=this.tree){
|
||||
return false;
|
||||
}
|
||||
var _2b=_29.tree.domNode;
|
||||
var ids={};
|
||||
for(var x in _29.selection){
|
||||
ids[_29.selection[x].parentNode.id]=true;
|
||||
}
|
||||
var _2c=_2a.parentNode;
|
||||
while(_2c!=_2b&&(!_2c.id||!ids[_2c.id])){
|
||||
_2c=_2c.parentNode;
|
||||
}
|
||||
return _2c.id&&ids[_2c.id];
|
||||
},_unmarkTargetAnchor:function(){
|
||||
if(!this.targetAnchor){
|
||||
return;
|
||||
}
|
||||
this._removeItemClass(this.targetAnchor,this.dropPosition);
|
||||
this.targetAnchor=null;
|
||||
this.targetBox=null;
|
||||
this.dropPosition=null;
|
||||
},_markDndStatus:function(_2d){
|
||||
this._changeState("Source",_2d?"Copied":"Moved");
|
||||
}});
|
||||
}
|
||||
20
lib/dijit/tree/model.js
Normal file
20
lib/dijit/tree/model.js
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
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
|
||||
*/
|
||||
|
||||
|
||||
dojo.declare("dijit.tree.model",null,{destroy:function(){
|
||||
},getRoot:function(_1){
|
||||
},mayHaveChildren:function(_2){
|
||||
},getChildren:function(_3,_4){
|
||||
},isItem:function(_5){
|
||||
},fetchItemByIdentity:function(_6){
|
||||
},getIdentity:function(_7){
|
||||
},getLabel:function(_8){
|
||||
},newItem:function(_9,_a,_b){
|
||||
},pasteItem:function(_c,_d,_e,_f){
|
||||
},onChange:function(_10){
|
||||
},onChildrenChange:function(_11,_12){
|
||||
}});
|
||||
Reference in New Issue
Block a user