2013-03-18 07:26:24 +01:00
|
|
|
define("dojo/dnd/Container",["../_base/array","../_base/declare","../_base/event","../_base/kernel","../_base/lang","../_base/window","../dom","../dom-class","../dom-construct","../Evented","../has","../on","../query","../ready","../touch","./common"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,on,_c,_d,_e,_f){var _10=_2("dojo.dnd.Container",_a,{skipForm:false,allowNested:false,constructor:function(_11,_12){this.node=_7.byId(_11);if(!_12){_12={};}this.creator=_12.creator||null;this.skipForm=_12.skipForm;this.parent=_12.dropParent&&_7.byId(_12.dropParent);this.map={};this.current=null;this.containerState="";_8.add(this.node,"dojoDndContainer");if(!(_12&&_12._skipStartup)){this.startup();}this.events=[on(this.node,_e.over,_5.hitch(this,"onMouseOver")),on(this.node,_e.out,_5.hitch(this,"onMouseOut")),on(this.node,"dragstart",_5.hitch(this,"onSelectStart")),on(this.node,"selectstart",_5.hitch(this,"onSelectStart"))];},creator:function(){},getItem:function(key){return this.map[key];},setItem:function(key,_13){this.map[key]=_13;},delItem:function(key){delete this.map[key];},forInItems:function(f,o){o=o||_4.global;var m=this.map,e=_f._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 _c((this.allowNested?"":"> ")+".dojoDndItem",this.parent);},sync:function(){var map={};this.getAllNodes().forEach(function(_14){if(_14.id){var _15=this.getItem(_14.id);if(_15){map[_14.id]=_15;return;}}else{_14.id=_f.getUniqueId();}var _16=_14.getAttribute("dndType"),_17=_14.getAttribute("dndData");map[_14.id]={data:_17||_14.innerHTML,type:_16?_16.split(/\s*,\s*/):["text"]};},this);this.map=map;return this;},insertNodes:function(_18,_19,_1a){if(!this.parent.firstChild){_1a=null;}else{if(_19){if(!_1a){_1a=this.parent.firstChild;}}else{if(_1a){_1a=_1a.nextSibling;}}}var i,t;if(_1a){for(i=0;i<_18.length;++i){t=this._normalizedCreator(_18[i]);this.setItem(t.node.id,{data:t.data,type:t.type});_1a.parentNode.insertBefore(t.node,_1a);}}else{for(i=0;i<_18.length;++i){t=this._normalizedCreator(_18[i]);this.setItem(t.node.id,{data:t.data,type:t.type});this.parent.appendChild(t.node);}}return this;},destroy:function(){_1.forEach(this.events,function(_1b){_1b.remove();});this.clearItems();this.node=this.parent=this.current=null;},markupFactory:function(_1c,_1d,_1e){_1c._skipStartup=true;return new _1e(_1d,_1c);},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=_f._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||!_f.isFormElement(e)){_3.stop(e);}},onOverEvent:function(){},onOutEvent:function(){},_changeState:function(_1f,_20){var _21="dojoDnd"+_1f;var _22=_1f.toLowerCase()+"State";_8.replace(this.node,_21+_20,_21+this[_22]);this[_22]=_20;},_addItemClass:function(_23,_24){_8.add(_23,"dojoDndItem"+_24);},_removeItemClass:function(_25,_26){_8.remove(_25,"dojoDndItem"+_26);},_getChildByEvent:function(e){var _27=e.target;if(_27){for(var _28=_27.parentNode;_28;_27=_28,_28=_27.parentNode){if((_28==this.parent||this.allowNested)&&_8.contains(_27,"dojoDndItem")){return _27;}}}return null;},_normalizedCreator:function(_29,_2a){var t=(this.creator||this.defaultCreator).call(this,_29,_2a);if(!_5.isArray(t.type)){t.type=["text"];}if(!t.node.id){t.node.id=_f.getUniqueId();}_8.add(t.node,"dojoDndItem");
|