/* 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); } }}); }